论文解读-《Deep Image Blending》

论文解读-《Deep Image Blending》

宾夕法尼亚大学

Lingzhi Zhang Tarmily Wen Jianbo Shi

首先区分一下图像混合和图像和谐:

图像混合的目的是解决前景和背景之间的非自然边界,使前景与背景无缝混合。

图像协调的目的是调整前景的颜色和照明统计数据,使其与背景更加兼容,从而使整个图像看起来更加和谐。

摘要

​ 图像合成是创建视觉内容的重要操作。在图像合成任务中,图像融合旨在通过轻微的蒙版调整将源图像中的对象无缝融合到目标图像上。一种流行的方法是泊松图像混合[23],它在合成图像中强制执行梯度域平滑度。但是这种方法只考虑目标图像的边界像素,不能适应目标背景图像的纹理。此外,目标图像的颜色通常会过多地渗透到原始源对象中,从而导致源对象内容的显着丢失。我们提出了一种泊松混合损失,可以达到泊松图像混合的相同目的。此外,我们联合优化了提出的泊松混合损失以及从深度网络计算的样式和内容损失,并通过使用 L-BFGS 求解器迭代更新像素来重建混合区域。在混合图像中,我们不仅平滑了混合边界的梯度域,而且还在混合区域中添加了一致的纹理。用户研究表明,在将对象放置到绘画和真实世界图像上时,我们的方法优于强大的基线以及最先进的方法。

(1) 简介

​ 图像混合是一种图像合成方法。一般是指将源图像(通常是物体)的某个区域进行裁剪,并将其放置到目标图像上的指定位置,目的是使合成图像看起来尽可能自然。这项任务的挑战在于裁剪区域可能无法精确描绘。因此,混合过程不仅需要调整裁剪对象的外观以与新背景兼容,还要使裁剪边界看起来无缝。

​ 目前最流行的图像混合方法是泊松图像编辑。这个想法是重建混合区域中的像素,使得混合边界相对于目标图像中的边界像素具有平滑的像素过渡或小的梯度。然而,该方法由于其封闭形式的矩阵解,难以与其他重建目标相结合。最近的一项工作GP-GAN [33] 将泊松方程的封闭形式解与 GAN 损失相结合,以合成逼真的混合图像。然而,这种方法需要一个源区域、一个目标图像和一个相应的混合良好的图像作为监督学习的训练样本。与图像融合密切相关的是图像协调,但必须精确描绘前景对象,因此目标只是调整前景的照明、颜色和纹理,使其与新背景兼容。

​ 在这项工作中,我们提出了一种新颖的两阶段混合算法。该算法首先为源区域生成一个无缝边界,然后进一步细化与目标图像具有相似风格和纹理的区域。在该算法中,我们提出了一种可微损失,它强制实现了泊松方程原始目标的等效目的,并且可以很容易地与其他重建目标函数相结合。我们的算法不仅适用于真实世界的目标图像,而且还通过利用来自深度特征的内容和风格损失 [7] 来进行风格化绘画。此外,我们的算法仅使用单个源图像、粗掩模和目标图像来解决图像混合的重建问题。由于我们的算法不依赖任何训练数据,它可以泛化到任何源图像和目标图像。最后,我们通过各种测试用例展示了我们的算法与 state-of-hearts 方法相比的独特性和有效性。

(2) 相关工作

2.1 图像混合

​ 图像融合是指将源图像(通常是物体)的某个区域进行裁剪,并将其放置到目标图像的指定位置,其目标是使合成图像看起来尽可能自然。与图像协调相比,图像混合的一个重要特征是它不需要精确的对象描绘来进行混合蒙版。执行此任务的默认方法是直接从源图像中复制像素并将它们粘贴到目标图像上,但这会因为合成边界的强度突然变化而产生明显的伪影。

​ 早期的工作,透明度混合,是对多个图像进行分层的过程,给定层中像素的 alpha 值表示通过给定级别的颜色可以看到来自较低层的颜色的比例。尽管 alpha 混合比直接复制粘贴效果好得多,但它会在合成图像中产生重影效果,因为源图像和目标图像中的内容都存在于同一区域中。

