APP下载

融合监督注意力模块和跨阶段特征融合的图像修复改进网络

2024-03-21黄巧玲郑伯川丁梓成吴泽东

计算机应用 2024年2期
关键词:编码器像素卷积

黄巧玲,郑伯川,*,丁梓成,吴泽东

(1.西华师范大学 数学与信息学院,四川 南充 637009;2.西华师范大学 计算机学院,四川 南充 637009)

0 引言

图像修复是指数字图像中缺失区域的补全。图像修复的目的是用语义合理、视觉逼真的内容填补缺失的区域,同时与图像的其余部分保持语义一致性。图像修复在许多领域中都有着重要的应用:在图像编辑领域,图像修复技术可以从图像中抠除不需要的对象或恢复受损图像中的缺失区域,还可以还原一些变质的老照片等;在医学研究领域,图像修复可以用于去除医学成像系统产生的噪声和伪影;在公共安全领域,图像修复技术被用于修复掌纹、指纹、人像,以实现更好的鉴定识别。因此,图像修复技术具有重要的研究意义,近年来,随着深度学习技术的发展,图像修复技术研究越来越成为研究的热点问题之一。

早期图像修复方法可以分为两类:基于扩散的方法[1-3]和基于补丁的方法[4-6]。前者主要基于偏微分方程或变分法将信息从周围区域扩散到缺失区域;后者则通过复制和粘贴将图像内容从已知区域传播到缺失区域。早期图像修复方法在处理小的缺失区域时视觉效果较好,然而对于较大的缺失区域,则无法创建已知图像区域都不存在的大型结构和对象。

随着深度学习技术广泛应用于图像处理领域,近年来主要借助深度学习技术修复图像,取得了不错的效果。从网络设计的角度,基于深度学习技术的修复方法可分为单阶段网络(一个生成器)[7-17]、双阶段网络(两个生成器)[18-25]和渐进式网络(多个生成器)[26-30]。虽然单阶段网络的网络结构简洁,能生成看似合理的图像结构及纹理,但在修复区域的边界时,经常会生成扭曲的结构和模糊的纹理,这是因为卷积神经网络无法从图像较远的区域提取信息。Yu 等[19]提出了一种改进的两阶段网络的生成式修复框架,由粗网络和细化网络组成,细网络对粗网络修复结果进行细调。细化部分包括2 个细化网络,在一个细化网络中,引入上下文注意模拟相关性,能够更好地利用较远区域图像特征作为参考;同时引入门控卷积和基于补丁的生成对抗网络鉴别器,提高了对非规则缺失区域图像修复的效果。渐进式修复网络整体修复效果较好,但是由于包括多次迭代,前一个生成器的输出用于指导下一个迭代,因此计算成本高,对设备要求高。

现有的两阶段网络采用编码器-解码器体系结构,虽然可以有效地编码上下文信息,但它保存空间图像细节并不完整,如文献[19]修复高分辨率图像(例如512×512)时可能会产生伪影和模糊的纹理。实验结果表明:直接将上一阶段的输出传递到下一阶段不一定能得到最好的修复效果。因此,本文引入了跨阶段特征融合(Cross-Stage Feature Fusion,CSFF)机制[33],有助于将多尺度上下文特征从上一阶段传播到下一阶段,提高修复性能;另外,本文在第一阶段和第二阶段之间插入一个监督注意力模块(Supervised Attention Module,SAM)[33],以实现渐进式学习,通过提供真实图像的监督,有助于优化网络特征。基于文献[19]中的两阶段网络,本文提出了一种融合SAM 和CSFF 的两阶段图像修复网络(Gated convolution based CSFF and SAM,Gconv_CS),该网络更加关注第一阶段恢复的图像送入到第二阶段恢复时的信息损失情况,以及传入到第二阶段图像信息的有效性。同时,本文还提出了修复网络用于修复大熊猫面部遮挡缺损区域,较好地恢复了大熊猫的面部图像。

1 相关工作

现有的图像修复方法主要可分为两大类:传统的修复方法和基于深度学习技术的修复方法。

1.1 传统的修复方法

