Открыть сервис

Технология Inpainting

Inpainting (от англ. inpainting — «восстановление», «заполнение») — это технология компьютерного зрения и обработки изображений, предназначенная для автоматического восстановления, ретуширования или замены участков цифрового изображения, которые были повреждены, удалены или скрыты. Алгоритмы inpainting анализируют текстуру, цвет и структуру окружающих пикселей, чтобы сгенерировать правдоподобное содержимое на месте удалённой области. Технология широко применяется в графических редакторах, фотограмметрии, медицинской визуализации и, в последние годы, в системах генеративного искусственного интеллекта (ИИ).

История развития

Ранние методы (до 2000-х годов)

Первые подходы к цифровому восстановлению изображений возникли в 1990-х годах в связи с задачами реставрации старых фотографий и киноплёнки. Изначально использовались простые интерполяционные методы, такие как билинейная или бикубическая интерполяция, которые заполняли пустые области путём усреднения соседних пикселей. Эти методы давали приемлемые результаты только на однородных фонах, но не справлялись с текстурами и сложными структурами.

Алгоритмические методы (2000-е — 2010-е годы)

Значительный прорыв произошёл в 2000 году, когда Марсель Бертуццио и его коллеги предложили метод, основанный на решении дифференциальных уравнений в частных производных (PDE). Этот подход, известный как «inpainting на основе PDE», моделировал процесс распространения информации из границ области в её центр, что позволяло восстанавливать плавные переходы и линии.

В 2001 году А. Эфрос и Т. Лейнг разработали метод «текстурного синтеза», который копировал фрагменты текстуры из неповреждённых областей изображения в удалённую зону. Этот метод лёг в основу многих коммерческих инструментов, таких как «Content-Aware Fill» в Adobe Photoshop (выпущен в 2010 году). Алгоритм искал похожие участки на изображении и «сшивал» их, что позволяло удалять объекты с фотографий.

Эпоха глубокого обучения (2016 — настоящее время)

С развитием свёрточных нейронных сетей (CNN) и генеративных состязательных сетей (GAN) технология inpainting совершила качественный скачок. В 2016 году группа исследователей из Университета Карнеги-Меллона представила архитектуру, которая обучалась на больших наборах данных изображений. В отличие от классических методов, нейросети способны не просто копировать текстуру, но и генерировать абсолютно новые детали, включая лица, объекты и сложные сцены.

Ключевые вехи:

  • 2018 год: Появление модели «DeepFill v1/v2», которая использовала механизм внимания и контекстное кодирование для более точного восстановления крупных областей.
  • 2022 год: Интеграция inpainting в диффузионные модели (Stable Diffusion, DALL-E 2). Диффузионные модели позволяют не просто заполнять пустоты, но и заменять содержимое по текстовому описанию (например, «убрать человека и нарисовать на его месте дерево»).
  • 2023–2024 годы: Массовое внедрение inpainting в потребительские приложения (Adobe Firefly, Midjourney, RunwayML) и открытые инструменты (InvokeAI, Automatic1111 для Stable Diffusion).

Принцип работы

Классические алгоритмы

  1. Анализ границ: Определяется контур удалённой области (маска).
  2. Распространение информации: Алгоритм (например, метод Навье-Стокса) вычисляет, как цвет и структура из соседних пикселей должны «перетекать» внутрь маски.
  3. Синтез текстуры: Для текстурных областей используется поиск похожих патчей (квадратных блоков) на остальном изображении. Найденные патчи копируются и смешиваются с учётом градиентов.

Нейросетевые методы (современные)

  1. Кодирование: Изображение с маской подаётся на вход свёрточной нейросети. Сеть преобразует его в скрытое представление (latent space), где хранится семантическая информация о сцене.
  2. Генерация: В скрытом пространстве нейросеть «достраивает» недостающие участки, опираясь на контекст. В диффузионных моделях этот процесс происходит итеративно: из шума постепенно «проявляется» детализированное изображение.
  3. Декодирование: Сгенерированное скрытое представление преобразуется обратно в пиксельное изображение, которое накладывается на исходное в области маски.

