李 兰,陈明举*,石浩德,刘婷婷,邓元实
(1.四川轻化工大学 人工智能四川省重点实验室,四川 宜宾 643000;2.国网四川省电力公司电力科学研究院,四川 成都 610072)
图像修复利用已知信息实现对丢失信息的修补,在文物保护、影视制作、刑事案件的侦破和老照片的修复等领域发挥着重要的作用[1-2]。近年来,得益于深度学习强大的表征学习能力,深度神经网络技术已成为图像修复模技术的研究热点。基于生成对抗的深度学习网络(Generative Adversarial Network,GAN)[3]通过生成器与判别器的相互竞争,强迫生成器与判别器不断改进,能够同时利用图片的浅层纹理信息与深层语义特征,获得较好的图像修复性能[4]。
Pathak等[5]首次提出了基于GAN的上下文编码器(Context Encoder,CE)图像修复方法,该方法采用结构与纹理编解码器,结合重建损失,对低分辨率的图像进行修复,得到了清晰的修复结果。为了进一步提高生成对抗网络的修复性能,Yu等[6]将内容感知层的前馈生成网络(Contextual Attention,CA)引入到生成对抗网络中,从已知的图像区域中匹配相似的补丁,来细化修复后的结果,从而得到更清晰的修复结果。文献[7-8]分别通过将Partial Convolution与Gated Convolution来自动学习掩码的分布,进一步提升了修复效果。Nazeri等[9]的Edge Connect(EC)采取2阶段结构网络分别实现结构边缘与纹理信息的修复,以增强修复图像内容的真实性。然而,由于生成对抗串联耦合框架的不稳定性,从破损的图像中得到合理的结构边缘信息能力有限,图像效果有限。为了有效实现图像结构与纹理信息的修复,Liu等[10]采用纹理和结构的共享生成器,提出了一种混合了结构和纹理的Mutual Encoder-Decoder(MED)图像修复网络。Guo等[11]将图像修复分成纹理合成和结构重建2个子任务,提出了一种新的用于图像修复的双流网络——Conditional Texture and Structure Dual Generation(CTSDG),以进一步提升图像修复的性能。
现有的图像修复生成对抗网络着重于纹理与结构信息实现图像的修复,在信息重构过程中缺乏结构信息与纹理的交互,当待修复区域较大时,这些方法在语义信息上较容易产生歧义,会出现简单的扩展和复制,生成的图片细节不够丰富,容易出现混乱和变形,产生主观效果不理想的修复结果。鉴于此,本文在生成对抗网络的基础上,构建一种基于BIFPN多尺度特征融合的双流图像修复网络,实现结构与纹理信息的相互交互。同时,为了增强修复图像的全局一致性,设计了纹理和结构估计的马尔可夫判别器与基于语义的联合损失函数,并通过实验证明其有效性。
本文采用的图像修复方法被实现为一个生成对抗网络,借助于双流网络[11]的思想,采用了2个编码器和解码器实现图像纹理和结构信息的生成,构建一个多尺度特征融合网络使生成的纹理和结构信息得到细化,有助于生成更合理的图像。采用基于语义信息的损失函数,以实现修复图像在视觉上真实、语义上合理。BIFPN-GAN图像修复的结构如图1所示。
图1 BIFPN-GAN图像修复的结构Fig.1 Structure of BIFPN-GAN image inpainting
本文的生成器以U-Net网络为主干网络,对图像的结构与纹理信息分别进行编码(下采样)和解码(上采样),采用的双流生成器结构细节如图2所示。在编码阶段,将受损图像及其结构图像投影到隐变量空间,并通过跳跃连接[12]将多个尺度上的特征信息连接起来,通过低级和高级特征来生成更复杂的预测。其中,左分支关注纹理特征,右分支关注目标结构特征。在解码阶段,纹理解码器通过从结构编码器借用结构特征来合成结构约束下的纹理信息,而结构解码器通过从纹理编码器获取纹理特征来恢复纹理引导下的结构信息。纹理编码器的输入通道数为2,包含破损图和掩码;结构编码器的输入通道数为3,包含破损边缘检测图(由边缘检测算法[13]检测)、破损灰度图和掩码。
图2 双流结构生成器结构细节Fig.2 Detailed structure of the dual-flow structure generator
为了增强修复图像的结构和纹理的一致性,将输出的结构和纹理特征进一步融合,如图3所示,其中Ft为解码器输出的纹理特征,Fs为结构特征。为了实现在融合过程中结构与纹理信息之间的相互约束,减少重建损失、感知损失与风格损失,采用改进的BIFPN的多尺度特征融合网络,使融合后的图像更接近原始真实图像。采用跳跃连接来防止融合过程中造成语义损坏,将一对卷积和反卷积无缝嵌入特征融合结构中以提高计算效率。通过对上下文的学习,使纹理和结构特征信息的感知与消息交互,增强图像局部特征之间的相关性,并保持图像整体的一致性。
图3 基于BIFPN的多尺度特征融合网络Fig.3 Multi-scale feature fusion network based on BIFPN
处理的具体公式如下:
Pt=σ(g(C(Ft,Fs))),
(1)
式中,C(·)为通道连接;g(·)为由核大小为3的卷积层实现的映射函数;σ(·)是Sigmoid激活函数。通过Pt,可以自适应地把Ft和Fs合并,得到完整的特征映射图Fp。一般地,特征图可以表示为:
(2)
W=Softmax(GW(Fp)),
(3)
W1,W2,W4,W8=Slice(W),
(4)
(5)
(6)
(7)
采用了深度可分离卷积[14-15]提高效率,并将批归一化处理和激活函数ReLU添加到每次的卷积后面。
受全局和局部判决的思想[16-17]的启发,采用谱归一化马尔可夫判别器,通过估计纹理和结构的特征来区分真实图像和生成图像,在判别器上应用了谱归一化[18],改善了生成对抗网络训练不稳定的问题。判别器由5层卷积层和1层全连接层构成,利用卷积-归一化层-激活函数提取图像高级特征,具体参数如表1所示。
表1 判别器参数Tab.1 Discriminator parameters
损失函数采用基于语义的联合损失函数,包括特征内容损失、重建损失、感知损失、风格损失和对抗性损失,以获得视觉上真实、语义上合理的修复网络。
1.4.1 特征内容损失
边缘图像是单通道黑白图像,因此,针对彩色图像的损失函数并不适用。面对复杂的边缘信息,需要特征匹配来控制生成器生成纹理细节与真实图像相似度更高的结果。因此,设计了DenseNet[19]提取特征的特征内容损失,公式如下:
(8)
1.4.2 重建损失
将重建损失添加到改进的基于BIFPN多尺度特征融合网络的目标函数中,有助于指导特征融合网络朝着接近实际数据的可能配置进行。采用Iout和Igt之间的距离L1作为重建损失,公式如下:
Lrec=‖Iout-Igt‖1。
(9)
1.4.3 感知损失
由于重建损失难以捕捉高层语义,本文引入感知损失Lperc来评估图像的全局结构。感知损失模型为ImageNet[20]上预训练的VGG-16[21],Igt为原始图像,Iout为生成器的输出,L1为特征空间中Iout和Igt之间的距离:
(10)
式中,φi(·)为给定输入图像I*通过VGG-16第i层池化层得到的的激活映射。
1.4.4 风格损失
为了确保风格一致性,进一步设计了风格损失。风格损失计算特征图之间的距离Lstyle:
(11)
式中,φi(·)=φi(·)Tφi(·),表示由激活映射φi构造的Gram矩阵。
对抗性损失是为了保证重建图像的视觉真实性以及纹理和结构的一致性,其中D为判别器,将对抗损失引入马尔可夫判别器中,为网络增加了新的正则化,用于判别图像的真假,定义如下:
EIout,Eoutlog[1-D(Iout,Eout)],
(12)
式中,Egt为原始图像边缘映射。
综上所述,联合损失函数如下:
Ljoint=λfmLfm+λrecLrec+λpercLperc+λstyleLstyle+λadvLadv,
(13)
式中,λfm=10;λrec=10;λperc=0.1;λstyle=250;λadv=0.1。
实验所使用的硬件环境为Windows 10,NVIDIA TITAN XP 12 GB。软件环境为Python3.6,pytorch。
本文将修复结果进行主客观2方面分析。客观评价方面,采用峰值信噪比(Peak Signal to Noise Ratio,PSNR)和结构相似性 (Structural Similarity Index,SSIM)作为评价指标。其中,PSNR用来评估2张图像中对应的像素点之间的误差,单位dB,数值越大表示失真越小;SSIM用来评估2张图像在亮度、结构和对比度3个方面的整体相似性,其结果越接近1表明相似性越高[2]。
本文采用了在研究中广泛采用的CelebA和Places2数据集来评估本文的方法,并遵循它们最初的训练。从文献[22]中获取不规则掩码,首先使用2×10-4的学习率进行初始训练,批大小处理为16,使用Adam优化器进行了优化,然后以5×10-5的学习率对模型进行微调,并且冻结生成器的BN层,判别器以生成器1/10的学习率进行训练。
如何使学生自主学习,从而使实验过程不再因为有限的课堂时间而流于形式,使学校有限的的实验资源能够得到充分利用,结合作者在材料实验教学过程中所遇到的问题和实验过程中学生的现状,以及学校对实验有效教学的重视程度,浅谈微课在材料实验教学中的几点应用。
为了验证本文方法的图像修复性能,将本文方法分别与EC,MED和CTSDG算法进行对比。带有掩码的CelebA和Places2数据集修复结果如图4所示,前2行为约25%破损区域,第3行为约10%破损区域,第4行为约40%破损区域。
(a) 原图
(b) 待修复图
(c) EC
(d) MED
(e) CTSDG
(f) 本文图4 不同算法修复结果对比Fig.4 Inpainting results of different algorithms
本文使用2种评价图像的客观定量评估标准PSNR和SSIM对修复结果图像进行评估,从不同破损区域的修复结果中随机选取超过100张修复结果图像进行定量分析。不同算法的修复性能比较如表2所示。由表2可以看出,本文方法具有更高的图像质量结果,并且本文方法比EC,MED,CTSDG算法所用的修复时长都要少,具有更高效的修复性能。
表2 不同算法的修复性能比较Tab.2 Inpainting performance comparison of different algorithms
图像修复本质是一个病态的任务,对于未知的大区域破损图像的修复区域结果往往是不确定的,与原图一样的修复也是非常具有挑战性的,所以修复的目标一般是以人主观视觉上是否可以判断修复后的图像是否为修复图像为依据,即修复的目标为是否在图像视觉上能保证其结构的连贯与自然。因此,进一步进行主观评价,从图4可以看出本文的方法具有更好的修复效果,如眼睛、房屋的房顶等,可以更清晰合理地得到人脸和风景的细节。图5随机展示了2张Places2数据集中修复的边缘图及其效果。
(a) 原图
(b) 破损图
(c) 破损边缘图
(d) 生成的边缘图
(e) 修复结果图5 基于BIFPN图像融合算法的图像修复Fig.5 Image inpainting based on BIFPN image fusion algorithm
为了提高重建结构和纹理的一致性,设计了基于BIFPN的特征融合网络,针对此部分设计消融实验。将生成的纹理和结构特征进行简单融合,所得到的修复结果作为基准来与所设计的基于BIFPN多尺度融合网络进行对比。消融实验结果对比如图6所示。
(a) 破损图
(b) 参考图
(c) 简单融合结果
(d) BIFPN结果图6 消融实验结果对比Fig.6 Results comparison of ablation experiment
由图6可以看出,使用简单的融合模块(通道级联后是卷积层)获得的结果可以观察到模糊的边缘以及信息的缺失,特别是边界附件,如门、窗口、床沿等。为了使比较更加具体,表3给出了定量分析结果,表明BIFPN多尺度融合有助于提高性能。
表3 消融实验定量分析表Tab.3 Quantitative analysis table of ablation experiment
本文对数字图像修复进行了研究,为了使图像重建过程中其结构信息与纹理信息得到充分有效的利用,在改进的双流网络结构上构建了一种基于BIFPN多尺度图像融合网络的图像修算法,实现了修复性能更好的图像修复效果。为了增强修复图像的全局一致性,设计了纹理和结构估计的马尔可夫判别器与基于语义的联合损失函数,并通过实验证明其有效性。实验结果显示,在CelebA数据集和Places2数据集中,本文提出的算法修复的图像不仅具有更高的客观评价指标和更少的修复的时间,还可以达到较好的主观视觉效果。