传统的图像修复方法主要包括基于扩散的方法[1-3]和基于补丁的方法[4-6]。

基于扩散的方法 扩散是指带有光滑性约束的局部信息传播过程。Bertalmio 等[1]率先提出利用扩散进行图像修复,即在重建过程中利用待修复区域的边缘信息,确定扩散的方向,向边缘内扩散已知的信息。Ballester 等[2]将图像修复问题描述为一个变分问题,提出了基于图像灰度和梯度方向的联合插值扩散。Tschumperlé 等[3]提出了一个通用的各向异性扩散方程,获得了较好的修复效果。然而,由于边界扩散预测的局限性,通常会引入扩散相关的模糊,因此,基于扩散的方法无法修复大的缺失区域。

基于补丁的方法 基于补丁的图像修复方法的核心思想是计算出补丁级别的相似性,以将补丁外观信息从背景区域传播到缺失区域。Barnes 等[4]提出了一种随机最近邻补丁匹配算法,该算法的补丁匹配时间少,在图像编辑软件工具中得到广泛应用。Huang 等[5]提出了一种基于增强补丁匹配的自动补全算法,通过定义补丁偏移和转换的先验概率完成自动补全。Ding 等[6]首先通过非局部纹理的相似性度量来选择多个候选补丁,然后应用α-均值滤波器计算每个候选补丁像素强度,最后对缺失区域逐像素修复。基于补丁的方法主要依赖于低级图像信息计算相似性,对于较大的缺失区域无法生成语义正确的结果。

1.2 基于深度学习技术的修复方法

随着深度学习技术的发展和广泛被用于图像处理中,近年来,越来越多基于深度学习技术的图像修复网络模型被提出。根据所采用的修复阶段的不同,可以将这些图像修复网络模型分为单阶段、两阶段和渐进式修复三类网络模型。

单阶段修复方法 单阶段修复网络由一个生成器构成,包括一个编码器和一个解码器。Pathak 等[7]首次设计了一种基于编码器-解码器结构的深度神经网络模型用于图像修复,通过组合像素级的重建损失和对抗损失[8]训练模型,取得了较好的效果。自此,基于深度学习技术的图像修复方法得到了广泛的关注。Lizuka 等[9]在单个生成器的基础上引入全局和局部上下文鉴别器训练全卷积补全网络,提高了图像补全的一致性。Liu 等[10]设计了一个部分卷积运算,该卷积运算能实现掩模逐步更新,从而能更好地填充不规则的孔洞,提升图像修复性能。Xie 等[11]改进了Liu 等[10]的部分卷积,引入可学习的双向注意映射。Zeng 等[12]部分改进了生成器的编码器,提出了金字塔-上下文编码器网络,利用注意机制填补缺失的区域,通过注意转移来完成图像补全。Liu 等[13]尝试同时恢复图像待修补区域的结构和纹理,通过特征均衡融合纹理特征(来自编码器浅层)和结构特征(来自编码器深层)。为了能够更好地修复单个目标对象,Liao 等[14]利用语义分割图来指导混合场景的修复过程,但该方法需要在训练阶段输入额外的语义分割信息。Zhang 等[15]提出了一种基于像素的密集检测器定位修复区域的位置,并将该位置信息插入到重建损失中,使生成器注意到修复区域进一步增强修复结果,以更好地训练修复网络。Wang 等[16]通过有效性可迁移卷积和区域复合归一化模块,使模型更好地利用插值过程中的有效像素。Zhu 等[17]也从动态概念出发,为图像修复提出了一种掩模感知卷积和逐点归一化。基于单阶段的图像修复方法由于缺乏足够的约束,它的修复结果可能会受到影响,如结果中会出现平滑的纹理和不正确的语义等情况。

