高 杰,霍智勇
(1.南京邮电大学 通信与信息工程学院,江苏 南京210003;2.南京邮电大学 教育科学与技术学院,江苏 南京210003)
图像修复技术[1](Inpainting)是图像处理领域研究的一项重要内容,其目的是根据图像或视频中的已知部分来重建丢失区域[2]。现有的图像修复方法包括基于序列的方法、基于卷积神经网络(Convolutional Neural Network,CNN)的方法和基于生成对抗网络(Generative Adversarial Network,GAN)的方法。基于序列的方法又具体分为:基于扩散的方法[3-5]和基于补丁的方法[6-9]。这些方法在针对小区域遮挡和裂缝修复任务时非常有效,但是当图像包含很多纹理或者图像掩码区域比例超过10%时,修复效果较差[10]。
近年来,基于卷积神经网络和生成对抗网络[11]的图像修复技术逐渐成为主流研究方向。文献[12]在传统的卷积神经网络的基础上设计并首次应用了生成对抗网络,提出了编解码器网络,将网络的输出送至判别器检测真伪,大大增加了结果的合理性,但该网络仅能修复固定且规则形状的掩码的图像,在修复具有自由形状掩码的图像时,会产生不自然的结果。文献[13]中提出使用部分卷积(Partial Convolution)对不规则孔洞进行图像修复,将包含无效输入的卷积屏蔽并重新归一化,仅对有效像素卷积,结合其提出的掩码更新机制取得了较好的修复结果。但随着层的加深,掩码与图像之间的关系很难学习,导致修复后的图像中有掩码边界残留。文献[14]将修复任务分为并行处理的粗网络和细网络,提升了修复的效率,但该算法只适用于较小掩码区域的修复。文献[15]提出了一种结合边缘信息先验的两阶段生成对抗网络来进行图像修复,准确地重建了图片中的高频信息。它包括边缘修复网络和纹理修复网络,边缘修复网络在图像的掩码区域生成预测边缘,然后纹理修复网络使用预测边缘作为先验来填充掩码区域。该方法得到了具有丰富纹理细节的修复结果,但由于网络中空洞卷积的各个卷积层的结果之间没有相关性,同样很难获得掩码与图像之间的关系,导致有时不能保证填充区域和已知区域的一致性。
针对上述方法存在的问题,笔者提出了一种门控卷积生成对抗网络的图像修复算法。针对任意形状掩码区域的修复任务,算法在生成对抗网络中利用门控卷积[16],使得网络可以针对每个通道和每个空间位置,学习一种动态特征选择机制,可以根据一些通道的语义分割结果来选择特征图[17]。在网络深层,门控卷积还可针对不同的通道对遮蔽区域进行突出表示[18]。另外,算法针对网络生成器的输出,用谱归一化马尔科夫判别器来稳定训练过程,以获得更好的修复结果。
文献[15]采用边缘修复加纹理修复的两阶段生成对抗修复网络,将图像修复任务分步骤进行,其结构如图1所示。
图1 两阶段生成对抗修复网络结构
首先用边缘检测算法检测出破损图像中已知区域的结构;然后将掩码区域中的边缘与已知区域的颜色和纹理信息结合起来进行结构修复;再将完整结构与待修复图像一起送入纹理修复网络中进行纹理修复,最终得到完整图像。这种两阶段网络充分利用了先验的图像结构信息,从而提高了修复结果在结构上的合理性。
该网络中两段网络的生成器结构是相同的,都由两种卷积组成:① 普通卷积,用于上采样和下采样;② 与残差块结合的空洞卷积,用于扩大卷积的感受野。空洞卷积虽然在参数不变的情况下保证了更大的感受野,但在面对掩码区域较小的情况时容易丢失细节信息,导致算法无法达到生成对抗网络的最佳性能[19]。为了解决这一问题,用门控卷积代替空洞卷积,通过自动地从数据中学习掩码,获得掩码通道与图像通道的关系,从而实现灵活调整卷积的感受域,提升修复结果的合理性。
图像修复网络将修复任务分解成掩码区域高频信息(边缘)和低频信息(纹理)的补全,分3个步骤完成修复:① 预处理(边缘检测),即用整体嵌套边缘检测算法[20](Holistically-Nested Edge Detection,HED)对破损图像进行边缘检测,得到图像边缘的破损信息;② 边缘修复,即将检测到的破损边缘图像、掩码以及破损图像一起输入到边缘修复网络,网络包含生成器G1和判别器D1,在判别器检测生成的边缘为真时,输出完整边缘;③ 纹理修复,即将完整边缘与破损图像送到纹理修复网络,网络包含生成器G2和判别器D2,在判别器检测生成器填充的纹理为真时,输出修复后的完整图像。
算法的网络如图2所示,由结构相同的边缘修复网络和纹理修复网络两部分组成,每个部分都是生成对抗网络,均由含14层卷积层的生成器和含6层卷积层的判别器组成。
图2 门控卷积生成对抗网络结构图
网络在生成器的下采样层和上采样层之间构建内嵌门控卷积的残差块,提高对抗梯度弥散和网络退化的能力;在马尔科夫判别器上应用了谱归一化,改善迭代过程中权重变化缓慢的问题;采用铰链损失函数(HingeLoss)[21]作为生成对抗网络训练的约束。
生成器的功能为根据真实样本生成一些类似于真实样本的假样本,并不断提高生成样本的真实性,直至判别网络无法判断输入的是真实样本还是生成的假样本。边缘修复网络的生成器G1和纹理修复网络的生成器G2结构相同,门控卷积是G1和G2的核心组成部分。生成器的具体结构设置为:第1层是归一化层,以防止反向传播过程中梯度爆炸或消失,其卷积层包含64个7×7的卷积核;第2层和第3层为下采样层,分别使用128个和256个大小均为4×4的卷积核,不断降低图像分辨率以增加输出接收场;第4层至第11层为连续的8个残差块,均使用卷积核为3×3的门控卷积并且不改变图像尺寸,在减少梯度消失的同时利用门控卷积进行相似于背景特征的掩码特征填充;第12层和第13层均为4×4的上采样层,以逐步将图像恢复至原始分辨率;第14层为卷积核大小为7×7的激活函数层,以避免非线性因素的影响。各卷积层之间采用实例归一化以使各生成样本之间相互独立[22]。
生成器G1的输入通道数为3,包括破损灰度图像的1个通道、掩码图像的1个通道和破损边缘图像的1个通道。经过生成器G1得到完整边缘Cout。生成过程用公式可表示为
Cout=G1(Iin,Cin,M) ,
(1)
其中,Iin为破损图像,Cin为HED算法检测出的边缘图像,M表示掩码图像。
生成器G2的输入通道数为4,包括破损RGB图像的3个通道和完整边缘图像的1个通道,经过生成器G2最终输出通道数为3的完整图像Iout。该过程用公式可表示为
Iout=G2(Iin,Cout) ,
(2)
其中,Iin为破损图像,Cout为完整边缘。
判别器用于确定输入判别器的是真实样本还是生成器生成的假样本。判别器D1和D2均选择谱归一化马尔科夫判别器来分别判断G1和G2修复结果的真假。训练过程分两步。第1步,固定生成器训练判别器,若输入为真实样本数据,则可信度置1;若输入为生成的数据,则可信度置0。在生成器参数不变的前提下,让生成器损失函数值取最大,使判别器具有辨别真实样本和生成样本的能力。第2步,固定判别器训练生成器,在判别器的参数不变的前提下让生成器损失函数值取最小,使生成器学会生成出判别器无法区分真假的图像。通过不断地重复上述极大极小值的博弈过程,模型最终达到平衡状态,从而稳定了训练过程。同时,使用谱归一化以改善迭代过程中权重变化缓慢的问题。
谱归一化马尔科夫判别器的结构为:6个卷积核大小为5、步长为2的卷积层,卷积核数目分别为64、128、256、256、256、256。通过每一层的堆叠来获得马尔科夫块特征的统计信息,以捕捉输入图像在不同位置和不同语义通道中的不同特征,并直接对特征图中的每一个特征元素应用生成对抗网络损失,应用次数等于图像的高×宽×通道数。
生成器网络的中间层用于生成破损区域特征,所以需要用连续的残差块来保持传播过程中的梯度,以防止梯度消失或者突变。而一般的残差块中通常采用空洞卷积,虽然获得了较大感受野,但牺牲了较多已知区域与未知区域相关联的细节信息,相较于特征感受野的变化,这些细节信息的多少对修复结果的影响更加明显。为了保证在传播过程中能够获得这些信息,在生成器网络的残差块中引入了门控卷积。门控卷积oy,x由门控选择单元Gy,x和特征提取单元Fy,x两部分组成,其定义如下:
Gy,x=∑∑Wg·I,
(3)
Fy,x=∑∑Wf·I,
(4)
Oy,x=φ(Fy,x)⊙σ(Gy,x) ,
(5)
其中,I表示输入,在网络中即为下采样后的特征;Wg和Wf分别表示用于计算门控值和特征值的卷积滤波器;φ(·)是任意的激活函数,一般采用ReLU或者LeakyReLU;σ(·)表示对输出在[0,1]范围的门控计算值使用sigmoid激活函数;⊙表示像素级别的乘积;(y,x)代表像素的坐标。
对于图像修复任务来说,残差块的输入特征由已知区域的有效像素特征和掩码区域中的无效像素特征组成。由门控卷积中的门控选择单元根据输入特征的关联性选择不同的门控值,再将门控值与特征提取单元所提取的特征值相乘得到门控卷积输出,作为填充特征的依据。由于门控卷积会改变输入的特征,在每次卷积后,门控选择单元和特征提取单元都会根据输入特征更新一次滤波器参数,为下一层已知区域特征以及相对应的掩码区域特征的更新做准备。基于以上操作,在对生成器网络进行迭代训练的过程中,网络学习到了已知区域与掩码区域的联系,增强了填充结果的合理性,提高了修复性能。
2.4.1 边缘修复网络损失函数
为了保证训练的稳定,边缘修复网络中生成对抗网络的损失函数使用铰链损失来判断输入的真假,包含了生成器损失LG和谱归一化马尔科夫判别器(SN-PatchGAN)损失LDsn:
LG=-Ez~Pz(z)[Dsn(G(z))] ,
(6)
LDsn=Ex~Pdata(x)[ReLU(1-Dsn(x))]+Ez~Pz(z)[ReLU(1+Dsn(G(z)))] ,
(7)
其中,G(z)是生成器G1修复不完整图像z的输出结果,Dsn代表谱归一化马尔科夫判别器。
因为图像中相似的边缘补丁信息已经在Dsn中进行了编码,所以无须使用感知损失,仅用惩罚损失程度大的L1损失函数即可。故边缘修复网络的最终损失函数仅由像素级L1重建损失Lrec和SN-PatchGAN损失LDsn两部分组成,默认损失平衡的超参数比为1∶1,具体表达式为
L=Lrec+LDsn,
(8)
Lrec(x)=‖M⊙(x-F((1-M)⊙x))‖1,
(9)
其中,F(·)表示编码器的采样过程。
2.4.2 纹理修复网络损失函数
纹理修复阶段填充了大量纹理信息,致使各卷积层的激活图出现较大差异。为了捕捉这些激活图协方差之间的差异,引入风格损失。给定大小为Ci×Hi×Wi的特征图,风格损失函数的表达式为
(10)
L=Lstyle+LDsn,
(11)
其中,LDsn的表达式与式(7)相同。
为了验证算法网络的鲁棒性和泛化能力,实验数据集采用包含400种不同场景的Places数据集;掩码数据集采用文献[13]中贡献的数据集,它包含了12 000张掩码区域比例从1%到90%的掩码图像。为了验证和优化门控卷积针对不同掩码的特征提取和门控选择能力,每张原始图像都是经过任意地、可重复地叠加随机掩码区域后输入网络训练。
实验计算平台为主频Intel(R) Core CPU i7-7700 @3.60 GHz×4处理器和NVIDIA 1080Ti显卡,平台环境为Centos7系统和Pytorch 1.2.0深度学习框架。根据网络模型参数以及环境配置,实验在二十万张带掩码的、分辨率为256×256的Places2数据集上迭代30个周期,每批次训练样本数设为8,生成器网络的学习率设为10-4,对G1和G2进行端到端训练。针对谱归一化马尔科夫判别器采用Adam优化,一阶、二阶矩估计的指数衰减率分别设置为0和0.9,并设置判别器的学习率为10-5对网络微调,直至收敛为止。
3.2.1 评价指标
为了评估实验的修复结果,选取峰值信噪比(Peak Signal to Noise Ratio,PSNR)和结构相似性(Structural SIMilarity,SSIM)作为评价指标。
峰值信噪比用Φ表示,其定义为
(12)
结构相似性用Ω(x,y)表示,基于图像样本x和y之间的亮度、对比度和结构三个衡量标准来定义:
Ω(x,y)=[l(x,y)c(x,y)s(x,y)] ,
(13)
其中,l(·)、c(·)、s(·)分别表示对图像亮度、对比度和结构的估计度量,其定义分别为
3.2.2 算法结果对比分析
为了验证算法的有效性,实验使用Places数据集的测试集,在不同的掩码区域比例条件下,将算法与CE[12]、PConv[13]、PEPSI[14]和EdgeConnect[15]算法进行主观结果和客观评价指标的比较。
掩码区域比例为10%~20%的测试结果对比图如图3所示。可以看出,文中算法能修复出纹理清晰的结果,而其他算法填充的纹理较模糊。
图3 掩码区域比例为10%~20%的测试结果对比图
掩码区域比例为20%~30%的测试结果对比图如图4所示。可以看出,文中算法能敏锐地捕捉到缺损的旗杆并进行修复,而其他算法并不能捕捉到这一信息。
图4 掩码区域比例为20%~30%的测试结果对比图
掩码区域比例为30%~40%的测试结果对比图如图5所示。可以看出,CE和PConv方法在修复过程中破坏了窗户的结构并产生了多余的孔洞,PEPSI和EdgeConnect方法在缺损的窗户区域没有填充正确的纹理,只有算法结果中的窗户区域有合理的亮光。
由以上主观对比结果可以看出,算法纹理和结构上的修复结果更贴近真实图像,并且在掩码区域生成了更丰富的纹理细节,门控卷积的使用对修复效果的提升比较明显。
图5 掩码区域比例为30%~40%的测试结果对比图
除主观对比之外,还对客观评价指标进行了比较分析。表1为Places数据集上不同图像修复方法、不同掩码区域比例条件下的峰值信噪比和结构相似性结果,图6为这两项指标的变化曲线。
表1 在Places数据集上不同图像修复方法、不同掩码区域比例的PSNR/SSIM
(a) 峰值信噪比变化曲线
(b) 结构相似性变化曲线
由图6(a)可见,当掩码区域比例为1%~50%时,算法的峰值信噪比与其他算法相比提升较大,比EdgeConnect网络的结果平均提升了约4.5%,这是由于网络使用门控卷积获得了背景与掩码之间的关系,增强了已知区域与填充区域的一致性和合理性;同时证明了两阶段网络模型具有良好的修复性能。当掩码区域比例为50%~90%时,由于已知信息不足,所有算法的峰值信噪比均出现明显下降,而所提出的算法仍高于其他算法,这说明谱归一化马尔科夫判别器能有效提升网络的鲁棒性。
由图6(b)可见,当掩码区域比例为1%~10%时,所有方法的结构相似性均较高,都能完成修复任务。但随着掩码区域逐渐增大,CE方法修复效果的结构合理性较差,结构相似性曲线下降速度更快,这是因为该方法的编解码器网络只适用于掩码区域为正方形且位于图像中央的修复任务。当掩码区域比例为1%~60%时,算法的结构相似性相较于其他4种算法均有明显提升;在比例为60%~90%时,算法的结构相似性相较于EdgeConnect方法略有提高。这是由于带有重建损失的铰链损失函数约束边缘修复网络,使其重建出完整度较高的结构信息,该先验信息输入至纹理修复网络后获得结构相似度更高的结果。
3.2.3 算法速度对比分析
在基于生成对抗网络的图像修复工作中,算法的修复速度主要取决于网络收敛速度,而影响网络收敛速度的主要因素是判别器。为了验证谱归一化马尔科夫判别器的引入对算法速度的提升效果,设计了算法速度和参数量对比实验。实验使用500张来自Places测试集的256×256图像,叠加500张掩码图像后分别送入CE、Pconv、PEPSI、EdgeConnect以及文中网络进行测试对比,对比结果如表2所示。
表2 在1080Ti上不同算法修复速度及参数量对比
由表2可知,相较于EdgeConnect方法,文中方法在没有明显增加参数量的前提下提升了修复速度。这说明谱归一化马尔科夫判别器的引入能优化训练过程中的网络参数,过滤掉冗余信息,从而改善迭代过程中权重变化缓慢的问题,加快网络收敛速度。
综上,CE、Pconv和PEPSI这3种非两阶段网络方法的指标均低于使用两阶段修复网络的EdgeConnect方法和文中方法,说明两阶段网络在修复任意掩码比例的图像时性能更强。而在使用了两阶段网络的方法中,文中方法的峰值信噪比和结构相似性分别比EdgeConnect方法提升了3.8%和3.0%,尤其在修复掩码区域为1%~50%的图像时优势更明显,这说明使用门控卷积可以显著提升掩码区域占图像面积一半以内时的修复效果。而经过算法速度对比,说明谱归一化马尔科夫判别器的引入稳定了网络训练过程,并有效提升了算法修复速度和精度。
笔者提出了一种门控卷积生成对抗网络的图像修复算法,通过动态学习已知区域与掩码区域的关系,获得了掩码与图像的深层联系,从而有效改善了之前方法易产生不自然孔洞、填充区域与已知区域不一致导致填充错误的问题,提升了图像的修复质量,特别是在修复掩码区域比例小于50%时提升明显。此外,采用的谱归一化马尔科夫判别器以及铰链损失函数,能增强重建的细节,并且稳定了网络训练过程,提升了算法的修复速度和精度。下一步的研究将偏重纹理修复方面,尝试进行生成对抗网络内容生成方面的实验,以进一步提升网络在修复含有50%以上缺损的图像时的修复效果。