Изменения

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

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

3529 байт убрано, 15:12, 10 января 2021
Виды сверток
Однако в современных моделях используется один дискриминатор, который принимает на вход не только восстановленное изображение, но и маску. Современные модели чаще всего принимают на вход маски произвольной формы (англ. free-form mask), при работе с которыми локальный дискриминатор показывает плохое качество. Именно поэтому концепция двух дискриминаторов стала непопулярной.
=== Виды сверток Свертки ===
Помимо В подрисовке помимо классической свертки в задаче подрисовки широко применяют используются другие виды сверток, которые дают лучшее качество выходного изображенияспособы перехода от слоя к слою.Подробнее про свертки можно прочитать в конспекте [[Сверточные нейронные сети]] ==== # '''Расширенная свертка (англ. Dilated convolution) ==== Похожа на пуллинг и свертку с шагом, но '''. Данный способ позволяет:* Экспоненциально расширить рецептивное поле без потери качества изображения* Получить большее рецептивное поле при тех же затратах на вычисления и памяти, сохранив сохранить качество изображения Формула отличается от классической только коэффициентом расширения l: <tex>(F *_{l} k)(p) = \sum\limits_{s+lt=p}F(s)k(t)</tex> Пример: {| |- |[[Файл:Dilated_convolution.png|border|700px|thumb|left|Расширенная свертка.]] | 1-изображении, 2- уменьшив затраты на память и 4-расширенные свертки с классическими ядрами 3x3, 5x5 и 9x9 соответственно. Красные точки обозначают ненулевые веса, остальные веса ядра равны нулю. Выделенные синие области обозначают рецептивные полявычисления. |} ==== # '''Частичная свертка (англ. Partial convolution) ==== Частичная .''' Данная свертка дает лучшее качество на масках произвольной формы. Классическая свертка позволяет решить две проблемы предыдущих подходов глубокого обучения:# Предположениепредполагает, что испорченные области имеют простую форму (прямоугольную).# Заполнение испорченной области одним цветом и применение свертки ко всему изображению вне зависимости от того, какие все пиксели испорченывалидны, а какие нет. Слой свертки состоит из:<tex>X</tex> {{---}} значения частичная учитывает количество стертых пикселей,<tex>M</tex> {{---}} маска, указывающая на то какие пиксели испорченыв рассматриваемой матрице<tex>x# '' = \begin{cases} W^T(X\bigodot M)\frac{sum(1)}{sum(M)}+b, & \mbox{if } sum(M)>0 \\ 0, & \mbox{otherwise} \end{cases}</tex> Поэлементное перемножение <tex>X</tex> и <tex>M</tex> позволяет получить результат, зависящий только от правильных пикселей, а <tex>\frac{sum(1)}{sum(M)}</tex> нормализует этот результат, так как количество правильных пикселей на каждом слое свертки различается. Маска обновляется так: <tex>m' = \begin{cases} 1, & \mbox{if } sum(M)>0 \\ 0, & \mbox{otherwise} \end{cases}</tex> Если результат свертки зависел хоть от одного реального пикселя, то на следующем слое свертки результирующий пиксель не будет считаться испорченным. Таким образом с каждым слоем свертки маска заполняется пока не будет полностью заполнена единицами. ==== Стробированная свертка (англ. Gated convolution) ==== Разделение пикселей только на правильные и испорченные не позволяет:# Контролировать восстановление изображения и вносить некоторую дополнительную информацию.# Сохранить информацию об испорченной области, так как постепенно все пиксели становятся правильными. Вместо жесткой маски, которая обновляется по некоторым правилам, стробированная свертка учится автоматически извлекать маску из данных: <tex>\begin{array}{rcl} Gating_{y,x} & = & \sum \sum W_g \cdot I \\ Feature_{y,x} & = & \sum \sum W_f \cdot I \\ O_{y,x} & = & \phi (Feature_{y,x}) \bigodot \sigma (Gating_{y,x}) \end{array}</tex> ''' Данная свертка учится динамическому отбору признаков для каждого слоя изображения позволяет сохранять информацию о маске и каждой логической области маскиэскизах пользователя во всех слоях сети, значительно улучшая однородность цвета и что дает возможность получить лучшее качество исправления испорченных областей различных форм.
=== Функции потерь ===
128
правок

Навигация