两阶段的图像修复方法 所谓两阶段的图像修复方法指采用的网络模型包括两个生成器,前一个完成粗修复,后一个完成更准确的修复。Yu 等[18]提出了两阶段的生成式修复网络框架,该框架由粗化网络和细化网络组成。在细化网络中,引入上下文注意模拟相关性,并应用于大面积缺失区域的修复,取得了较好的结果。受文献[10]的启发,Yu 等[19]采用门控卷积和基于补丁的生成对抗网络鉴别器改进他们之前的工作[20],提高了对非规则缺失区域图像的修复效果。Nazeri 等[21]提出了一种边缘引导的两阶段图像修复方法,首先恢复缺失区域的边缘图,随后将该边缘图与缺失图像相结合作为第二阶段的输入,提升缺失图像的最后修复效果。Ren 等[22]采用边缘平滑处理的图像作为结构表示,然后将结构重建和纹理生成相结合完成修复任务。与通常由两个生成器构成不同,Wu等[23]提出的两阶段网络模型由一个局部二进制模式的学习网络和一个生成式修复网络构成。在两阶段的修复网络中,第一阶段更关注全局的修复,第二阶段则细调第一阶段修复结果,更关注局部的修复,实现渐进式的修复,使图像修复结果与真实图像具有更好的视觉一致性。

渐进式的图像修复方法 渐进式的图像修复模型由多个生成器构成,前一个的修复结果送到下一个生成器继续修复。Zhang 等[20]将图像修复过程分为4 个不同的阶段,并使用LSTM(Long Short-Term Memory)架构[26]控制渐进过程的信息流;然而对不规则缺失区域修复效果不好。为克服这一不足,Guo 等[27]提出了具有多个膨胀模块的全分辨率残差网络;Li 等[28]提出了一个渐进式的视觉结构重建网络,逐步重建图像结构和相关的视觉特征,以完成图像修复;Li 等[29]提出在特征空间中遵循递归框架,设计了递归特征推理网络逐步完成图像修复;Zeng 等[30]提出一种基于置信度的迭代插值方法,文献[30]网络类似于文献[18],不同的是,用第二个生成器的输出修复图像和置信图,置信图引导每次迭代时只保留缺失区域的高置信度像素,并在下一次迭代中关注缺失区域剩余像素,以逐步完成图像修复。渐进式修复网络整体修复效果较好,但是由于包括多次迭代,前一个生成器的输出用于指导下一次迭代,因此计算成本高,对设备要求高。

2 Gconv_CS模型

2.1 整体网络结构

本文提出的融合SAM 和CSFF 模块的图像修复网络(Gconv_CS)是在文献[19]的网络模型(Gconv)结构上改进得到。如图1 所示,整个网络结构属于两阶段网络,由粗网络和细网络构成,粗网络和细网络都是简单的编码器-解码器结构,采用门控卷积进行卷积操作。Gconv_CS 的粗网络的输入是真实图像Igt和二值掩模图像M(非缺失像素为0,缺失像素为1),缺损图像Iin=Igt⊙(1 -M),Iin先通过第一阶段的粗网络进行修复,得到第一阶段的修复结果。将第一阶段的修复结果送入SAM 模块学习注意引导特征,再送入细网络,微调第一阶段的修复结果。同时使用CSFF 机制,将第一阶段的编码器-解码器的特征信息融合到第二阶段的编码器中,补全在第一阶段修复过程损失的信息。第二阶段的细网络由两个编码器、一个解码器构成,其中一个编码器添加了上下文注意力模块,另一个编码器与粗网络的编码器采用相同的空洞门控卷积,将两个编码器的结果拼接后送入解码器中,最后将解码器输出的最终修复结果和二值掩模图像拼接后送入谱归一化马尔可夫鉴别器(Spectral-Normalized Markovian Discriminator)[19]中鉴别。

图1 Gconv_CS的网络结构Fig.1 Network structure of Gconv_CS

表1~5 展示了详细的网络结构参数,其中k表示卷积核大小,s表示步长,p表示填充,d表示空洞率,GConv 表示门控卷积,↓表示下采样,D-GConv 表示空洞门控卷积,T-GConv表示转置门控卷积,SAM 表示监督注意力模块,Contextual Attention[18]表示上下文注意力模块,Conv 表示卷积。

表1 粗网络中编解码器参数Tab.1 Parameters of encoder-decoder in coarse network

表2 细网络中编码分支结构参数Tab.2 Parameters of encoding branch structure in fine network

