图像修复之DeepFill: Free-Form Image Inpainting with Gated Convolution
1. 摘要
作者提出了一种生成式图像修复系统,该系统基于从数百万个图像中学习的门控卷积,无需额外的标记工作。作者所提出的卷积解决了将所有输入像素都视为有效像素的香草卷积问题,通过为所有通道在所有层上的每个空间位置提供可学习的动态特征选择机制来概括部分卷积。
此外,由于自由形式的蒙版可能会出现在任何形状的图像中,因此为单个矩形蒙版设计的全局和局部GAN均不适用。因此,我们还通过应用频谱归一化提出了基于补丁的GAN损失,称为SN-PatchGAN鉴别密集图像斑块。SN-PatchGAN的配方简单,训练快速,稳定。自动图像修复和用户指导的扩展的结果表明,与以前的方法相比,我们的系统可产生更高质量和更灵活的结果。我们的系统可帮助用户迅速移除分散注意力的物体,修改图像布局,清除水印并编辑脸部。
下图显示处理:
作者在项目中提供了一个交互式演示,我们可以自由地遮盖图像的某些部分,然后检查其生成效果。Deepfill V2提供了两个模型,这些模型在两个数据集上进行了预训练:places2和celebahq。从效果的角度来看,至少对于这两个数据集,它在场景和面部图像中做得非常好,尤其是在人脸补全效果突出。
作者在项目中提供了一个交互式演示,我们可以自由地遮盖图像的某些部分,然后检查其生成效果。Deepfill V2提供了两个模型,这些模型在两个数据集上进行了预训练:places2和celebahq。从效果的角度来看,至少对于这两个数据集,它在场景和面部图像中做得非常好,尤其是在人脸补全效果突出。
第一行是真实图像,第二行是删除细节的图像,第三行是DeepFill v2修复的图像
作者指出,该项目只有三个依赖项,即Python 3、TensorFlow和他制作的TF工具包neuralgym。作者在TF 1.3、1.4、1.5、1.6、1.7上进行了测试,并将各种模型超参数放入YML文件中,以便于调整。
2. 网络结构
DeepFill,是基于一个门控卷积网络,能够处理任意形式的掩膜,以及用户手绘的线条。这个深度学习系统可以帮助用户快速擦除画面上不想要的部分,修改图像的布局、编辑面部,以及在图中交互式创建新对象。
上图左边是局部卷积网络,右边是门控卷积网络。
对于这个神经网络而言,输入信息分成三个:颜色通道(RGB Channel)、掩膜通道(Mask Channel)、手绘通道(Sketch Channel)。
当然除了门控卷积网络之外,DeepFill里还包括SN-PatchGAN(光谱归一化马尔可夫判别器)等关键部件。
3. 测试
我们来看下作者针对不同方法的比较,包括PatchMatch,Global&Local,ContextAttention,PartialConv和我们的方法。图片修复的比较基于四个维度:Semantics,Non-Local,Free-Form和User-guided选项如下图所示:
均值误差比较:
下面我们来看下它的修复效果:
上图最左边是输入,照片被各种涂抹,白色的部分就是所谓的掩膜,黑色的细线就是手绘的部分。中间是各种神经网络的处理结果,其中标注Ours的图片,就是DeepFill的处理结果。
处理修复图片之外,还可以对图片进行编辑:
上图,按照想要的方式,修剪远处的小树丛。
显然,DeepFill确实厉害。