128
правок
Изменения
Описание первого этапа
|}
* [[Блендинг_изображений#content_loss_def|Функция потерь содержания]] $\mathcal{L}_{cont}$ для сохранения содержания накладываемого изображения $I$
* [[Блендинг_изображений#style_loss_def|Функция потерь стиля]] $\mathcal{L}_{style}$ для переноса стиля изображения $S$ на $I$
* [[Блендинг_изображений#tv_loss_def|Функция потерь полного отклонения]] $\mathcal{L}_{tv}$ для удаления шумов
* [[Блендинг_изображений#grad_loss_def|Градиентная функция потерь]] $\mathcal{L}_{grad}$ для бесшовности наложения
Для подсчета $\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>.
{{Определение
|definition =
'''Простой вставкой''' (англ. ''copy and paste'') $CASCAP(M, S, I)$ будем назвать изображение, полученное наложением части изображения $I$, заданной маской $M$, на изображение $S$. $CASCAP(M, S, I) = I \odot M + S \odot (1 - M)$, где $\odot$ {{---}} покомпонентное умножение. }}
{{Определение
|id=grad_loss_def
|definition =
$\mathcal{L}_{grad}(S, I, M, O) = \displaystyle\frac{1}{2HW}\displaystyle\sum_{m=1}^H \gamma_l \displaystyle\sum_{n=1}^W [\,\nabla ^2 f(B) - (\nabla ^2 f(S) + \nabla ^2 f(I)) ]\,^2_{mn}$ {{---}} градиентная функция потерь (англ. ''Possion gradient loss''). $\nabla^2$ {{---}} оператор Лапласа. $H, W$ {{---}} высота и ширина изображений. $B = CASCAP(M, S, O)$ {{---}} блендинговое изображение, оптимизируемое относительно $O$. }}
=== Первый этап ===
[[Файл:Deep bl 1stage.png|thumb|right|200px|Результат первого этапа]]
На первом этапе изображение $I$ накладывается на фоновое изображение $S$ таким образом, чтобы были незаметны швы. Построение подготовительного изображения начинается с белого шума. Для подсчета $Z$, который оптимизируется в области вставки путем минимизации суммарной функции потерь $\mathcal{L}_{styletotal}$ и , представленной взвешенной суммой всех функций потерь, описанных выше:$$\mathcal{L}_{contenttotal}$ авторами статьи<ref name(Z) ='ZWS20'/> использовалась сеть VGG-19<ref name="SZ14"/>w_{grad}\mathcal{L}_{grad}(I, S, B) + w_{cont}\mathcal{L}_{cont}(I, M, обученная на ImageNet<ref name="ImageNet">https://image-net.org/papers/imagenet_cvpr09.pdf J. DengZ) + w_{style}\mathcal{L}_{style}(S, W. DongB) + w_{tv}\mathcal{L}_{tv}(B) + w_{hist}\mathcal{L}_{hist}(S, R. SocherB) $$Отметим, что $\mathcal{L}_{cont}$ зависит от маски и отвечает за сохранение содержания $I$ в области вставки.-J. Li Отличительной чертой этого этапа является использование функции потерь $\mathcal{L}_{grad}$, K. Liприближающей градиент результата к градиенту $I$ в области наложения, and Lза счет чего достигается бесшовность. FeiFeiДля вычисления производных второго порядка используется фильтр Лапласа. Imagenet В результате получается подготовительное блендинг-изображение $B$: A large-scale hierarchical image database</ref>. $$B_p =\begin{cases}Z_p,\; \text{если } M_p = 1 \\S_p,\; \text{иначе } \end{cases}$$
<font size="3em">
'''fun''' $SeamlessBlending$(
<font color="green">// Инициализируем первое приближение белым шумом </font>
$Z \leftarrow RandomNoise() $
$B \leftarrow CASCAP(M, S, Z)$
<font color="green">// Определим суммарную функцию потерь с весами слагаемых $w$</font>
$\mathcal{L}_{total}(Z) \leftarrow w_{grad}\mathcal{L}_{grad}(I, S, B) + w_{cont}\mathcal{L}_{cont}(I, M, Z) + w_{style}\mathcal{L}_{style}(S, B) + w_{tv}\mathcal{L}_{tv}(B) + w_{hist}\mathcal{L}_{hist}(S, B)$
<font color="green">// С помощью алгоритма L-BFGS ищем изображение $Z$, которое минимизирует $\mathcal{L}_{total}$ </font>
$Z \leftarrow Reconstruct(\mathcal{L}_{total}, Z)$
'''return''' $CASCAP(M, S, Z)$
</font>