表3 细网络中上下文注意力编码分支结构参数Tab.3 Parameters of contextual attention encoding branch structure in fine network

表4 细网络中解码器参数Tab.4 Parameters of decoder in fine network

表5 鉴别器参数Tab.5 Parameters of discriminator

2.2 监督注意力模块

通常上阶段的修复结果直接传递到下一阶段,但是传给下阶段的特征信息不一定对修复都有用,因此为了尽可能地传递有用特征信息,在第一阶段和第二阶段之间引入一个SAM模块,在网络的训练阶段提供真实图像的监督,用于过滤无用特征信息,训练出更好的网络模型。SAM 有2个作用:1)在网络训练阶段提供真实图像监督信号,有助于在下阶段恢复图像;2)生成的注意特征力图能抑制信息较少的特征传入下一阶段,只允许有用的特征传播到下一阶段。SAM 的网络结构如图2 所示,SAM 输入上阶段的修复图像特征Fin∈RH×W×C,其中H×W为空间维数,C为通道数(C=48),通过1×1 卷积生成图像与真实图像计算L1 损失得到残差图像Rs∈RH×W×C,真实图像能够提供监督,优化修复过程。接下来,由图像Rs使用1×1 卷积和sigmoid 激活生成像素级注意力特征图Ma∈RH×W×C。使用1×1 卷积对输入特征Fin进行卷积操作后再与注意特征图逐元素相乘。注意特征图起到控制输入到下阶段特征信息的作用,抑制信息较少的特征传递,以实现对特征的重新校准。然后,将校准后的特征与输入特征相加作为SAM的输出,传递到下一阶段进行修复。

图2 SAM的网络结构Fig.2 Network structure of SAM

2.3 跨阶段特征融合机制

在两个编码器-解码器之间引入了CSFF 机制。CSFF 的网络结构如图3 所示,CSFF 将上阶段的编码器和解码器中相同大小的特征图分别经过1×1 卷积后融合成一个相同大小的特征图,然后再与下阶段的两个编码器中相同大小的特征图分别进行融合。CSFF 有两点作用:1)减少编码器-解码器中重复上下采样造成的信息损失影响;2)上阶段的多尺度特征能丰富下阶段的特征,保留更多的图像细节特征。

图3 CSFF的网络结构Fig.3 Network structure of CSFF

2.4 损失函数

为了更好地修复图像,本文使用像素级重构损失、感知损失和生成对抗损失训练网络。

在实验中,将真实图像表示为Igt,对应的二进制掩模表示为M(已知像素为0,缺失像素为1),Gi为第i阶段的生成器,因此,第i阶段图像修复结果表示如式(1)所示:

其中⊙表示像素级乘法。

像素级重构损失,包含第一阶段和第二阶段的像素级重构损失,它的定义如式(2)所示:

其中i表示第几阶段。

感知损失对图像修复的有效性已得到广泛验证,我们将它包括在内,以提高感知重建的准确性。定义如式(3)所示:

其中:ϕi为修复网络的第i层特征映射,Ni为ϕi中元素数。

对抗损失在图像修复领域应用广泛,用来提升图像修复的视觉质量。为了稳定GAN(Generative Adversarial Network)的训练,使用谱归一化马尔可夫鉴别器。定义如式(4)所示:

其中:Dsn为鉴别器,G为缺失图像z的修复网络,x是真实图像。

最后,修复网络的总损失函数如式(5)所示:

其中:λrec、λper、λadv为权重参数,将参数设置为λrec=100,λper=10,λadv=1。

3 实验与结果分析

3.1 数据集和评价指标

本文的实验数据集包括两个公共数据集和一个自制大熊猫面部数据集。CelebA-HQ 数据集[31]包含30 000 张人脸图像,随机选择28 000张作为训练集,其余2 000张作为测试集。Places2数据集[32]是大规模场景识别数据集,选择其中10个类别,每个类别随机选择3 000 张图像,共计30 000 张图像构成本文修复图像数据集。每个类别选2 980张,共计28 000张图像作为训练集,其余2 000张图像作为测试集。自建的大熊猫面部数据集包含30 000 张大熊猫面部图像,随机选择28 000张图像作为训练集,其余2 000张图像作为测试集。

