由于某塔平台会员限制不方便交流,因此决定翻译此文。
题目:用门控卷积的不规则图像修复
ICCV 2019
作者:伊利诺斯大学香槟分校Jiahui Yu (余家辉)等人
摘要
作者提出一种生成式图像修复系统,用结构形式不规则的掩码引导补全图像。该系统基于从数百万张图像中学习到的门控卷积gated convolution,无需额外的标记工作。提出的门控卷积解决了传统卷积vanilla convolution将所有输入像素视为有效像素问题,通过在所有层上每个空间位置的每个通道提供了一种可学习的动态特征选择机制来推广部分卷积。而且,由于不规则的掩码可能以任意形状出现在图像的任何位置,为单个矩形掩码设计的全局和局部GAN并不适用此类情况。因此,通过在密集图像块上应用频谱归一化鉴别器,我们提出了基于图像块的GAN丢失,称为SN-PatchGAN。 SN-PatchGAN的形式简单,训练快速稳定。自动图像修复和用户指导扩展的结果表明,与以前的方法相比,我们的系统可产生更高质量和更灵活的结果。我们的系统可帮助用户快速移除分散注意力的物体,修改图像布局,清除水印并人脸编辑。代码、演示demo和模型从以下链接获得:https://github.com/JiahuiYu/generative_inpainting
1.引言
图像修补(也称为Also Known As图像补全或图像孔填充)是在缺失区域中合成可替代内容的任务,以使修改在视觉上真实并在语义正确。 它允许在照片中删除分散注意力的对象或修饰不需要的区域。 它也可以扩展到包括图像/视频裁剪,旋转,拼接,重新定位,重新构图,压缩,超分辨率,协调和谐等任务。
在计算机视觉中,在计算机视觉中,广泛存在两种图像修复方法:使用低级图像特征的补丁块匹配和具有深度卷积网络的前馈生成模型。前一种方法[3、8、9]可以合成合理的固定纹理,但通常在非平稳情况下(例如复杂的场景,面部和物体)会造成严重的失效。
[3]Patchmatch: A randomized correspondence algorithm for structural image editing.
[8]Image quilting for texture synthesis and transfer.
[9]Texture synthesis by non-parametric sampling.
后一种方法[15、49、45、46、38、37、48、26、52、33、35、19]可以利用从大规模数据集中学习到的语义,以端到端的方式合成非平稳图像中的内容。
[15]Globally and locally consistent image completion.
[49]Generative image inpainting with contextual attention.
[45]Foreground-aware image inpainting.
[46]Image inpainting using block-wise procedural training with annealed adversarial counterpart.
[38]Spg-net: Segmentation prediction
and guidance network for image inpainting.
[37]Globally and locally consistent image completion.
[48]Wide activation for efficient and accurate image super-resolution
[26]Edgeconnect: Generative image inpainting with adversarial edge learning.
[52]Pluralistic image completion.
[33]Pepsi: Fast image inpainting with parallel decoding network.
[35]Pepsi++: Fast and lightweight network for image inpainting.
[19]Deep video inpainting.
但是,基于原始传统卷积的深度生成模型自然不适合用于图像孔填充,因为空间共享的卷积滤波器将所有输入像素或特征视为相同的有效像素。 对于孔洞填充,每层的输入均由孔外部的有效像素/特征和掩码区域中的无效像素/特征组成。 传统卷积在所有有效、无效和混合(例如,孔边界)的像素/特征上应用相同的滤波器,导致在不规则掩码上进行测试时出现视觉伪像,例如色差,模糊度和孔周围的明显边缘响应[15,49]。
[15]Globally and locally consistent image completion.
[49]Generative image inpainting with contextual attention.
为解决这个局限性,最近提出部分卷积[23]方法,其中卷积被掩盖并归一化为仅以有效像素为条件。然后,紧接着是基于规则的掩码更新步骤,在下一层更新有效的位置。部分卷积将所有输入位置分为无效或有效,并将零或一掩码乘以所有层的输入。这个掩码也可以视为单个不可学习的特征门控通道。但是,这种假设有几个局限性。首先,考虑跨网络不同层的输入空间位置,它们可能包括(1)输入图像中的有效像素,(2)输入图像中的掩码像素,(3)具有接受域的神经元没有覆盖输入图像的有效像素, (4)具有接受场的神经元覆盖了输入图像的不同数量的有效像素(这些有效图像像素也可能具有不同的相对位置),以及(5)网络深层中的合成像素。启发式地将所有位置分类为无效或有效会忽略这些重要信息。其次,如果我们扩展到用户指导的图像修补,其中用户在掩码内提供了稀疏草图,那么这些像素位置应该被视为有效还是无效?如何正确更新下一层的掩码?第三,对于部分卷积,“无效”像素将逐层逐渐消失,而基于规则的掩码将在网络深层中全部为1。但是,要在孔中合成像素,这些深层还可能需要有关当前位置在孔内还是孔外的信息。使用全1掩码进行部分卷积无法提供此类信息。我们将证明,如果我们允许网络自动学习掩码,则根据输入图像中甚至在深层中当前位置是否被遮挡,掩码可能会具有不同的值。
[23]Image inpainting for irregular holes using partial convolutions.
我们提出门控卷积用于不规则掩码的图像修复。它为每个通道和每个空间位置(例如,内部或外部掩码,RGB通道或用户指导通道)学习动态特征门控机制。具体来说,我们考虑以下公式:首先使用输入特征来计算门控值(是sigmoid函数,是可学习的参数)。最终输出是学习到的特征与门控值的乘积,其中可以是任何激活函数。当(1)蒙版具有任意形状,并且(2)输入不再仅仅是带蒙版的RGB通道,而是具有条件输入(如稀疏草图)时,门控卷积易于实现,并且性能明显更好。对于网络体系结构,我们根据[49]堆叠门控卷积以形成编码器-解码器网络。我们的修复网络也将上下文关注模块集成到同一优化网络中[49],以更好地捕获远距离依赖关系。
[49]Generative image inpainting with contextual attention.
在不影响性能的情况下,作者将训练目标明显简化为两个术语:像素级重建损失和对抗损失。 该修改主要用于不规则的图像修复。 由于缺失空洞可能会出现以任何形状出现在图像中的任何位置,因此为单个矩形掩码设计的全局和局部GAN [15]方法并不适用。 相反,我们提出了一种生成对抗网络的变体,称为SN-PatchGAN,受全局和局部GAN [15],MarkovianGAN [21],感知损失[17]和频谱归一化GAN [24]启发。 SN-PatchGAN的判别器直接以格式计算输出映射图每个点上的铰链hinge损失,并用数量的GAN表示不同位置和不同语义(在不同通道中表示)的数量。 SN-PatchGAN形式简单,训练快速稳定,可产生高质量的修补效果。
[15]Globally and locally consistent image completion.
[21]Precomputed real-time texture synthesis with markovian generative adversarial networks.
[17]Perceptual losses for real-time style transfer and super-resolution.
[24]Spectral normalization for generative adversarial networks.
对于实用的图像修复工具,允许用户交互性至关重要,因为这可以存在许多可行的解决方案来填充图像中的孔洞。为此,我们提出了一个扩展,以允许用户草图作为引导输入。表1总结了与其他方法的比较。我们的主要贡献如下:(1)我们引入了门控卷积,以学习跨所有层的每个空间位置处每个通道的动态特征选择机制,从而显着提高了颜色一致性和不规则掩码输入的图像修复质量。 (2)我们提出了一种更实用的基于补丁块的GAN鉴别器SN-PatchGAN,用于不规则的图像修复。它简单,快速并且可以产生高质量的修复效果。 (3)我们将修复模型扩展到一种交互式模型,以用户草图为指导来获得更多用户期望的修复结果。 (4)我们提出的修复系统在基准数据集(包括Places2自然场景和CelebA-HQ人脸)上实现了比现有技术更高质量的自由形式修复。我们证明了所提出的系统可以帮助用户快速去除干扰物体,修改图像布局,清除水印并编辑图像中的人脸。
表1.不同方法的比较包括PatchMatch [3], Global&Local [15], ContextAttention [49],
PartialConv [23] 以及本文的方法。图像修复的比较是基于四个维度的:语义理解,非局部算法,不规则掩码和用户指导可选。
PM | GL | CA | PC | Ours | |
---|---|---|---|---|---|
Semantics | |||||
Non-Local | |||||
Free-Form | |||||
User-guided |
[3]Patchmatch: A randomized correspondence algorithm for structural image editing.
[15]Globally and locally consistent image completion.
[49]Generative image inpainting with contextual attention.
[23]Image inpainting for irregular holes using partial convolutions.
2.相关工作
自动图像修复
多种图像修复方法已经被提出。传统上,基于图像块的算法[8,9]会基于低级特征(例如RGB空间上的均方差特征)逐行扩展接近孔边界的像素,以搜索并粘贴最相似的图像块。这些算法在静止的纹理区域上效果很好,但在非静止的图像上常常失效。此外,Simakov等人提出了双向相似性合成的方法[36],以更好地捕获和总结非平稳视觉数据。为了减少搜索过程中存储和计算的高成本,提出了基于树的存储加速结构[25]和随机算法[3]。此外,通过匹配局部特征可以改善修复效果,例如图像梯度[2,5]和相似块的偏移量统计信息[11]。近来,提出了基于深度学习的图像修复系统以直接预测掩码内的像素值。这些模型的显着优势是能够学习针对不同语义的自适应图像特征。因此,它们可以合成更直观的内容,尤其是对于像脸部[22,47],物体[29]和自然场景[15,49]之类的图像。在所有这些方法中,Iizuka等人 [15]提出了一种具有全局和局部一致性的全卷积图像修复网络,以处理各种数据集上的高分辨率图像[18,32,53]。但是,这种方法仍然在很大程度上依赖于Poisson图像融合与基于修补程序的传统修补结果[11]。 Yu等人 [49]提出了一种端到端的图像修复模型,该模型采用堆叠的生成网络来进一步确保生成区域与周围环境的颜色和纹理一致性。此外,为了捕获远距离依赖性,提出了上下文注意模块[49],并将其集成到网络中以明确地借用来自较远空间位置的信息。但是,这种方法主要是在大型矩形掩码上训练的,在自由形式的蒙版上不能很好地推广。为了更好地处理不规则的掩码,提出了部分卷积[23],其中卷积被遮挡并重新归一化以仅利用有效像素。紧接着是基于规则的掩码更新步骤,以逐层重新计算新的掩码。
引导图像修复与合成
为改善图像修复,用户指导方法正在被探索,包括点或线[1,3,7,40],结构[13],变换或失真信息[14,30]和图像示例[4,10,20,43,51 ]。值得注意的是,Hays和Efros [10]首先利用数百万张照片作为数据库来搜索与输入最相似的示例图像,然后通过从匹配图像中剪切和粘贴相应区域来完成图像。
条件生成网络的最新进展使从大规模数据集学习到的用户指导图像处理,合成和处理成为可能。在这里,我们选择性地回顾了一些相关的工作。张等人 [50]提出了可以将用户指导作为附加输入的着色网络。 王等人 [42]提出使用条件生成对抗网络从语义标签图合成高分辨率的真实感图像。 Scribbler [34]探索了一个基于草图边界和稀疏颜色笔画的深层生成网络,以合成汽车、卧室或人脸。
特征级门控
在视频[12,28,39,41],语言[6],语音[27]和许多其他任务中,已经广泛探索了基于特征的门控。 例如,Highways网络[39]利用特征门控来简化基于梯度的非常深层网络训练。 Squeeze-and-Excitation网络通过将每个通道与学习的Sigmoid型门控值相乘来重新校准特征响应。 WaveNets [27]通过使用一个特殊特征门来对音频信号建模来获得更好的结果。
3. 方法
在本节里,作者从下向上介绍方法。首先介绍了门控卷积SN-PatchGAN的详细信息,然后在图3中展示了修复网络的概述以及我们的扩展以允许可选的用户指导。
门控卷积
首先解释为什么[15,49]中使用的原始传统卷积不适用于不规则的图像修补任务。 考虑一个卷积层,其中将一组滤波器应用于输入特征图得到输出。 假设输入是C通道,则在C′通道输出图中位于(y,x)的每个像素的计算方式如下:
其中x,y代表输出特征图的x轴和y轴,和是卷积核大小比如,代表卷积滤波器,和分别代表输入和输出。为简化,省略偏置项。
该方程式表明,对于所有空间位置(y,x),都应用相同的滤波器以产生原始卷积层中的输出。 这对于诸如图像分类和对象检测(其中输入图像的所有像素均有效)之类的任务有意义,以滑动窗口的方式提取局部特征。 但是,对于图像修复,输入由在孔外具有有效像素/特征和在掩蔽区域中具有无效像素/特征(在浅层中)或合成像素/特征(在深层中)的两个区域组成。 如[23]中报道的那样,这会在训练过程中引起歧义,并导致视觉伪影,例如颜色差异,模糊和明显的边缘响应。
最近提出的部分卷积[23]采用了遮挡掩码和重新归一化的步骤,使卷积仅依赖于有效的像素如下式:
其中M是对应的二进制掩码,1表示位置(y,x)上的像素有效,0表示像素无效,⊙表示逐元素乘法。 在每个部分卷积运算之后,需要使用掩码更新步骤来传播具有以下规则的新M:,当sum(M)> 0时。
部分卷积[23]提高了在不规则掩码上的修补质量,但仍然存在以下问题:(1)启发式地将所有空间位置分类为有效或无效。无论上一层滤波器范围覆盖多少像素,下一层的遮罩都将被设置为一个(例如,更新当前掩码时将1个有效像素和9个有效像素视为相同)。 (2)它与额外用户输入不兼容。我们针对的是用户指导的图像修复系统,用户可以选择在掩码中提供稀疏草图作为条件通道。在这种情况下,应将这些像素位置视为有效还是无效?如何正确更新下一层的掩码? (3)对于部分卷积,无效像素将在深层逐渐消失,将所有掩码值逐渐转换为1。但是,我们的研究表明,如果允许网络自动学习最佳掩码,则网络甚至会在较深的层中为每个空间位置分配软掩码值。 (4)每层中的所有通道共享相同的掩码,这限制了灵活性。本质上,部分卷积可以看作是难以学习的单通道特征固定门控。
作者提出门控卷积用于图像修复网络如图2所示。门控卷积不是使用规则更新固定的掩码,而是自动从数据中学习软掩码。 公式为:
其中是sigmoid函数,因此输出门值在0和1之间,可以是任意激活函数如ReLU,ELU和LeakyReLU。和是两个不同的卷积滤波器。
提出的门控卷积为每个通道和每个空间位置学习一种动态特征选择机制。 有趣的是,中间门数值的可视化表明,它不仅学会根据背景,蒙版,草图来选择特征,而且还考虑了某些通道中的语义分割。 即使在较深的层中,门控卷积也可以学会在单独的通道中突出显示掩码区域和草图信息,从而更好地生成修复效果。
谱归一化马尔可夫判别器(SN-PatchGAN)
对于以前尝试填充单个矩形孔的修补网络,在矩形掩码区域上使用了额外的局部GAN以改善结果[15,49]。 但是,我们考虑了自由形状图像修复的任务,其中在任何位置可能有多个具有任何形状的孔。 受全局和局部GAN [15],MarkovianGAN [16,21],感知损失[17]和频谱标准化GAN [24]的最新研究的启发,我们提出了一种简单有效的GAN损失SN-PatchGAN,用于不规则图像修复网络。
使用卷积网络作为判别器,其中输入由图像,掩码和用户指导通道组成,输出是形状为(h,w,c表示3D特征的高度,宽度和通道数)。 如图3所示,堆放了6个跨步卷积,内核大小为5,步幅为2,以捕获马尔可夫块的特征统计信息[21。 然后,我们将GANs直接应用于此功能图中的每个特征元素,制定数量的GANs,重点关注输入图像的不同位置和不同语义(在不同通道中表示)。 值得注意的是,在我们的训练环境中,输出图中每个神经元的感受野可以覆盖整个输入图像,因此不需要全局判别器。
作者也采用最近提出的频谱归一化网络进一步稳定GANs训练过程。使用SN-GANs中描述的谱归一化的默认快速近似算法。为辨别输入的真假,作者对于生成器和判别器使用hinge loss,和其中代表谱归一化判别器。
通过SN-PatchGAN,我们的修复网络比基准模型[49]训练得更快,更稳定。 由于已经在SN-PatchGAN中编码了类似的图像块级别信息,因此不使用感知损失。 与使用6个不同损耗项和平衡超参数的Partial Conv [23]相比,我们最终的修复网络目标函数仅由像素级的重建损耗和SN-PatchGAN损耗组成,具有默认的损耗平衡超参数为1:1。
修复网络结构
作者用提出的门控卷积和SN-PatchGAN损失定制了一个生成的修复网络[49]。 具体来说,我们采用[49]中的粗略网络和细化网络形成完整的模型架构。 图3总结了整个框架。
对于粗略和细化的网络,作者使用简单的编码器-解码器网络[49]代替PartialConv [23]中使用的U-Net。 作者发现,U-Net中的跳过连接[31]对于非窄掩码没有明显影响。 这主要是因为对于屏蔽区域的中心,这些跳过连接的输入几乎为零,因此无法将详细的颜色或纹理信息传播到该区域的解码器。 对于孔边界,具有门控卷积的编码器-解码器体系结构足以产生无缝结果。
我们用门控卷积代替所有传统卷积[49]。 一个潜在的问题是门控卷积会引入其他参数。 为了保持与基准模型[49]相同的效率,将模型宽度缩小了25%,并且在数量和质量上都没有发现明显的性能下降。 修复网络端到端经过培训,可以在任意位置的不规则孔上进行测试。 作者的网络是完全卷积的,并在推理中支持不同的输入分辨率。
不规则掩码生成
自动生成不规则掩码的算法很重要而且很重要。 从本质上讲,采样的掩码应该(1)类似于在实际用例中绘制的掩码;(2)为了避免过度拟合而多样化;(3)在计算和存储方面高效;(4)可控且灵活。 先前的方法[23]从视频的两个连续帧之间的遮挡估计方法中收集了一组固定的不规则掩码。 尽管添加了随机扩张,旋转和修剪以增加其多样性,但该方法不能满足上面列出的其他要求。
我们介绍了一种简单的算法,可以在训练过程中即时动态自动生成随机的不规则掩码。 对于填充孔的任务,用户的行为就像使用橡皮擦来回刷来遮盖不需要的区域。 通过重复画线和旋转角度,可以用随机算法简单地模拟这种行为。 为了确保两条线的平滑度,我们还在两条线之间的接缝处绘制了一个圆。 由于篇幅所限,更多细节包含在补充材料中。
扩展到用户引导的图像修复
我们以草绘作为示例用户指南,以将我们的图像修复网络扩展为用户指导的系统。 草图(或轮廓线)对用户而言简单直观。 我们同时展示人脸和自然场景。 对于人脸,我们提取地标并连接相关的标志。 对于自然场景图像,我们使用HED边缘检测器[44]直接提取边缘图,并将高于某个阈值(即0.6)的所有值设置为1。 由于篇幅所限,补充材料中显示了草图示例。
为了训练用户指导的图像修复系统,从直观上讲,我们将需要其他约束损失来强制网络生成基于用户指导的结果。 然而,在像素重建损失和GAN损失(条件通道作为判别器输入)的相同组合下,我们能够学习条件生成网络,其中生成的结果忠实地尊重用户的指导。 我们还尝试在HED [44]输出特征上使用附加的逐像素损失,并将原始图像或生成的结果用作强制约束的输入,但修复质量相似。 用户指导的修复模型是通过5通道输入(R,G,B颜色通道,掩码通道和草图通道)分别进行训练的。
4. 实验结果
作者在Place2和CelebA-HQ人脸数据集上验证提出的不规则图像补全系统。模型参数量总计4.1M,用TensorFlow v1.8,CUDNN v7.0和CUDA v9.0进行训练。对于无论孔尺寸大小的图像测试,算法在NVIDIA单卡V100上单张0.21秒,2.0GHz CPU上单张1.9s。
定量结果
如[49]所述,图像修复缺乏良好的量化评估指标。 尽管如此,我们在表2中报告了在Places2验证集图像上的平均误差和平均误差的评估结果,包括中心矩形掩码和不规则掩码。 如表所示,基于学习的方法在平均和误差方面比Patch- Match [3]更好。 此外,在同一个框架内实现的部分卷积会获得较差的性能,这可能是由于的基于规则的门控无法学习所致。
定性比较
接下来,作者将模型与以前的最新方法进行比较[15、23、49]。 图4和图5显示了带有几个代表的自动和用户指导的图像修复结果。 对于自动图像修复,可从其在线演示中获得PartialConv的结果。 对于用户指导的图像修复,我们使用与GatedConv完全相同的设置来训练PartialConv *,并期望卷积类型(草图区域被视为用于基于规则的掩码更新的有效像素)。 对于所有基于学习的方法,不执行任何后处理步骤以确保公平。
如[15]中所述,简单的均匀区域(图4和图5的最后一行)对于基于学习的图像修复网络来说是困难的情况。 具有传统卷积的先前方法在孔内/周围具有明显的视觉伪像和边缘响应。 PartialConv产生更好的结果,但仍然表现出明显的颜色差异。 我们基于门控卷积的方法获得了更令人愉悦的结果,而没有明显的颜色不一致。 在图5中,给出了稀疏的草图,我们的方法将产生具有无缝边界过渡的真实结果。
对象移除和创造性编辑
此外,作者研究了图像修复的两个重要的实际用例:对象去除和创造性编辑。
对象删除。 在第一个示例中尝试去除图6中分散注意力的人。我们将我们的方法与商业产品Photoshop(基于PatchMatch [3])和以前的最先进的通用修复网络(在Places2上训练的模型并正式发布)[49]。 结果表明,Photoshop中的“内容感知填充”功能错误地复制了左半边的脸。 该示例反映了一个事实,即传统方法无法从大规模数据中学习,而忽略了图像的语义,从而导致了非平稳/复杂场景中的严重故障。 对于具有传统卷积的基于学习的方法[49],孔边界附近存在伪影。
创造性编辑。 接下来,作者研究用户与修复系统进行交互以产生更多所需结果的情况。 图7中显示了人脸和自然场景的示例。修复结果很好地遵循了用户草图,这对于创造性地编辑图像布局,人脸和许多其他对象很有用。
用户调查
作者进行了用户研究,首先从Places2验证数据集中收集了30张测试图像(有孔但无草图),却不知道每个模型的修复结果。 然后,我们计算了以下四种比较方法的结果:(1)真图,(2)我们的模型,(3)在相同框架内复现PartialConv [23],以及(4)官方PartialConv [23]。 我们进行了两种类型的用户研究。 (A)我们分别评估每种方法以对结果的自然度/修复质量进行评分(从1到10,越高越好),并且(B)我们将模型与官方的PartialConv模型进行比较以评估哪种方法产生更好的结果。 104位用户完成了用户研究。
SN-PatchGAN消融研究
提出SN-PatchGAN的原因是,不规则掩码可能出现在具有任何形状的图像中的任何位置。 先前介绍的为单个矩形掩码设计的全局和局部GAN [15]不适用。 我们在图8的图像修复环境中提供了SN-PatchGAN的消融实验。SN-PatchGAN产生了明显更好的结果,这验证了(1)一种传统全局鉴别器的性能较差[15],以及(2)GAN具有频谱归一化具有更好的稳定性和性能[24]。 尽管引入更多的损失函数可能有助于训练不规则的图像修复网络[23],但我们证明了SN-PatchGAN损失和逐像素损失的简单组合,默认的损失平衡超参数为1: 1,产生逼真的修复效果。 补充材料中显示了更多的比较示例。
5. 结论
作者提出了一种不规则的图像修复系统,该系统基于具有门控卷积的端到端生成网络,并经过逐像素损失和SN-PatchGAN训练。 我们证明了门控卷积通过自由形式的蒙版和用户指导输入显着改善了修复效果。 我们以用户草图作为示例指导,帮助用户快速删除分散注意力的对象,修改图像布局,清除水印,编辑脸部并在照片中交互式创建新目标对象。 定量结果、定性比较和用户研究证明了我们提出的不规则图像修复系统的优越性。