写在开始
在这里,对Iizuka等人的论文《Globally and Locally Consistent Image Completion》(2017年)做个简要的笔记。不足之处还请在评论区指出。
目录
1 简述
2 问题
3 方法
3.1 整体网络模型
3.2 修复网络
3.3 语境判别器网络
3.4 训练
4 实验结果
5 其他
5.1 创新点
5.2 优点
参考文献
1 简述
Iizuka等人[1]提出了一种新的图像修复方法,该方法可以生成局部和全局一致的图像。利用全卷积神经网络,通过填补任意形状的缺失区域来修复任意分辨率的图像。为了训练图像修复网络,使得结果具有一致性,论文[1]使用全局和局部语境判别器。首先训练判别器,来区分真实图像和修复图像。全局判别器着眼于整个图像,评估图像在整体上是否一致,而局部判别器只关注以修复区域为中心的小块区域,保证生成补丁的局部一致性。然后训练图像修复网络,来欺骗这两个语境判别器网络。这就要求修复网络生成的图像无论是整体上还是细节上,都与真实图像难以区分。
2 问题
图像修复是一种技术,它选择内容并填充到目标区域中。这允许移除不需要的对象或生成基于图像的3D重建的闭塞区域。虽然已经提出了许多图像修复的方法,如基于补丁的图像合成[2,3,4,5],这仍然是一个具有挑战性的问题,因为它通常需要对场景进行高层次的识别。不仅要修复纹理图案,理解需要修复的场景和对象的骨架也很重要。基于这一观察,Iizuka等人考虑了场景的局部连续性和全局一致性,提出在一个单一的框架中修复图像。
3 方法
Iizuka等人提出了一个基于卷积神经网络来进行局部和全局一致的图像修复方法。实验证明,通过使用全局和局部语境判别器,训练修复模型来生成真实的图像是可能的。接下来将会详细介绍所提出的网络模型。
3.1 整体网络模型
所提出的方法是基于深度卷积神经网络训练的图像修复任务。这种方法的架构如图1所示。它由一个修复网络和两个判别器网络组成。首先,一个单独的修复网络用于对图像进行修复。其次,两个判别网络(全局和局部语境判别器网络)使得修复网络生成的图像尽可能真实。这两个判别器网络仅用于修复网络的训练,在测试过程中不使用。全局判别器网络以整个图像作为网络输入,局部判别器网络仅以修复区域周围的一小块区域作为输入。在整个模型训练过程中,对判别器网络进行训练,判断所输入的图像是否是生成的;对修复网络进行训练,来欺骗两个判别器网络。只有将三种网络一起训练,修复网络才能真实地修复图像,并且生成图像具有多样性。
3.2 修复网络
修复网络基于全卷积网络,其模型结构如图1的前半部分所示。修复网络的输入是RGB图像,以及二进制通道Mask,Mask表示图像修复掩码(1表示要修复的像素)。修复网络的输出是修复后的RGB图像。由于不希望在修复区域以外的地方有任何更改,修复区域之外的输出像素等于输入RGB图像的对应位置的像素。该网络遵循编码-解码结构,首先降低图像分辨率,从而减少内存使用和计算的时间。然后使用反卷积层(deconvolution layers)将输出恢复到原始分辨率,反卷积层由较小步数的卷积层组成。与其他使用池化层来降低分辨率的架构不同,该修复网络模型只降低了分辨率两次,使用的是四分之一的原始大小的带阶卷积,这对于在缺失区域生成非模糊纹理非常重要。
扩展卷积层位于中间层。扩展卷积使用的是分散的内核,使得用大得多的输入面积来计算每个输出像素,但使用的参数和计算能力仍然相同。这对于图像修复任务非常重要,因为语境(上下文)对于现实主义非常关键。通过在低分辨率时使用扩展卷积,该模型在计算每个输出像素时,比使用标准卷积层时能直观地“看到”输入图像的更大区域。由此产生的网络模型在输入图像的307×307像素区域的影响下计算每个输出像素。当不使用扩张卷积是,网络模型将只使用一个99×99像素区域,不允许修复大于99×99像素的孔,如图2中所示。从图2中可看出空间支持(区域支持)的重要性。为了能够修复大区域,用于计算输出像素的区域必须包含孔外的像素。图2左侧中(蓝色方框为区域),像素p1是在区域Ω1的影响下计算出来的,而像素p2则无法计算,因为区域Ω2不包含孔外的任何信息。然而,在图2右侧中(橙色方框为区域),空间支持Ω2大于孔,允许修复中心像素p2。
3.3 语境判别器网络
语境判别器分为全局语境判别器网络和局部语境判别器网络,其目标是识别图像是真实的还是修复的。这两个网络基于卷积神经网络,将输入图像压缩成小的特征向量。两个判别器网络的输出通过连接层融合在一起,该连接层预测一个连续值,该值对应于图像为真实的概率。这些网络的概述如图3所示。
全局语境判别器需要整个图像(256×256)作为输入。它由6个卷积层和1个全连接层组成。输出为单个1024维向量。所有的卷积层采用2×2像素步幅来降低图像分辨率,同时增加过滤器的数量。与修复网络相比,所有的卷积使用大小为5×5的过滤器。
局部语境判别器遵循相同的模式,除了输入是一个128×128像素补丁,该补丁围绕完整的区域。(注意,在训练时总是有一个单独完整的区域。然而,经过训练的修复网络可以同时填充任意数量的洞)。如果图像不是完整的,则随机选择图像的补丁,因为没有完整的区域将其居中。由于初始输入分辨率是全局判别器的一半,因此不需要使用全局判别器中第一层。输出是一个1024维的向量,表示修复区域周围的局部上下文信息。
最后,将全局和局部判别器的输出连接在一起,形成一个2048维的向量。该向量由一个全连接层进行处理,输出一个连续的值。全连接层使用sigmoid激活函数使输出值在[0,1]范围内,该值表示图像是真实的,而不是修复的概率。
3.4 训练
所提出的网络的损失函数包含如下两部分:
1)加权均方误差(MSE)损失:该损失是为了确保训练的稳定性;
2)生成对抗网络(GAN)损失:该损失是为了提高结果真实性。
其中x表示输入图像,表示修复网络掩码,
表示修复网络,
表示判别网络掩码,
表示判别网络,注意,在这里D由局部和全局语境判别器组成。因此,结合两种损失,总的网络损失函数为:
其中α是一个表示权重的超参数。
已经知道整体网络的损失函数,那么整体网络的训练过程:1) 对修复网络进行次迭代训练;2) 固定修复网络,并对判别网络进行
次迭代训练;3) 对修复网络和判别网络进行联合训练,直至训练结束。
4 实验结果
论文[1]中对该方法进行了多个实验,这里仅仅只列举具有代表性的实验结果,如图4所示。能够看出,该方法可以生成图像中其他地方不存在的新片段,例如完成面部所需的片段,而基于补丁的方法无法做到这一点。
5 其他
5.1 创新点
论文[1]的创新点有:
1)提出高性能网络模型,可修复任意缺失区域;
2)提出针对图像修复的全局和局部一致的对抗性训练方法;
3)将所提出的方法应用于具体数据集以得到更具挑战性的图像修复的结果。
5.2 优点
论文[1]所提出的方法优点有:
1)修复后的图像能够在局部以及全局保持一致;
2)修复后的图像更加自然;
3)能够生成图像中其他地方没有的新对象。
参考文献
[1] Iizuka S, Simo-Serra E, Ishikawa H. Globally and locally consistent image completion[J]. ACM Transactions on Graphics (ToG), 2017, 36(4): 107.
[2] Barnes C, Shechtman E, Finkelstein A, et al. PatchMatch: A randomized correspondence algorithm for structural image editing[C]//ACM Transactions on Graphics (ToG). ACM, 2009, 28(3): 24.
[3] Darabi S, Shechtman E, Barnes C, et al. Image melding: Combining inconsistent images using patch-based synthesis[J]. ACM Trans. Graph., 2012, 31(4): 82:1-82:10.
[4] Huang J B, Kang S B, Ahuja N, et al. Image completion using planar structure guidance[J]. ACM Transactions on graphics (TOG), 2014, 33(4): 129.
[5] Simakov D, Caspi Y, Shechtman E, et al. Summarizing visual data using bidirectional similarity[C]//2008 IEEE Conference on Computer Vision and Pattern Recognition. IEEE, 2008: 1-8.