为了定量评价图像修复性能,采用几个常见的评价指标:L1 损失、峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)、结构相似性(Structural SIMilarity,SSIM)指数和Fréchet 起始距离(Frechet Inception Distance,FID)值。L1 损失是计算修复图像和真实图像之间的平均绝对值误差,以评估每个像素的修复精度,L1 损失越小,图像修复精度越高;PSNR 是常用的衡量信号失真的指标,PSNR 值越高,图像质量越高;SSIM指数从亮度、对比度和结构等方面将修复结果与真实图像进行比较,SSIM 值越高,与真实图像越相似;FID 值从真实图像的计算机视觉特征统计方面,衡量两组图像的相似度,是计算真实图像和修复图像的特征向量之间距离的一种度量,FID 值越小,修复图像越逼真。前3 个指标基于低级像素值,而后一个指标与高级视觉感知相关。

3.2 实验设置

本文模型是端对端的训练,基于PyTorch 框架实现,所有实验在3 个NVIDIA Tesla T4 GPU 上进行。训练时采用动量衰减指数β1=0.5,β2=0.999 的Adam 优化器更新网络参数。网络初始化学习率为0.000 2,40 个epoch 迭代训练网络。每一轮训练迭代过程,随机选取8 张512×512 的图像输入网络。

3.3 消融实验

为了验证修改部分对模型的有效性,在公开数据集CelebA-HQ 上做消融实验。实验结果如表6 所示,基线模型为文献[19]的Gconv 网络模型,以Gconv 为基础分别添加CSFF 模块和SAM,最后同时添加两个模块,对比测试它们的图像修复性能。添加CSFF 对PSNR 和SSIM 分别提升了20.3%、0.04%,FID 和L1 损失分别降低了9.4%、1.4%;添加SAM 对PSNR 和SSIM 分别提升了22.0%、0.06%,FID 和L1损失分别降低了10.01%、1.5%;同时添加两个模块对PSNR、SSIM、FID 和L1 损失等指标结果都有改善,PRNR 和SSIM 分别提升了56.3%、0.51%,FID 和L1 损失分别降低了19.2%、4.2%。实验结果说明Gconv_CS 网络结构中添加的两个模块是有效的,能提高图像修复性能。

表6 消融实验结果对比Tab.6 Ablation experiment result comparison

3.4 对比实验

将CA(Contextual Attention)[18]、PEN(Pyramid-context Encoder Network)[12]、PConv[10]、Gconv[19]和本文的Gconv_CS模型做对比实验,对以上模型的图像修复结果进行定性定量分析比较。其中:CA 是一个由粗到细的两阶段模型,它引入上下文注意模块,有助于在有效像素之间建立远距离相关性;PEN 的主干网络是U-Net,通过跨层的非局部模块从深到浅填充缺失区域;PConv 采用部分卷积层处理孔内外颜色差异的问题;Gconv 是一个两阶段模型,结合了门控卷积和马尔可夫鉴别器用于图像修复。

分别对CelebA-HQ 和Places2 两个公开数据集进行修复对比,其中对比了5 种修复算法对512×512 大小图像的修复,图像缺失区域采用Liu 等[10]提出的非规则缺失区域的掩模数据集。修复指标定量对比实验结果如表7、8所示,其中Masks表示缺失区域占比。

表7 在CelebA-HQ数据集上的定量实验结果比较Tab.7 Quantitative experiment result comparison on CelebA-HQ dataset

表8 在Places2数据集上的定量实验结果比较Tab.8 Quantitative experiment result comparison on Places2 dataset

从表中结果可以看出,Gconv_CS 模型在所有修复模型中具有最佳性能:在缺失区域面积较小的时候,5 种修复模型的结果差别不大;但是修复缺失区域面积较大时,CA、PEN 和PConv 这三种修复网络的修复结果较差,Gconv 和Gconv_CS相对较好。再对比Gconv 和Gconv_CS 发现,Gconv_CS 优于Gconv,如在修复Masks 大小为1%~10%时,在CelebA-HQ 数据集上,相比Gconv 网络模型,Gconv_CS 模型的PSNR 与SSIM指标上分别提升了1.5%、0.5%,FID 与L1 损失上分别减少了21.8%、14.8%;同样地,在Places2 数据集上,Gconv_CS 模型的PSNR、SSIM 分别提升了26.7%、0.8%,FID 与L1 损失分别减少了7.9%与37.9%。

