首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

论文解读:使用局部卷积对不规则缺失的图像进行修复

今天,我想谈谈一篇很好的深层图像修复论文,它打破了以前的修复工作的某些限制。简而言之,大多数以前的论文都假设缺失区域是规则的(即中心缺失矩形孔或多个小矩形孔),并且本文提出了局部卷积(PConv)层来处理不规则孔。图1显示了使用建议的PConv的一些修复结果。看样子还不错,那么 让我们一起了解PConv的主要思想!

动机

首先,先前的深层图像修复方法在将缺失像素和有效像素填充到图像中所有缺失像素的固定像素值(归一化之前/之后为255或1)的意义上相同,并将标准卷积应用于像素 用于修复任务的输入图像。这里有两个问题。

i)将丢失像素的像素值固定为预定值是否合适?

ii)是否适合于对输入图像进行卷积而与像素的有效性无关?

因此,仅对有效像素执行操作可能是一个不错的选择。

使用常规蒙版图像和局部转换训练深层修复方法的视觉比较。

其次,现有方法假设缺失区域是规则的/矩形的。他们中的一些人使用本地鉴别器来区分生成的内容和真实的内容。对于固定大小的中心缺失孔,他们将填充的中心孔输入到局部识别器中,以增强局部纹理细节。但是不规则缺失区域呢?有没有可能在不使用鉴别器的情况下获得详细的本地细节?如果您尝试过使用现有的方法来处理不规则遮罩图像,您会发现inpaint结果并不令人满意,如上图所示。对于实际的inpainting方法,他们应该能够处理不规则的掩蔽图像

介绍

我们假设大家对深度图像补绘有基本的了解,如网络架构、损失函数(即L1和对抗性丢失)、相关术语(如有效像素、丢失像素等)。在本文中,将简要地介绍一下对于本文不那么重要的内容,这样我们就可以有更多的时间来深入研究本文中最重要的概念,即局部卷积。