​ 或者,最流行的图像混合技术旨在告知梯度域平滑度 。梯度域混合的动机是人类视觉系统对强度突然变化的区域(例如边缘)非常敏感,因此我们希望生成在混合边界上具有平滑过渡的图像。最早的工作提出通过强制相对于源图像的梯度域一致性来重建目标图像中混合区域的像素,其中混合区域的梯度是从目标中的边界像素计算和传播的图片。有了这样的梯度域一致性,即使对象掩码没有精确描绘,混合图像也会在复合边界上具有平滑过渡。我们的工作部分受到泊松图像编辑 [23] 的启发,这将在第 3 节中进一步描述。

P. P´erez, M. Gangnet, and A. Blake. Poisson image editing. ACM Transactions on graphics (TOG), 22(3):313–318,2003.

​ 最近的一种方法 GP-GAN [33] 利用高斯泊松方程 [3] 和 WGAN的封闭形式解决方案来产生逼真的混合结果。然而,这种方法依赖于有监督的训练,这需要源图像、目标图像和相应的混合良好图像的配对数据作为ground-truth。

​ 与我们的任务密切相关的是图像和谐,即提取一张图像中的前景区域并将其与另一张图像的背景相结合,同时调整前景区域的外观以使其与新背景兼容。早期的作品 [26, 24] 使用背景图像的全局颜色统计来调整前景图像的外观。最近,[30] 提出了一种自动数据采集方法,并学习了一个端到端的深度网络,以在和谐过程中捕获合成图像的上下文和语义信息。与我们的工作最接近的是,[20] 提出了一种深度绘画协调技术,通过根据绘画调整传输参数,将现实世界的物体合成到风格化的绘画上。

[30] Y.-H. Tsai, X. Shen, Z. Lin, K. Sunkavalli, X. Lu, and M.-H. Yang. Deep image harmonization. In Proceedings ofthe IEEE Conference on Computer Vision and Pattern Recognition, pages 3789–3797, 2017.

[20] F. Luan, S. Paris, E. Shechtman, and K. Bala. Deep painterly harmonization. In Computer Graphics Forum, volume 37, pages 95–106. Wiley Online Library, 2018.

​ 另一个密切相关的任务是风格转换,旨在将图像的风格转换为另一个图像的风格。 [7]首先提出通过联合优化变换后的图像与内容图像的深度特征相似度和深度特征的gram矩阵与风格图像的相似度,将内容图像转换为另一幅图像的风格。

L. A. Gatys, A. S. Ecker, and M. Bethge. Image style transfer using convolutional neural networks. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 2414–2423, 2016.

(3) 背景——泊松图像编辑

​ 直接从源图像中复制前景对象并将其粘贴到目标图像上会在边界处产生较大的强度变化,从而对人眼产生明显的伪影。因此,泊松图像混合的动机是平滑混合边界中的突然强度变化以减少伪影。在图(2)中,左图显示了复制粘贴图像中复合边界的突然强度变化和使用泊松混合的平滑边界过渡[23]。

图 2:左侧的两个图像显示了“复制粘贴”图像和“泊松混合”图像中的强度变化。右侧的图像展示了泊松图像编辑的基本思想,其目标是通过目标图像的边界约束来强制源图像和混合图像之间的拉普拉斯梯度域一致性。具体来说,我们使用拉普拉斯滤波器来计算图像的二阶梯度。

​ 在原始工作中,泊松图像混合被表述为使用引导向量场的图像插值问题。

\[\min _{f} \iint_{\Omega}|\nabla f-\mathbf{v}|^{2} \text { with }\left.f\right|_{\partial \Omega}=\left.f^{*}\right|_{\partial \Omega} \]

其中\(\nabla=\left[\frac{\partial .}{\partial x}, \frac{\partial .}{\partial y}\right]\)是梯度算子,\(f\) 是混合图像的函数,\(f^{*}\) 是目标图像的函数,\(\mathbf{v}\)是向量场,Ω是混合区域,∂Ω是混合区域的边界。在这种情况下,引导场\(\mathbf{v}\)是直接取自源图像 \(g\) 的梯度场。

\[\mathbf{v} = \nabla g \]

我们用每个颜色通道的边界条件独立解决这个最小化问题,以获得 RGB 图像。对于图像,可以使用底层离散像素网格对问题进行离散化,以获得二次优化问题。

(4) 方法

