Изменения

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

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

2756 байт добавлено, 23:09, 8 января 2021
Первое приближение первого этапаы
==Глубокий блендинг==
kekkekek
todo: че зачем
 
Алгоритм глубокого блендинга состоит из двух этапов. На первом этапе на стилевое изображения $S$ бесшовно накладывается входное изображение $I$, получается подготовительное блендинг-изображение $B$. На втором этапе $B$ модифицируется таким образом, чтобы результат по стилю был похож на $S$.
 
=== Первый этап ===
Построение подготовительного изображения начинается с белого шума. Для подсчета $\mathcal{L}_{style}$ и $\mathcal{L}_{content}$ авторами статьи<ref name='ZWS20'/> использовалась сеть VGG-19<ref name="SZ14"/>, обученная на ImageNet<ref name="ImageNet">https://image-net.org/papers/imagenet_cvpr09.pdf J. Deng, W. Dong, R. Socher, L.-J. Li, K. Li, and L. FeiFei. Imagenet: A large-scale hierarchical image database</ref>.
 
Для удобства введем вспомогательную функцию применения маски:
 
<font size="3em">
<font color="green">// Вставка части изображения $I$, определенной маской $M$,</font>
<font color="green">// на изображение $S$ </font>
'''fun''' $ApplyMask(M, I, S)$:
<font color="green">// За $\odot$ обозначим покомпонентное произведение </font>
'''return''' $I \odot M + S \odot (1 - M)$
</font>
 
Алгоритм первого этапа:
<font size="3em">
'''fun''' $SeamlessBlending$(
$I$, <font color="green"> // Входное изображение </font>
$M$, <font color="green"> // Маска </font>
$S$ <font color="green"> // Стилевое изображение </font>
):
<font color="green">// Инициализируем первое приближение белым шумом </font>
$Z \leftarrow RandomNoise() $
$B \leftarrow ApplyMask(M, Z, S)$
<font color="green">// Определим суммарную функцию потерь с весами слагаемых $w$</font>
$\mathcal{L}_{total}(Z) \leftarrow w_{cont}\mathcal{L}_{cont}(I, Z) + w_{style}\mathcal{L}_{style}(S, B) + w_{grad}\mathcal{L}_{grad}(I, S, B) + w_{tv}\mathcal{L}_{tv}(B)$
<font color="green">// С помощью алгоритма $L-BFGS$ ищем изображение $Z$, которое минимизирует $\mathcal{L}_{total}$ </font>
$Z \leftarrow Reconstruct(\mathcal{L}_{total}, Z)$
'''return''' $ApplyMask(M, Z, S)$
</font>
==Ссылки==
128
правок

Навигация