本文采用了一种具有跳跃连接的U-Net网络,其中所有标准卷积层都被提出的局部卷积层所替代。如果你对他们的网络架构感兴趣,你可以参考论文(https://arxiv.org/pdf/1804.07723.pdf),他们提供了详细的模型表。

有趣的是,在这项工作中没有使用鉴别器。除了标准L1损失和Total variation loss(TV损失)外,作者还采用了两种高水平的特征损失来完成纹理较好的掩码图像。稍后我会详细介绍这两个损失。

解决方案

如在上面提到的,关键思想是在卷积过程中将缺失的像素从有效像素中分离出来,这样卷积的结果只依赖于有效像素。这就是我们将这种卷积称为局部卷积的原因。卷积部分基于可自动更新的二进制掩码图像在输入端进行。

局部卷积层

让我们定义W和b为卷积滤波器的权值和偏置。X表示卷积的像素值(或特征激活值),M为对应的二进制掩码,表示每个像素/特征值的有效性(缺失像素为0,有效像素为1)。计算提出的局部卷积,

其中⦿表示逐元素相乘,1是与M形状相同的单位矩阵。从该等式,您可以看到局部卷积的结果仅取决于有效输入值(如X⦿M)。sum(1)/ sum(M)是一个缩放因子,用于随着每个卷积的有效输入值数量的变化来调整结果。

在每个局部卷积层之后更新二进制掩码。提议的更新二进制掩码的规则非常容易。如果当前卷积的结果以至少一个有效输入值为条件,则相应位置将被视为对下一个局部卷积层有效。

正如您在上面看到的,更新规则很容易理解。

局部卷积的可视化说明

上图显示了一个简单的例子来说明所提出的局部卷积。我们考虑一个简单的5×5输入及其对应的5×5二值掩码图像(有效像素为1,孔像素为0)和一个固定权重的3×3 W。假设我们想要保持输入大小5×5相同的输出大小,因此我们在做卷积之前进行零划片。让我们首先考虑左上角(橙色边界)。这个卷积的X和M如图所示,有效输入值的个数为3。因此,这个位置的输出是-9+b。另外,更新后的二进制掩码中对应位置的值为1,因为有3个有效的输入值。

考虑到中间(紫色边界)框,这次卷积没有有效的输入值,所以结果是0+b,更新后的掩码值也是0。右下(蓝色边界)框是显示缩放因子作用的另一个卷积示例。通过比例因子,网络可以将由3个有效输入值计算得到的-3和由5个有效输入值计算得到的-3区分开来。

为了方便参考,上图右上角显示了经过此局部卷积层后更新的二进制掩码。您可以看到更新后的二进制掩码中0减少了。当我们执行越来越多的局部卷积时,二进制掩码最终将被更新为全为1。这意味着无论缺失区域的大小和形状如何,我们都可以控制要在网络内部传递的信息。

损失函数

在它们最终的损失函数中总共有4个损失项,分别是L1损失、感知损失、风格损失和TV损失。

L1损失(逐像素的)

这种损失是为了确保像素级重建的准确性。

其中I_out和I_gt分别是网络的输出和真实值。M是二进制掩码,0表示孔,1表示有效像素。N_I_gt是图像中像素值的总数,等于C×H×W,C是通道大小(对于RGB图像为3),H和W是图像I_gt的高度和宽度。您可以看到L_hole和L_valid分别是空像素和有效像素的L1损失。

感知损失(VGG损失)

感知损失由Gatys等人提出。[2] 简而言之,我们希望填充图像和背景真实图像具有类似的特征表示,这些特征表示是由像VGG-16这样的预训练网络计算得出的。具体来说,我们将地面真实图像和填充图像输入到经过预先训练的VGG-16中以提取特征。然后,我们计算它们在所有或几层的特征值之间的L1距离。

对于上面的公式,I_comp与I_out相同,除了有效像素直接由背景真实像素替换。II_p是在给定输入I的情况下由预训练的VGG-16计算的第p层的特征图。N_ΨI_p是ΨI_p中的元素数。当完成的图像在语义上接近其地面真实图像时,这种感觉很小。可能是因为更深的层次(更高的层次)提供了更多的图像语义信息,类似的高级特征表示表示更好的完成语义正确性。为了便于理解,使用VGG-16 pool1、pool2和pool3层来计算感知损失。

风格损失

除了感知缺失,作者还采用了上面所示的风格损失。风格损失也是使用预先训练过的vgg16提供的特征图计算的。这次我们首先计算每个feature map的自相关性,在[2]中称为Gram matrix。根据[2],Gram矩阵包含图像的风格信息,如纹理和颜色。这也是这种损失被称为样式损失的原因。因此,我们计算完成图像的Gram矩阵与ground truth图像之间的L1距离。请注意,Ψ^ I_p的大小(H_p×W_p)×C_p及其与形状的Gram矩阵是C_p×C_p。K_p是一个归一化因子,它依赖于第p层特征图的空间大小。

TV损失(Total Variation loss)

最后损失函数的最后损失项是TV损失。简单来说,采用这种损失是为了保证完成图像的平滑性。这也是许多图像处理任务中的常见损失。

其中,N_I_comp是I_comp中像素值的总数。

最终损失计算

这是训练所提模型的最终损失函数。在对100张验证图像进行实验的基础上,设置了用于控制每个损失项重要性的超参数。

消融研究

使用不同损失的修复结果。(a)输入图像(b)无风格损失的结果(c)使用所有损失的结果(d)真实图片(e)输入图像(f)使用较小风格损失的权重的结果(g)使用所有损失的结果(h)真实图片(i)输入图像(j)无感知损失的结果(k)使用所有损失(l)真实图像。

作者做了实验以显示不同损失项的影响。结果显示在上面的图中。首先,(b)显示了不使用样式损失的修复结果。他们发现在模型中使用样式风格对于生成精细的局部纹理是必要的。但是,必须谨慎选择风格丢失的超参数。如您在图(f)中所见,与使用完全损失的结果相比,较小的样式损失权重会导致一些明显的假象(图(g))。除了风格上的损失外,感知损失也很重要。他们还发现,使用感知损失可以减少网格状伪影。请参见图(j)和(k)了解使用感知损失的效果。

事实上,高层特征丢失的使用还没有得到充分的研究。我们不能100%地说感知丢失或样式丢失一定对图像inpainting有用。因此,我们必须自己做实验来检查不同损失对于我们期望的应用的有效性。

实验

一些遮罩图像的例子。1,3,5有边界约束,2,4,6无边界约束。

在他们的实验中,所有的掩码、训练和测试图像的尺寸都是512×512。作者将测试图像分为两组,一组是边界附近带孔的掩码,边界附近无孔的掩码。第二组为将所有小孔与边界的距离均不小于50像素的图像。上图显示了这两组掩码的一些示例。此外,根据孔与图像的面积比,生成6种遮罩:(0.01,0.1],(0.1,0.2],(0.2,0.3],(0.3,0.4],(0.4,0.5],(0.5,0.6]。这意味着最大的遮罩可以遮掉60%的原始图像内容。

训练数据。与之前的工作相似,作者在3个公开的数据集上评估了他们的模型,即ImageNet, Places2和celepa - hq数据集。

在ImageNet上对不同方法进行可视化比较。(a)输入图像(b) PatchMatch (c) GLCIC (d) context Attention (e) PConv (f) 真实图像

不同地点的视觉比较2。(a)输入图像(b) PatchMatch (c) GLCIC (d) context Attention (e) PConv (f) 真实图像

上面两张分别显示了ImageNet和Places2上不同方法的可视化比较。PatchMatch是最先进的传统方法。GLCIC和context Attention是两种最先进的深度学习方法。GLCIC (c)和context Attention(d)不能提供具有良好视觉质量的inpainting结果。这可能是因为之前的两种深度学习方法训练的是常规掩蔽图像,而不是不规则掩蔽图像。如果您感兴趣,请放大以更好地查看inpainting结果。

在CelebA-HQ数据集上显示inpaint结果。你可以放大以更清楚地看到结果。

各种方法的定量比较。6列代表6种不同的掩模比例。N表示无边界(即洞可以靠近边界),B表示有边界(即洞不能靠近边界)。

上表列出了几个客观的评价指标,供参考。显然,提议的PConv在几乎所有情况下都提供了最好的数字。请注意,IScore是用于估计视觉质量的初始分数,分数越低,估计的视觉质量就越好。

除了定性和定量的比较,作者还进行了一项人类主观研究,以评估不同方法的视觉质量。感兴趣的读者可以参考研究论文。

一些局限性

当漏孔越来越大时,用PConv进行补绘

一些失败的案例,特别是当场景更加复杂的时候

在本文的最后,作者还指出了当前深图像补绘方法的局限性。首先,如上图所示,缺少大面积区域的图像很难完成。其次,当图像结构复杂时,也很难完成视觉质量良好的图像,如上图所示。目前还没有一种综合的方法来处理超大遮盖和复杂的图像。因此,您可以尝试提出一个很好的解决这个极端的图像内画问题。:)

结论

显然,局部卷积是本文的主要思想。我希望我的简单例子可以清楚地向你解释局部卷积是如何执行的,以及在每个局部卷积层之后二进制掩码是如何更新的。通过使用局部卷积,卷积的结果只会取决于有效像素,因此我们可以控制内部的信息传递网络,这可能是有用的图像修复的任务(至少作者提供的证据表明,局部卷积是有用的在他们的情况下)。除了图像修复外,由于局部卷积与图像修复具有相似之处,作者还尝试将其推广到超分辨率中去。强烈建议感兴趣的读者参考他们的论文。

引用

[1] Guilin Liu, Fitsum A. Reda, Kevin J. Shih, Ting-Chun Wang, Andrew Tao, and Bryan Catanzaro, “Image Inpainting for Irregular Holes Using Partial Convolution,” Proc. European Conference on Computer Vision (ECCV), 2018.

[2] Leon A. Gatys, Alexander S. Ecker, and Matthias Bethge, “A Neural Algorithm of Artistic Style,” arXiv preprint arXiv:1508.06576, 2015.

作者:Chu-Tak Li

deephub翻译组

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201112A02AAM00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券