我们的算法是一个两阶段的过程,如图(3)所示。在第一阶段,使用提出的泊松梯度损失、风格损失和内容损失来合成初步的混合图像。在第二阶段,将初步混合的图像进一步转换为具有更相似的风格以匹配目标图像。在这里,我们将 \(I_S\) 表示为源图像,\(I_T\)表示目标图像,\(I_B\)表示混合图像,\(I_{BR}\)表示精细混合图像,\(M\)表示掩码。在这里,我们假设源图像 \(I_S\) 已经使用粗掩模\(M\)裁剪。 \(I_S\)\(I_T\)的大小可能相同也可能不同,但它们可以使用用户提供的偏移量轻松对齐。为简单起见,我们认为 \(I_S\)\(M\)已经与\(I_T\)对齐,因此在以下讨论中具有相同的维度。我们进一步将输入图像定义为 \(I_Z\) ,它表示重建的像素。在训练期间,联合损失在第一阶段反向传播到 \(I_Z\) 或在第二阶段反向传播到\(I_{BR}\),因此优化过程本质上是调整 \(I_Z\)\(I_{BR}\)中的像素值。

4.1 泊松梯度损失

正如我们在第 3 节中讨论的那样,泊松图像方程。 (1) 提出通过强制混合图像和源图像之间的梯度域一致性来重建混合区域的像素。同时,混合图像的梯度最初是从目标图像的边界像素计算出来的,并向内部传播。这种一致性产生了混合区域的无缝边界,但它是使用精心设计的矩阵运算来解决的,并且难以与其他约束结合用于像素重建。因此,我们建议将此梯度域约束转换为可微分损失函数,如下所示:

\[\mathcal{L}_{\text {grad }}=\frac{1}{2 H W} \sum_{m=1}^{H} \sum_{n=1}^{W}\left[\nabla f\left(I_{B}\right)-\left(\nabla f\left(I_{S}\right)+\nabla f\left(I_{T}\right)\right)\right]_{m n}^{2} \]

在等式 (3),\(\nabla\)代表拉普拉斯梯度算子,\(H\)\(W\)分别为图像的宽高。混合图像定义为\(I_{B}=I_{Z} \odot M+I_{T} \odot(1-M)\)。这个损失函数是泊松公式 (1)的近似值。首先将\(I_Z\) 的重构像素直接与 \(I_T\) 结合构造\(I_B\),然后对整个\(I_B\)进行拉普拉斯滤波器操作,其中考虑了\(I_T\) 的边界像素。这部分满足泊松方程的边界约束。其次,我们直接最小化\(I_B\)的梯度与\(I_S\)\(I_T\) 的梯度相加之间的差异。由于\(I_T\) 的梯度与\(I_B\)中混合区域外的梯度完全相同,因此损失基本上是在混合区域内计算的。第二部分满足公式(1)中的梯度域约束。实现这种损失的另一种方法是使用\(M\)裁剪\(I_B\)中混合区域的梯度,并将其与 \(I_S\) 进行比较。我们认为这两种实现方式差别不大。

4.2.样式和内容丢失

在原始作品 [7] 中,Gatys 等人。建议使用样式损失来转换源图像的样式,同时使用内容损失来保留源图像的内容。在第一阶段,内容和样式损失定义如下:

\[\mathcal{L}_{\text {cont }}=\sum_{l=1}^{L} \frac{\alpha_{l}}{2 N_{l} M_{l}} \sum_{i=1}^{N_{l}} \sum_{k=1}^{M_{l}}\left(F_{l}\left[I_{Z}\right] \odot M-F_{l}\left[I_{S}\right]\right)_{i k}^{2} \]

\[\mathcal{L}_{\text {style }}=\sum_{l=1}^{L} \frac{\beta_{l}}{2 N_{l}^{2}} \sum_{i=1}^{N_{l}} \sum_{j=1}^{N_{l}}\left(G_{l}\left[I_{Z}\right]-G_{l}\left[I_{T}\right]\right)_{i j}^{2} \]

其中 ⊙ 是元素乘积,\(L\) 是卷积层数,\(N_l\) 是激活通道数,\(M_l\) 是每个通道中扁平化激活值的数量。 是从第\(F_{l}[\cdot] \in \mathbb{R}^{N_{l} \times M_{l}}\) 表示第\(l\) 层的深度网络 F 计算的激活矩阵。 \(G_{l}[\cdot]=F_{l}[\cdot] F_{l}[\cdot]^{T} \in \mathbb{R}^{N_{l} \times N_{l}}\)表示第\(l\) 层对应激活矩阵的 Gram 矩阵。直观地说,Gram 矩阵捕获了所有通道特征对之间的相似关系,它编码了图像风格或纹理以及关于空间结构的零信息。最后,\(\alpha_{l}\)\(\beta_{l}\) 是在计算内容和风格损失时控制每一层影响的权重。

第二阶段,内容损失和风格损失的输入是不同的,定义如下:

\[\mathcal{L}_{\text {cont }}=\sum_{l=1}^{L} \frac{\alpha_{l}}{2 N_{l} M_{l}} \sum_{i=1}^{N_{l}} \sum_{k=1}^{M_{l}}\left(F_{l}\left[I_{B R}\right]-F_{l}\left[I_{B}\right]\right)_{i k}^{2} \]

\[\mathcal{L}_{s t y l e}=\sum_{l=1}^{L} \frac{\beta_{l}}{2 N_{l}^{2}} \sum_{i=1}^{N_{l}} \sum_{j=1}^{N_{l}}\left(G_{l}\left[I_{B R}\right]-G_{l}\left[I_{T}\right]\right)_{i j}^{2} \]

其中,\(I_{BR}\)是经过优化的混合图像,在内容方面相对于\(I_{B}\)进行了优化,在风格方面相对于\(I_{T}\)进行了优化。

4.3.正则化损失

为了稳定混合区域的风格转换并鼓励空间平滑度,我们进一步添加了 [27] 提出的直方图损失和 [21] 提出的总变化损失来正则化生成的图像。

[27] 中的直方图损失在目标图像和混合输出之间的每个输出层的每个对应特征图上执行直方图匹配。在这种情况下,我们每次迭代都这样做。令 \(F_{l}(I_B)\)为混合图像每一层的激活输出,\(R_{l}(I_B)\)为混合输出和目标图像之间的直方图匹配激活。这种损失通过将混合图像的每一层中每个过滤器的边缘分布与目标图像的边缘分布相匹配来稳定风格转移。我们用于直方图损失的激活与样式损失的激活相同。

\[\mathcal{L}_{\text {hist }}=\sum_{l=1}^{L} \gamma_{l}\left\|F_{l}\left(I_{B}\right)-R_{l}\left(I_{B}\right)\right\|_{\mathrm{F}}^{2} \]

总变化(tv)损失用于去除不需要的细节,同时保留图像中的导入信息。损失目标如下所示:

\[\mathcal{L}_{t v}=\sum_{m=1}^{H} \sum_{n=1}^{W}\left|I_{m+1, n}-I_{m, n}\right|+\left|I_{m, n+1}-I_{m, n}\right| \]

4.4.两阶段算法

在我们的算法中,第一阶段旨在将对象无缝融合到背景中,第二阶段旨在进一步细化融合区域的纹理和样式。第一阶段的输入是二维随机噪声,而第二阶段的输入是第一阶段的最终混合图像。我们使用在 ImageNet 上预训练的 VGG-16网络来提取用于计算风格和内容损失的特征。关于梯度域,我们使用拉普拉斯滤波器计算图像的二阶梯度来计算梯度混合损失。

我们使用 VGG 层 \(conv_{12}\)\(conv_{22}\)\(conv_{33}\)\(conv_{43}\)来计算样式损失,使用\(conv_{22}\)来计算内容损失。我们将两个阶段的最大迭代次数设置为 1,000,并使用 L-BFGS 求解器优化损失。在单个 NVIDIA GTX 1080Ti 上运行 512 × 512 图像大约需要 5 分钟。第二阶段设置\(λ_{blend}\) = 10e5, \(λ_{cont}\)= 1,\(λ_{style}\) = 10e5, \(λ_{hist}\)= 1,\(λ_{tv}\)= 10e - 6,第二阶段设置\(λ_{cont}\)= 1,,\(λ_{style}\) = 10e7, \(λ_{hist}\)= 1, ,\(λ_{tv}\)= 10e - 6阶段。更仔细地调整可能会提供更好的超参数组合,但这不是我们的重点。

该图显示了强基线方法与我们在绘画上的比较。Poisson Blending是指泊松图像编辑[23]。 Poisson Blending + Style Transfer 是指首先将对象混合到目标图像上,然后在混合图像上运行样式转移[7]。Style Transfer+Poisson Blending 是指首先在源图像上运行风格转移[7],然后将其混合到目标图像上。

posted @ 2022-05-21 22:14  梁君牧  阅读(887)  评论(0编辑  收藏  举报