Классификация методов

По типу входных данных

  • Одноракурсный inpainting: Восстановление одного изображения на основе его собственного контекста. Самый распространённый тип.
  • Мультиракурсный inpainting: Используется для видео или стереопар, где информация из соседних кадров помогает восстановить скрытые участки.

По алгоритмической основе

  • Диффузионные (PDE-based): Основаны на решении уравнений. Хорошо работают для гладких поверхностей и линий.
  • Текстурно-синтезирующие (Patch-based): Копируют фрагменты изображения. Эффективны для повторяющихся текстур (трава, кирпич, вода).
  • Генеративные (Deep Learning): Используют нейросети. Позволяют создавать новые объекты, не существовавшие на исходном изображении (например, дорисовывать отрезанную часть здания).

По степени интерактивности

  • Автоматический: Пользователь только указывает маску, алгоритм сам выбирает способ заполнения.
  • Семантический (с промптом): Пользователь вводит текстовое описание того, что должно появиться в удалённой области (например, «красная роза»).

Применение

Графический дизайн и фотография

  • Удаление объектов: Устранение случайных прохожих, проводов, мусора с фотографий.
  • Ретушь: Восстановление старых фотографий (удаление царапин, пятен, складок).
  • Расширение холста (outpainting): Дорисовывание фона за пределами исходного кадра (например, превращение портрета в пейзаж).

Медицина и наука

  • Обработка МРТ и КТ: Восстановление артефактов движения или металлических имплантатов на снимках.
  • Астрономия: Удаление следов космических лучей или спутников с астрофотографий.

Видео и анимация

  • Удаление субтитров и логотипов: Автоматическая очистка видеоряда от статичных наложений.
  • Реконструкция сцен: Восстановление повреждённых кадров в старых фильмах.

3D-моделирование

  • Текстурная карта: Заполнение пустых участков на UV-развёртке 3D-модели, полученной при фотограмметрии.

Ограничения и проблемы

  1. Артефакты: При неправильном подборе параметров или на сложных сценах (например, переплетение волос или тонкие линии) алгоритмы могут создавать размытые или неестественные области.
  2. Семантическая ошибка: Нейросеть может «дорисовать» объект, не соответствующий контексту (например, добавить третий глаз на портрет).
  3. Вычислительная сложность: Современные генеративные модели требуют значительных ресурсов GPU, что ограничивает их применение на мобильных устройствах.
  4. Этические аспекты: Технология может использоваться для создания дипфейков, подделки документов или удаления важных деталей с доказательств. В связи с этим в ряде стран (включая Россию) обсуждается регулирование использования инструментов генеративного ИИ.

Примеры программных реализаций

  • Adobe Photoshop: Инструмент «Content-Aware Fill» (с 2010 года) и «Generative Fill» (с 2023 года, на основе ИИ).
  • GIMP: Плагин «Resynthesizer» (алгоритмический метод).
  • Stable Diffusion WebUI (Automatic1111): Популярное открытое решение для inpainting с поддержкой текстовых промптов.
  • RunwayML: Облачный сервис для видео и изображений.
  • OpenCV: Библиотека компьютерного зрения, содержащая классические реализации inpainting (cv2.inpaint).

Источники

  1. Bertalmio, M., Sapiro, G., Caselles, V., & Ballester, C. (2000). «Image inpainting». Proceedings of the 27th annual conference on Computer graphics and interactive techniques.
  2. Efros, A. A., & Leung, T. K. (1999). «Texture synthesis by non-parametric sampling». IEEE International Conference on Computer Vision.
  3. Yu, J., Lin, Z., Yang, J., Shen, X., Lu, X., & Huang, T. S. (2018). «Generative Image Inpainting with Contextual Attention». CVPR.
  4. Rombach, R., Blattmann, A., Lorenz, D., Esser, P., & Ommer, B. (2022). «High-Resolution Image Synthesis with Latent Diffusion Models». CVPR.
  5. Документация библиотеки OpenCV (cv2.inpaint).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →