概述
论文链接:https://dl.acm.org/doi/abs/10.1145/3072959.3073659
代码:https://github.com/otenim/GLCIC-PyTorch
此篇论文的工作是基于前一年提出的上下文编码器(Pathak 等。 - 2016 - Context Encoders Feature Learning by Inpainting),即https://openaccess.thecvf.com/content_cvpr_2016/papers/Pathak_Context_Encoders_Feature_CVPR_2016_paper.pdf
摘要
全局鉴别器查看整个图像以评估其整体是否一致,而局部鉴别器仅查看以完成区域为中心的小区域以确保生成的面片的局部一致性,然后训练图像完成网络以欺骗两个上下文鉴别器网络。
一、引言
此篇论文的工作是基于前一年提出的上下文编码器(Pathak 等。 - 2016 - Context Encoders Feature Learning by Inpainting),即https://openaccess.thecvf.com/content_cvpr_2016/papers/Pathak_Context_Encoders_Feature_CVPR_2016_paper.pdf。
CE方法采用了使用对抗损失训练的卷积神经网络,CE(Context Encoders )方法是由特征学习驱动的,并没有完全描述如何处理任意修复掩模,也没有描述如何将该方法应用于高分辨率图像。本文提出的方法解决了这两点,并进一步提高了结果的视觉质量。
体系结构由三个网络组成:完成网络、全局上下文鉴别器和局部上下文鉴别符。完成网络是完全卷积的,用于完成图像,而全局和局部上下文鉴别器都是专门用于训练的辅助网络。
全局鉴别器将整个图像作为输入,以识别场景的全局一致性,而局部鉴别器仅查看完成区域周围的小区域,以判断更详细外观的质量。在每次训练迭代期间,首先更新鉴别器,以便它们正确区分真实和完成的训练图像。 之后,完成网络被更新,使得它足够好地填充缺失区域以欺骗上下文鉴别器网络。
二、 相关工作
- 基于扩散的方法
- 基于补丁的方法
上面两种都是比较传统的方法,介绍的论文也都是10年之前的。这些方法依赖于低层特征,在面对一些比较复杂的结构时没有很好得效果。早期的基于面片的方法的明显限制是合成纹理仅来自输入图像。当在输入图像中找不到合适的纹理纹理时,就生成不了效果比较好的图像。
通过使用均方误差(MSE)损失和GAN损失,Pathak等人[2016年论文]能够训练修复网络,在128×128像素图像的中心完成64×64像素区域,避免了仅使用MSE损失常见的模糊。本文通过使用全卷积网络将他们的工作扩展到处理任意分辨率,并通过使用全局和局部鉴别器显著提高视觉质量。 可以处理任意图像大小和掩码,同时与图像保持一致,并能够生成新对象。
GAN的主要问题之一是学习过程中的不稳定性,通过不训练纯生成模型和调整学习过程以优先考虑稳定性来避免这个问题。此外,本文还专门针对图像完成问题对架构和训练过程进行了大量优化。
三、方法
一个生成网络和两个鉴别器。
生成网络结构:
局部鉴别网络和全局鉴别网络:
空间支持:
Ω
1
、
Ω
2
表示空间支持,即影响区域。
Ω_1、Ω_2表示空间支持,即影响区域。
Ω1、Ω2表示空间支持,即影响区域。
了能够完成大区域,用于计算输出像素的空间支持必须包括孔外的像素。左边像素p1包含了孔外的信息,而像素p2没有包含孔外的信息。而右边使用了扩展卷积,使p1和p2都能够包含孔外的信息。
训练
使用Places2数据集的8097967张训练图像来训练模型。该数据集包括各种场景的图像,最初用于场景分类。将加权超参数设置为α=0.0004, 训练使用批量大小为96张图像。完成网络被训练用于TC=90000次迭代;然后对鉴别器进行TD=10000次迭代的训练;最后,两者都被联合训练以达到TTrain=500000次迭代的总和。整个培训过程在配备四个K80 GPU的单机上大约需要2个月。
2个月!!!!我直接人麻了!!我是接着看还是直接run???
MSE(均方误差 )损失定义如下:
L
(
x
,
M
c
)
=
∣
∣
M
c
⊙
(
C
(
x
,
M
c
)
−
x
)
∣
∣
2
L(x, Mc ) = || Mc ⊙ (C(x, Mc ) − x) ||^2
L(x,Mc)=∣∣Mc⊙(C(x,Mc)−x)∣∣2
其中⊙ 是逐像素乘法,|| • ||是欧几里德范数。
**逐像素乘法:**逐个对应位的像素相乘再相加,如果值大于255时,则取 255。
欧几里德范数:
欧几里得范数(Euclidean norm) ==欧式长度 =L2 范数 ==L2距离
L2 范数表示符合可以为 或者 ,甚至
计算公式如下
对于一个向量,假设向量
则L2范数定义为向量所有元素的平方和的开平方
四、修复结果
修复结果无非就是和先前的一些方法进行对比、用在实际应用中的效果,用户评估,消融实验等等。不过本篇论文没有在客观的参数上(如峰值信噪比、结构一致性)进行对比评估。
修复效果:
消融实验:
对象移除:
五、结论
总结:
提出了一种新的图像完成方法,该方法基于卷积神经网络产生局部和全局一致的图像完成。使用生成器,局部鉴别器和全局鉴别器。与基于补丁的方法不同,本文的方法可以生成图像中没有出现的新对象。
局限性:
尽管模型可以处理具有任意孔的各种尺寸的图像,但由于模型的空间支持的限制,无法填充明显较大的孔。通过改变模型结构以包括更多的扩展卷积,有可能推高此限值。但是此限制严格适用于方形掩模,例如,只要不太高,仍可完成宽区域:将使用上面和下面的信息来完成图像。 这在图像外推的情况下尤其有限,其中修复掩模位于图像的边界。
两个示例:
左边是缺失的内容都在同一边,右边是缺失的的面积太大。
还有一种效果不好的情况:当重结构物体(例如人或动物)被部分掩蔽时。
主要是三种情况下修复效果不好:
- 缺失的内容都在同一边;
- 缺失的的面积太大;
- 重结构物体被部分掩蔽时。