Изменения

Перейти к: навигация, поиск

Вписывание части изображения

257 байт убрано, 21:44, 8 января 2021
Нет описания правки
Подрисовка обычно разделяется на две задачи:
* '''Управляемая подрисовка'''(англ. non-blind inpainting). В этой задаче на вход модели вместе с изображением подается информация о том, какие пиксели нужно заменить.* '''Слепая подрисовка'''(англ. blind inpainting). В решениях данной проблемы модель сама определяет, где на изображении дефектные пиксели. Модели слепой подрисовки чаще всего занимаются устранением шумов (англ. denoising). В качестве шума , например, может быть как примененный фильтр к изображению, так и наложенный текст. Пример работы модели удаления наложенного текста приведен на картинке справа.
В этом конспекте преимущественно речь пойдет про управляемую подрисовку.
== Простые Традиционные методы ==
Для решения данной задачи существуют существует множество различных методов, в том числе простых. Почти все простые методы основаны на следующей концепции: заполнение отсутствующих частей пикселями, идентичными соседним пикселям или похожими на них. Такие методы часто зависят от множества факторов и наиболее подходят для задачи устранения шума или небольших дефектов изображения. Но на изображениях, где отсутствует значительная часть данных, эти методы дают плохое качество выходного изображенияна выходе.
Есть два основных простых способа восстанавливать данныеметода восстановления данных:# Быстрый пошаговый метод (англ. Fast marching method). Этот метод двигается от границ области, которую нужно закрасить, к ее эпицентруцентру, постепенно закрашивая пиксели. Каждый новый пиксель вычисляется как взвешенная сумма известных соседних пикселей.
# Метод Навье-Стокса (англ. Navier-Stokes method). Метод основывается на том, что грани объектов в изображении должны быть непрерывными. Цвета пикселей вычисляются из известных областей около граней. Метод основывается на дифференциальных уравнениях в частных производных.
[[Файл:inpainting_network.jpg|thumb|550px|Пример GAN для inpainting.]]
Глубокое В отличие от приведенных выше простых методов, глубокое обучение позволяет в процессе подрисовки учитывать семантику изображения (в отличие от приведенных выше простых методов). То есть в данном В этом случае заполнение отсутствующих областей основывается на контексте, вносимым самим изображением, объектах, находящихся определяемом объектами на изображении, и их классах.
Современные методы машинного обучения для решения данной задачи часто базируются на глубоких нейронных сетях для классификации изображений, [[Автокодировщик|автокодировщиках (autoencoder)]] и [[Generative_Adversarial_Nets_(GAN)|генеративно-состязательных сетях (GAN)]].
Для того, чтобы понимать, какую часть изображения нужно заполнить, на вход сети кроме самого изображения подается слой маски с информацией о пикселях, где данные отсутствуют.
Сети обычно имеют модель автокодировщиков {{---}} сначала идут слои кодирующие, а потом декодирующие изображение. Функция потерь побуждает модель изучать другие свойства изображения, а не просто копировать его из входных данных в выходные. Именно это предоставляет возможность научить модель заполнять недостающие пиксели.
Обучение может происходить через сравнение оригинального изображения и синтетического, сгенерированного сетью или через генеративно-состязательную сеть. Во втором случае для обучения используется дискриминатор, который определяет фейковое ли изображение подали ему на вход. В современных моделях обычно используют совмещенный подход: функции потерь зависят и от исходного изображения, и от выхода дискриминатора.
[[Файл:DeepFillv2_model.jpeg|thumb|450px|Сеть DeepFillv2.]]
Главная идея данной модели {{---}} это использование стробированной свертки, которая позволила добиться хорошего качества вписывания при восстановлении изображения с разными формами испорченных областей. Также данная модель может использовать набросок пользователя в качестве входных данных.
Кроме того, в данной модели предлагается использовать вариант генеративно состязательной сети {{---}} SN-PatchGAN. Дискриминатор этой сети в каждой точке вычисляет кусочно-линейную функцию потерь, формируя таким образом <tex>h \times w \times c</tex> генеративно состязательных сетей, каждая из которых сосредотачивается на различных частях и свойствах изображения.
[[Файл:sc-fegan_result.jpg|thumb|450px|Пример работы модели SC-FEGAN.]]
Данная модель позволяет производить высококачественные изображения лиц, учитывая передаваемые пользователем эскизы и цвета на области маски (стертых частях изображения). Иными словами пользователь может легко редактировать изображения, стирая фрагменты, которые он хочет изменить, и подставляя туда эскизы и/или цвета, которые будут отражены в генерируемом фрагменте.
Основа данной сети patchGAN {{---}} дискриминатор принимает на вход несколько каналов изображения. В данном случае помимо выходного изображения генератора и маски, дискриминатор принимает еще слой пользовательского ввода (эскизы и цвета).
128
правок

Навигация