图4 显示了5 种修复模型的视觉效果。

图4 五种图像修复模型的视觉比较Fig.4 Visual comparison of five image inpainting models

如图4 可见,比较面部修复结果,Gconv_CS 可以更好地修复面部特征。CA、PEN 和PConv 能大致修复面积较小的缺失区域,但它们修复结果会存在大量的伪影,面部五官的修复结果不真实,难以辨别;对大面积缺失区域的修复结果的视觉质量相对较差,易产生扭曲的结构,模糊的纹理。Gconv修复效果较好,但对于大面积缺失区域的修复结果也会出现模糊、伪影等现象,难生成复杂结构性纹理,如:背景修复出现伪影(图4(f)中,第3~7 行白色圈标注的区域);对嘴唇、牙齿的修复结果不自然(图4(f)中第5、6 行);对眼睛等复杂结构的修复结果模糊,眼球颜色不统一(图4(f)中第2、6、8行)。Gconv_CS 模型能更好地修复图像,对背景修复更自然,对眼睛、牙齿等复杂结构的修复更加美观,与真实图像最接近。

4 实例应用

在对动物进行摄像拍照时,由于动物身处周边环境的复杂性,拍摄的动物图像难免会被周围的遮挡物遮挡,不能拍摄到完整的动物图像,如在拍摄大熊猫面部时,大熊猫面部图像往往被障碍物遮挡,不能拍摄到完整的大熊猫面部图像。去除大熊猫面部图像上的遮挡区域有以下意义:1)拍摄者能够更方便地获得完整的大熊猫面部图像,不必找时机在没有遮挡物时再拍摄;2)为基于大熊猫面部图像的大熊猫个体识别提供没有遮挡物的面部图像,提高面部图像识别的准确率。特别对于野生大熊猫,由于野生环境复杂,不仅很难拍摄到野生大熊猫的图像,而且即使拍摄到,大多有遮挡物。因此,为了得到完整的大熊猫图像,需要采用图像修复方法去除遮挡物。如图5 所示,4 张大熊猫面部图像都有竹子或者竹叶的遮挡,采用Gconv_CS 网络模型去除这些遮挡,恢复完整的大熊猫面部图像。从修复图像可以看出,Gconv_CS网络模型能成功修复遮挡区域,恢复完整的大熊猫面部图像,获得较好的视觉结果。

图5 大熊猫面部去遮挡展示Fig.5 Display of giant panda face de-masking

5 结语

通过在Gconv 网络模型中添加CSFF 和SAM 两个模块进行改进,实验结果表明这两个模块有效改进了Gconv 的图像修复性能。主要原因是:CSFF 模块通过跨阶段特征融合机制将上阶段的编码器和解码器特征进行融合,同时获取上阶段低级和高级特征,再将融合后的特征与下阶段两个编码器对应大小特征进行融合,弥补上阶段信息顺序传递过程中的丢失的信息;SAM 通过将上阶段修复区域的修复情况作为控制信息,起到过滤特性信息的作用,使得下阶段修复时网络模型更加注意上阶段修复不理想的区域,优化下阶段修复结果。后续研究将把Gconv_CS 网络模型用于野生动物图像的遮挡修复,特别是应用于修复大熊猫遮挡区域,提升对野生动物的目标检测和个体识别性能。

猜你喜欢

编码器像素卷积
赵运哲作品
像素前线之“幻影”2000
基于3D-Winograd的快速卷积算法设计及FPGA实现
“像素”仙人掌
从滤波器理解卷积
基于FPGA的同步机轴角编码器
基于傅里叶域卷积表示的目标跟踪算法
基于PRBS检测的8B/IOB编码器设计
高像素不是全部
JESD204B接口协议中的8B10B编码器设计