Изменения

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

Блендинг изображений

281 байт добавлено, 22:00, 11 января 2021
м
Глубокий блендинг
'''Примеры входных данных:'''
{| class="wikitable" style="background-color:#FFF; text-align:center"
|-
! '''Стилевое <br/> изображение $S$'''
| [[Файл:Deep bl s1.png|150px]]
'''Дискретный оператор Лапласа''' (фильтр Лапласа) $\mathbf{D}^2$ {{---}} аналог непрерывного оператора Лапласа $\nabla^2$, который позволяет выделять контуры изображения.
$$\mathbf{D}^2=\begin{bmatrix}0 & 1 & 0\\1 & -4 & 1\\0 & 1 & 0\end{bmatrix}$$ }}
{| class="wikitable" style="float:right; clear:right;"** TODO картиночка**!Исходное изображение!Применение фильтра Лапласа|-| [[Файл:Lenna.png|200px]]| [[Файл:Lenna_Laplacian_Neg.png|200px]]|}
Чтобы комбинировать решение задачи бесшовного наложения [[Блендинг изображений#Блендинг Пуассона|методом Пуассона]] с остальными ограничениями, авторы статьи<ref name='ZWS20'/> предлагают использовать функцию потерь $\mathcal{L}_{grad}$. Для сохранения контуров изображений $S$ и $I$ в области вставки используется дискретный оператор Лапласа.
Отметим, что $\mathcal{L}_{cont}$ зависит от маски и отвечает за сохранение содержания $I$ в области вставки.
Отличительной чертой этого этапа является использование функции потерь $\mathcal{L}_{grad}$, приближающей градиент результата к градиенту $I$ в области наложения, за счет чего достигается бесшовность. Для вычисления производных второго порядка используется фильтр Лапласа.
В результате получается подготовительное блендинг-изображение $B$:$$B_p =\begin{cases}Z_p,\; \text{если } M_p = 1 \\S_p,\; \text{иначе } \end{cases}$$.
<font size="3em">
'''fun''' $SeamlessBlending$(
<span style="display: inline-block; width: 3em">$I$, </span> <font color="green"> // Входное изображение </font> <span style="display: inline-block; width: 3em">$M$, </span> <font color="green"> // Маска </font> <span style="display: inline-block; width: 3em">$S$ </span> <font color="green"> // Стилевое изображение </font>
):
<font color="green">// Инициализируем первое приближение белым шумом </font>
$$\mathcal{L}_{total}(O) = w_{cont}\mathcal{L}_{cont}(B, O) + w_{style}\mathcal{L}_{style}(S, O) + w_{tv}\mathcal{L}_{tv}(O) + w_{hist}\mathcal{L}_{hist}(S, O)$$
Минимизация происходит относительно результата алгоритма $O$, которой который инициализируется изображением $B$.
<font size="3em">
'''fun''' $StyleRefinement$(
<span style="display: inline-block; width: 3em">$B$, </span> <font color="green"> // Подготовительное блендинг-изображение, результат первого этапа </font> <span style="display: inline-block; width: 3em">$M$, </span> <font color="green"> // Маска </font> <span style="display: inline-block; width: 3em">$S$ </span> <font color="green"> // Стилевое изображение </font>
):
$O \leftarrow B$
|}
Для подсчета $\mathcal{L}_{style}$ используются слои $conv{1_2}conv1_2, conv{2_2}conv2_2, conv{3_3}conv3_3, conv{4_3}$ conv4_3 $VGG$, для $\mathcal{L}_{cont}$ {{---}} $conv{2_2}$conv2_2.
На обоих этапах максимальное количество итераций алгоритма L-BFGS {{---}} $1000$.
128
правок

Навигация