Изменения
Нет описания правки
[[Файл:inpainting_network.jpg|thumb|550px|Пример GAN для inpainting.]]
В отличие от приведенных выше простых методов, глубокое обучение позволяет в процессе подрисовки восстановления изображения учитывать его семантику изображения. В этом случае заполнение алгоритм заполнения отсутствующих областей основывается на контекстетом, определяемом объектами какие объекты расположены на изображении.
# Локальный дискриминатор (англ. Local Discriminator). Ему подавалась на вход только сгенерированная часть изображения.
# Глобальный дискриминатор (англ. Global Discriminator). В данном случае на вход подавалось все изображение целиком.
Однако в современных моделях чаще используется один дискриминатор, который принимает на вход не только канал с выходным изображениемвосстановленное изображение, но и канал с маскоймаску. Современные модели чаще всего принимают на вход маски произвольной формы (англ. free-form mask), при работе с которыми локальный дискриминатор показывает плохое качество. Именно поэтому концепция двух дискриминаторов стала не популярной.
=== Виды сверток ===
=== Pluralistic Image Completion<ref>[https://github.com/lyndonzheng/Pluralistic-Inpainting Pluralistic Image Completion, Chuanxia Zheng, Tat-Jen Cham, Jianfei Cai]</ref> ===
Главное отличие данной этой модели от других {{---}} способность выдавать несколько вариантов заполнения отсутствующих областей изображения. Обычно имеется множество возможных реалистичных вариантов подрисовки восстановления изображения, однако большинство моделей выдают на выход лишь один, пытаясь получить оригинальное изображение. Используя данную модель, человек может выбрать более реалистичные генерируемые фрагменты и получить более качественное изображение на выходе.
Данная модель добивается такого эффекта путем пропускания входного изображения через две параллельные сети. Первая сеть {{---}} реконструирующая. Она пытается приблизить выходное изображение к оригинальному. Вторая сеть {{---}} генерирующая, работающая с априорным распределением отсутствующих областей и выборками известных пикселей. Каждая сеть имеет свой дискриминатор, помогающий обучить модель. Кроме выхода дискриминатора для обучения также используются функции сравнения полученного изображения с оригинальным.
=== EdgeConnect<ref>[https://arxiv.org/pdf/1901.00212.pdf EdgeConnect: Generative Image Inpainting with Adversarial Edge Learning, Kamyar Nazeri, Eric Ng, Tony Joseph, Faisal Z. Qureshi, Mehran Ebrahimi]</ref> ===
# Выделение границ изображения и предсказание границ утраченной части изображения.
# Использование сгенерированных границ для заполнения утраченной части изображения.
Для генерации ребер сначала выделяются границы существующей части изображения с помощью Canny edge detector<ref>[https://en.wikipedia.org/wiki/Canny_edge_detector Canny edge detector, Wikipedia]</ref>. Потом полученная граница вместе с маской и черно-белым изображением дается генератору. В качестве целевой функции потерь для тренировки сети берется комбинация двух функций: adversarial loss и feature-matching loss. Также для стабилизация обучения генератора и дискриминатора используется спектральная нормализация.
Для восстановления генератору дается генератор получает на вход испорченное изображение и границы изображения, которые составлены из реальных и сгенерированных на предыдущем этапе. И в В результате генерируется полное изображение. Также как и на предыдущем этапе используется составная функция потерь из: adversarial loss, perceptual loss и style loss.
Однако, данной сети не удается предсказать достаточно хорошую границу, если отсутствует большая часть изображения или объект имеет сложную структуру.
Также данную модель можно использовать для соединения двух изображений или удаления лишних объектов с фотографий.
=== Deep Image Prior<ref>[https://arxiv.org/pdf/1711.10925v4.pdf Deep Image Prior, Dmitry Ulyanov, Andrea Vedaldi, Victor Lempitsky]</ref> ===
Как известно, большинство методов глубокого обучения требуют больших наборов данных для тренировки. В отличии отличие от них данный метод Deep Image Prior не требует никакой предварительной обучающей выборки кроме одного изображения, которое надо исправить. Сеть Для этого сеть учится извлекать полезную информации из самого обрабатываемого изображения. Данный метод может применяться применяется для таких задач как вписывание части изображения, удаление шума и увеличение разрешения фотографий.
Сформулируем данную задачу как задачу минимизации:
<tex>\theta^{*} = \underset{\theta} {\mathrm{argmin}} ~E(f_{\theta}(z), x_0) , \;\ ; x^{*} = f_{\theta^{*}}(z) \;\; (1)</tex>,
<tex>E(x, x_0)</tex> {{---}} это функция потерь, зависящая от решаемой задачи, а <tex>f_{\theta}(z)</tex> {{---}} некоторая сверточная сеть.
# Инициализируем <tex>\theta</tex> рандомными весами.
# На каждой итерации:
## Сеть <tex>f</tex> с текущими весами <tex>\theta</tex> получает на вход фиксированный тензор <tex>z</tex> и возвращает реставрированное восстановленное изображение <tex>x</tex>.
## С помощью сгенерированного изображения x и исходного изображения <tex>x_0</tex> вычисляется функция потерь <tex>E(x;x0)</tex>.
## Веса <tex>\theta</tex> обновляются так, чтобы минимизировать вышеприведенное уравнение(1).
В качестве <tex>f</tex> предлагается использовать сеть U-net с пропускающими соединениями.