Как победить пустые пиксели с помощью формулы Фурье?

Yannic Kilcher 21 тыс. 54 мин 8 мин 18.12.2021
Главное

Технология инпейнтинга (дорисовывания изображений) сделала качественный шаг вперед благодаря совместной разработке ученых из Samsung AI Center, EPFL и Сколтеха. В рамках видеообзора и интервью с авторами метода Янник Кильхер разобрал нейросетевую архитектуру LaMa, способную эффективно реконструировать даже огромные поврежденные области на фотографиях высокого разрешения. Ключевым открытием стало использование быстрых преобразований Фурье, позволяющих нейросети мгновенно оценивать глобальный контекст изображения.

🛠️ Инструменты разработки: оркестрация экспериментов с ClearML 0:39

Перед детальным разбором научной статьи Янник Кильхер знакомит зрителей со спонсором выпуска — платформой ClearML. Это полностью открытый (open-source) стек для ML Ops, предоставляющий разработчикам инструменты для отслеживания экспериментов, оркестрации, деплоя, а также создания хранилищ моделей и признаков.

Ведущий выделяет следующие ключевые особенности платформы:

Для демонстрации Янник клонирует ранее запущенный эксперимент, меняет в интерфейсе размер батча (batch size) со 128 на 129 в конфигурации гиперпараметров и отправляет его в очередь вычислений одним кликом. По его мнению, ClearML предоставляет мощный бесплатный облачный уровень, которого достаточно для решения многих повседневных задач инженера.

🎨 На что способна нейросеть LaMa 3:29

Модель LaMa принимает на вход изображение и нарисованную пользователем маску, скрывающую определенную область. Алгоритм не видит того, что находится под маской, — перед ним стоит задача реалистично заполнить пустую зону на основе открытых фрагментов кадра.

Янник Кильхер демонстрирует работу модели на примерах со сложной геометрией. Система способна восстанавливать нерегулярные структуры (например, сквозные проемы в дверях) на очень больших площадях. Особую сложность для классических систем инпейнтинга представляют повторяющиеся паттерны: сетки, решетки и параллельные линии. Обычные сверточные сети опираются на локальный контекст, из-за чего «ломают» регулярные текстуры. По мнению ведущего, LaMa лишена этого недостатка благодаря глобальному видению кадра.

Для демонстрации возможностей алгоритма Янник использует стороннее веб-приложение cleanup.pictures (хотя существуют также официальное пространство на Hugging Face и Colab-ноутбук от авторов). Ведущий тестирует нейросеть на логотипе своего канала:

Главное практическое преимущество LaMa отражено в ее названии (Resolution-robust Large Mask Inpainting) — это устойчивость к изменению разрешения кадра. Модель способна обрабатывать изображения разного масштаба без потери качества заполнения.

📐 Магия преобразования Фурье: преодоление ограничений классических CNN 6:38

В чем заключается главная проблема стандартных сверточных нейросетей (CNN)? Обычная свертка (например, размером $3 \times 3$ пикселя) на конкретном слое анализирует исключительно ближайших соседей точки. Чтобы информация распространилась по всему изображению, сети требуется огромная глубина — множество последовательных слоев.

Когда маска, закрывающая объект, становится слишком широкой, ядра свертки внутри этой области видят только пустые («замаскированные») пиксели слоем за слоем. Нейросеть на протяжении первых нескольких слоев вообще не получает никакой информации о внешнем мире за пределами маски. К моменту, когда глубокие слои наконец дотягиваются до краев маски, физически может быть уже слишком поздно для качественного восстановления структуры.

Быстрые свертки Фурье (Fast Fourier Convolutions, FFC) решают эту проблему радикально, позволяя сети анализировать глобальный контекст на каждом слое. Преобразование Фурье переводит пространственный сигнал (пиксели) в частотную область. Каждая компонента в спектре Фурье содержит информацию обо всем изображении целиком. Самая низкая частота отвечает за глобальные очертания, более высокие — за быстрые изменения и мелкие текстуры.

Янник Кильхер подчеркивает концептуальную разницу:

В то время как регулярная свертка локализована в пространстве пикселей, свертка Фурье локализована в частотном пространстве, но является глобальной в пространстве пикселей.

Поскольку дискретное преобразование Фурье базируется на операциях линейной алгебры, существуют его экстремально быстрые реализации (FFT), что делает операцию вычислительно доступной.

🏗️ Архитектура сети и структура блока Fast Fourier Convolution 12:49

Архитектура LaMa является полностью сверточной, что и обеспечивает ее способность адаптироваться к любому разрешению. Во время обучения модель обрабатывает небольшие кропы размером $256 \times 256$ пикселей, однако обученная сеть способна без деградации качества обрабатывать HD-изображения (например, $1920 \times 1080$) и выше.

Базовая архитектура состоит из этапа уменьшения дискретизации (downsampling) и 9 остаточных блоков (residual blocks) на основе быстрых сверток Фурье (в расширенной версии модели используется 18 блоков).

Каждый FFC-блок параллельно обрабатывает два потока информации:

  1. Локальная ветвь: работает в привычном пространстве пикселей, отвечая за локальные корреляции и геометрию соседей.
  2. Глобальная ветвь: обрабатывает данные в частотной области, отвечая за макроструктуру кадра.

На каждом слое эти ветви обмениваются информацией. Глобальный поток направляется в блок спектрального преобразования (Spectral Transform).

Внутри блока спектрального преобразования выполняются следующие шаги:

Такое чередование пространственных и спектральных трансформаций позволяет эффективно объединять локальные детали с глобальным пониманием сцены.

⚖️ Монструозная функция потерь: как заставить модель рисовать реалистично 21:03

Простое требование попиксельно воссоздать исходное изображение при работе с большими масками неэффективно. Для широкой пустой области существует огромное множество логичных вариантов заполнения. Если сеть будет штрафоваться за несовпадение с конкретным оригиналом, она начнет усреднять все возможные исходы, выдавая размытое серое пятно. Модели необходима свобода выбора одного из реалистичных вариантов без жесткой привязки к исходным пикселям.

Чтобы решить эту проблему, инженеры применили комплексную функцию потерь, состоящую из множества компонентов:

Разработчики совершили важное открытие в области перцептивного лосса. Традиционно для него используют сеть VGG, обученную на задачу классификации (ImageNet). Однако авторы заметили, что классификационные сети излишне фокусируются на текстурах, игнорируя глобальную структуру. Вместо этого они обучили суррогатную модель на задачу семантической сегментации, внедрив туда слои с Фурье-свертками и раздутыми (dilated) свертками. Сегментационная сеть лучше оценивает границы объектов и глобальную геометрию сцены, что значительно повысило качество финального инпейнтинга.

🎭 Стратегия генерации масок при обучении 24:24

При обучении нейросети невозможно размечать маски вручную, поэтому авторы создали продвинутый эвристический алгоритм генерации синтетических масок. Исследователи использовали комбинацию двух типов геометрии, заимствованную и развитую на базе алгоритма DeepFill v2:

Такие маски могут закрывать более половины площади кадра. По словам исследователей, большая ширина маски критически важна: она заставляет генератор передавать информацию на огромные расстояния внутри сети. Если маски будут состоять из тонких линий, задача превратится в аналог супер-разрешения (super-resolution), где для восстановления достаточно изучить соседний ряд пикселей, а глобальные Фурье-связи останутся незадействованными.

🗣️ Интервью с создателями: от Pix2Pix до мирового признания 28:27

Во второй половине видео к Яннику Кильхеру присоединяются авторы исследования — Роман Суворов и Елизавета Логачёва. Они подтверждают корректность выводов ведущего и подчеркивают, что успех LaMa — это комбинация трех равнозначных столпов: архитектуры нейросети, алгоритма генерации данных (масок) и сложной оптимизации лосс-функций.

Роман Суворов делится историей создания проекта: изначально команда взяла за основу стандартную модель Pix2Pix и начала итеративно искать ее слабые места. Исследователи протестировали множество существующих блоков из других научных работ по инпейнтингу и обнаружили, что ни одна архитектура не способна адекватно обрабатывать повторяющиеся и периодические паттерны. Идея использовать преобразование Фурье возникла как самый естественный математический ответ на проблему периодичности сигналов. В процессе поиска авторы наткнулись на концепцию Fast Fourier Convolution, которая изначально предлагалась другими учеными для задач распознавания образов, адаптировали и доработали ее под инпейнтинг.

Елизавета Логачёва рассказывает, что изначально они пытались тестировать другие алгоритмы на своем валидационном наборе данных, но все классические модели терпели крах при попытке заполнить масштабные пустоты (так называемые flesh holes). Это подтолкнуло команду к глубокой переработке механизмов интеграции глобального контекста.

В ходе беседы ученые раскрывают любопытную техническую деталь: в процессе экспериментов выяснилось, что локальная ветвь в блоках FFC практически не влияет на итоговый результат инпейнтинга — спектральный Фурье-блок берет на себя почти всю работу. Тем не менее, локальную ветвь решили сохранить в финальной архитектуре, так как она обеспечивает стабильность работы нейросети, когда модель обучают на низком разрешении, а затем заставляют обрабатывать экстремально большие изображения в продакшене.

🔍 Слабые места технологии и планы на будущее 44:15

Янник Кильхер поинтересовался у гостей, на каких типах данных их система выдает наихудший результат. Авторы признают наличие фундаментальных ограничений у текущей версии LaMa.

По словам Романа Суворов, нейросеть обучалась преимущественно на восстановление фоновых текстур и геометрии окружения. Из-за этого модель не способна качественно регенерировать сложные объекты переднего плана — например, она не сможет достоверно дорисовать половину человеческого лица или объект, требующий глубоких семантических знаний об устройстве мира.

Елизавета Логачёва добавляет, что модель LaMa получилась очень компактной по числу параметров по сравнению с конкурентами. С одной стороны, это огромный плюс, позволяющий легко запускать сеть в веб-интерфейсах и на мобильных устройствах. С другой стороны, из-за малого объема памяти генератор физически не способен «помнить все на свете» и создавать сложные смысловые объекты из ничего.

Собеседники сходятся во мнении, что LaMa работает скорее как невероятно продвинутый интеллектуальный инструмент «Штамп» (Clone Stamp) из Photoshop: она виртуозно находит подходящие паттерны в открытых частях кадра и переносит их в закрытые маской зоны.

Отвечая на вопрос о будущем проекта, авторы выделили два главных направления:

  1. Дальнейшее улучшение генерализации при масштабировании на сверхвысокие разрешения.
  2. Упрощение и очистка функции потерь.

Елизавета Логачёва признается, что текущий лосс избыточен и требует долгой ручной балансировки множества гиперпараметров. Цель ученых — создать красивую и простую систему с «одной кнопкой», которая будет идеально работать без долгой настройки коэффициентов.

💬 Цитаты

«В то время как регулярная свертка локализована в пространстве пикселей, свертка Фурье локализована в частотном пространстве, но является глобальной в пространстве пикселей.»

Янник Кильхер 12:20

«Идея использовать преобразование Фурье возникла как самый естественный математический ответ на проблему периодичности сигналов.»

Роман Суворов 31:46

«Текущий лосс избыточен и требует долгой ручной балансировки множества гиперпараметров.»

Елизавета Логачёва 52:38
👥 Спикеры
🔗 Упомянутые сайты и проекты
📖 Термины
Инпейнтинг
Процесс восстановления или заполнения пропущенных или поврежденных частей изображения.
Преобразование Фурье
Математическая операция, переводящая пространственный или временной сигнал в частотную область.
Рецептивное поле
Область входного изображения, которую видит конкретный нейрон или ядро свертки на текущем слое.
Перцептивный лосс
Функция потерь, оценивающая смысловое и визуальное сходство изображений на основе признаков глубоких нейросетей.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект LaMa Янник Кильхер Роман Суворов Елизавета Логачёва преобразование Фурье