基于推理注意力机制的二阶段网络图像修复*

2022-12-07 03:29谭骏珊李雅芳秦姣华
电讯技术 2022年11期
关键词:鉴别器边缘注意力

谭骏珊,李雅芳,秦姣华

(中南林业科技大学 计算机与信息工程学院,长沙 410004)

0 引 言

图像修复最根本的目的是实现对图像中损坏区域的修复,其核心挑战在于利用缺失区域周围的像素合成视觉逼真、语义合理的结构。早期研究[1-2]通过解决纹理合成的问题,在一幅图像内进行块匹配[3],寻找与缺失区域内容相似的区域并进行填充,这些方法通常使用输入图像[4]内的数据信息,或使用来自大型图像数据集[5]的数据信息,因此无法在缺失区域中恢复有意义的结构或计算量过大[6],且无法适用于大面积区域缺失的图像中[7],在此背景下深度卷积神经网络(Convolutional Neural Network,CNN)和生成对抗网络(Generation Adversarial Network,GAN)[8]得到了快速发展。最早出现的方法是上下文编码器[9],但由于全连接层中的信息瓶颈,使得输出图像存在视觉伪影。为了解决这个问题,Liu等人[10]提出部分卷积,使用自动更新的二进制掩模(即用选定的形状对图像进行遮挡)来确定当前像素是否有效。为获得逼真的视觉效果,Yeh等人[11]采用反向传播进行1 500次迭代,但反向传播使得计算的过程很缓慢。为节省计算时间并增强辅助信息的作用,Nazeri等人[12]提出一种新的学习模型,证明了边缘信息在修复中具有重要的作用。

注意力机制的使用使得背景区域的特征得到了很好的使用。上下文注意力[13]可以通过细化网络提高清晰度,但文本注意力使用固定大小的补丁,使得任意形状的缺失区域得不到很好的处理。为了提高补丁交换时的精确度,Wang等人[14]设计了一个多尺度注意模块,使用多种补丁对注意分数分别进行计算。这些方法往往都没有考虑到像素之间的连续性,从而导致色彩的断层或者线条的断层。因此,Liu等人[15]设计了一个连贯的语义注意层来表示交换特征之间的相似性和相关性;Xie等人[16]设计了双向注意力机制,进一步提高修复的图像质量,并且该方法能够适应不规则的孔洞修复;Li等人[17]提出递归特征推理模块,考虑不同或者重复特征之间的关系,保证补丁交换过程中的一致性,使得结果更完美。

尽管上述方法在图像修复方面取得了优秀的性能,但仍然存在以下问题:对于大面积缺失区域的图像而言,很多图像修复方法并不能保证修复结果在视觉上做到一致性和连续性,并且对于高度纹理化的区域也不能精确修复。因此,针对这些问题,本文提出了一种基于推理注意力机制的二阶段网络图像修复方法,首先由边缘生成网络对损坏图像预测缺失区域边缘并融合已有背景边缘生成完整边缘,之后将该边缘信息和损坏的图像同时输入到第二阶段的图像补全网络中进行最终的修复任务。为了对大面积损坏区域的图像生成更逼真的效果,在图像补全阶段引入推理注意力模块,确保修复结果中产生较少的色彩断层或者线条断层,确保生成的修复图像在边缘、纹理结构上达到高度逼真的视觉效果。

1 相关工作

1.1 生成对抗网络

生成对抗网络一般由生成器和鉴别器组成,其中生成器学习训练集的特征,并在鉴别器的引导下生成与训练集相似的特征,而鉴别器则区分输入的数据是真实的还是生成的数据,并将结果反馈给生成器。

生成器和鉴别器交替训练,直到生成的数据在鉴别器中可以被认定为真数据。GAN在训练时将训练集数据和生成的数据一起送入鉴别器中进行训练,在计算损失时让鉴别器对训练集数据的判别趋于真,对生成数据的判别趋于假,此过程中只更新鉴别器不更新生成器的参数。之后在生成器中加入噪声进行干扰,并将生成的数据标记为真送入鉴别器中,在计算损失时让鉴别器对生成数据的判别趋于真,此过程只更新生成器参数。

1.2 二阶段网络图像修复模型

现阶段的多数图像修复网络都是基于二阶段网络,其网络模型由生成对抗网络组成。将损坏的图像作为第一阶段的输入,经过生成器首先得到粗略的生成,同时将生成的数据输入到鉴别器中进行判别,并将结果返回到生成器中,再将该粗略结果输入到第二阶段中以生成更精确的结果。粗网络使用重建损失进行训练,而细网络则使用GAN损失对图像进行重建,如图1所示。

图1 二阶段网络结构图

针对不同的修复场景,也可以使用卷积神经网络或U-Net等网络模型替换生成对抗网络。

1.3 注意力机制

注意力机制与人的注意机制类似,即在某一时刻主要关注某些数据而忽略其他数据,合理分配关注度,减少计算量的同时也节约了成本。随着深度学习领域的快速发展,注意力机制也得到了广泛的应用,在图像处理、自然语言处理及语音识别方向都取得了不错的效果。

卷积神经网络逐层处理时具有局部卷积的图像特征,而使得借用的较远空间位置的特征无效。为了克服这种局限性,Yu等人[13]提出使用上下文注意力机制。该注意力机制可以从已知的背景区域中借用或者复制特征信息的位置,以生成缺失的信息。但是这种从远处空间借用信息的方法会增加很多计算的成本,并且不能保证借用的特征是完全有效的,因此对于大面积区域缺失的图像而言其效果并不是特别明显。为了解决这个问题,同时考虑不同或者重复特征之间的关系,本文引入了推理注意力机制,以解决像素之间的不连续产生的色彩断层问题,期望在大面积区域缺失的情况下得到更好的修复效果。

2 基于推理注意力机制的二阶段网络图像修复模型

为了获得更好的修复效果,本文提出的修复模型以端到端的方式进行训练。该模型由两阶段组成:第一阶段结合掩模信息和灰度图生成完整的幻觉边缘;第二阶段使用该幻觉边缘作为辅助信息对图像进行重建。每阶段均由生成器和鉴别器组成。令G1、D1和G2、D2分别为两阶段的生成器和判别器。生成器的前端为编码器结构,对图像进行两次下采样,经过8个残差块后输入到解码器中进行上采样回到原始大小。为了生成更有效的信息,使用扩张因子为2的扩张卷积代替残差块中的规则卷积。而网络鉴别器则使用70×70的PatchGAN体系结构[18],该结构确定大小为70×70的重叠图像块是否真实。

为了在最终的修复结果中不让色彩断层或线条断层问题而产生视觉上的偏差,在第二阶段引入推理注意力机制,提高修复图像的质量。模型结构图如图2所示。

图2 基于推理注意力机制的图像修复模型图

2.1 二阶段修复网络

2.1.1 边缘生成网络

使用Igt表示未被损坏的真值图像,其对应的边缘图和灰度图分别用Cgt和Igr表示。M作为图像掩模,缺失区域标记为1,否则标记为0。

(1)

将Cgt和Cp作为鉴别器的输入,以预测生成的边缘是否真实,并联合特征匹配损失和对抗损失对网络进行训练。

对抗损失定义为

Ladv,1=E[lnD1(Cgt,Igr)]+E{ln[1-D1(Cp,Igr)]}。

(2)

式中:E(·)表示求均方误差;D1表示鉴别器的激活。

特征匹配损失定义为

(3)

因此,该阶段的总体损失函数定义为

(4)

式中:λadv,1和λFM为正则化参数。

2.1.2 图像补全网络

在边缘生成阶段生成缺失区域的预测边缘Cp后,将其与背景区域的边缘如进行融合生成完整的边缘图Cc,表示为

Cc=Cgt⊙(1-M)+Cp⊙M。

(5)

(6)

式中:G2表示生成器的激活。

在该阶段中,联合l1联合相对损失、对抗损失、感知损失和风格损失函数函数进行训练。分析如下:

l1相对损失定义为

Ll1=λholeLhole+λvalidLvalid。

(7)

式中:Lhole和Lvalid分别计算了未损坏区域和损坏区域上的l1损失的差值;λhole和λvalid为正则化参数。

对抗损失的定义同公式(2)一致,但由于该对抗损失位于第二阶段的图像补全网络中,因此表示方式如下:

Ladv,2=E[lnD2(Igt,Cc)]+E{ln[1-D2(Ip,Cc)]} 。

(8)

式中:D2表示鉴别器的激活。

感知损失通过定义预训练网络的各激活图之间的距离度量来惩罚与标签在感知上不相似的结果,因此感知损失定义为

(9)

式中:φi为预训练网络第i层的激活图,这些激活图还用于计算风格损失。因此风格损失函数定义为

(10)

因此,第二阶段整体的联合损失函数表示为

LG2=λl1Ll1+λadv,2Ladv,2+λpLperc+λsLstyle。

(11)

式中:λl1、λadv,2、λp、λs均为正则化参数。

2.2 推理注意力机制

在填充图像中的缺失区域的内容时,图像的未知区域即损坏区域被已知区域的内容包围,在特征合成阶段会产生限制,使得修复图像的内容由相连的像素围成,而不是被相关的像素直接包围,因此如何使用背景区域的有效信息就成了亟待解决的问题。为了更合理地利用背景区域中的纹理信息,在很多情况下都会考虑使用注意力机制模块进行辅助。但现有的注意力模块存在的一个问题就是,在不同的递归过程中,重复特征在合并时会产生不可控制的差异。为了解决这个问题,本方案在图像补全阶段中引入推理注意力模块[17],注意力模块如图3所示。

图3 推理注意力模块

为了说明推理注意力机制的工作方式,在第i次递归循环中进行定义解释。

首先,在第i次递归循环中使用归一化内积(余弦相似度)进行相似度计算测量:

(12)

式中:cosi(A,B)表示在第i次迭代循环中前景位置A(x1,y1)和背景位置B(x2,y2)之间的相似性。

之后对相似性进行平均,再沿着(x,y)的位置使用softmax生成注意力分数,并将该分数记为score。为了计算最终的注意力分数,给定计算方式为:给定一对有效像素A(x1,y1)和B(x2,y2),在第i次迭代中的最终注意力分数为当前迭代注意力分数与上一次迭代分数的比例累积之和,整体表示为

scorei(A,B)=αscorei′(A,B)+(1-α)scorei-1(A,B)。

(13)

式中:scorei(A,B)表示在当前第i次迭代中计算的最终注意力数;scorei′(A,B)为当前第i次迭代中计算的注意力数;scorei-1(A,B)为上一轮第i次迭代中计算的注意力分数;α为正则化参数。

但如果给定像素表示为无效像素,即当前score=0,那么不会对该像素进行计算,即当前迭代中的最终注意力分数即为上一次迭代的注意力分数,表示为

scorei(A,B)=αscorei′(A,B) 。

(14)

最后利用生成的注意力分数对特征进行重建工作,对前景位置A(x1,y1)处计算的新特征表示为

Fi(A)=∑x′∈1,2,…,W,y′∈1,2,…,Hscorei(A,B)Fi(B)。

(15)

式中:Fi(A)表示重建的新特征;Fi(B)表示背景位置B(x2,y2)的特征;H和W分别表示图像的高度和宽度。

3 实验与结果分析

3.1 数据集与实验设置

本文使用三个常用图像修复公共数据集和两种类型的图像掩模数据集对模型进行验证。

CelebA数据集[19]:包含10 177个名人身份的202 599张图片,在此数据集上对模型进行训练可以完成面孔的编辑任务。

Places2数据集[20]:由MIT(Massachusetts Institute of Technology)发布的数据集,包含超过1 000万张图片和400多个不同类型的场景环境。

ParisStreetView数据集[21]:这个数据集主要集中在城市建筑,包含14 900张训练图像和100张测试图像。

两种类型的图像掩模数据集:规则掩模和不规则掩模。规则掩模为固定大小的方形掩模,中心位于图像的随机位置。不规则掩模则使用刘等人[10]的工作。

本文提出的网络基于公共的pytorch框架实现,训练和测试系统均采用Intel(R) Core(TM) i7-3750H CPU @ 2.30 GHz,8.00 GB RAM和Nvidia GeForce GTX 1050 GPU。该网络使用256×256图像进行训练,使用Adam优化器[22]对模型进行优化。两阶段生成器以学习率为10-4进行训练,当损失趋向平稳时将学习率降到10-5,直至生成器收敛,最后以学习率为10-6对生成器进行微调。测试时,只需要加载训练的模型对图像进行测试。

3.2 实验分析

图像修复质量好坏的评价标准是多方面的,为了充分评估图像修复方法的效果,本小节将本文中的模型与其他几种模型分别进行了定性和定量的比较,同时根据掩模大小对修复的影响进行了分析,从各实验结果对比来看,该方法在图像修复上表现出了良好的效果。

3.2.1 定性比较

图4~6分别是CA[13]、EC[12]、RFR[17]、DeepFill[23]以及本文提出的方法分别在Places2、CelebA和ParisStreetView数据集上的修复结果展示。在大多数情况下,本文提出的方法细节修复效果更好。例如,图4中各方法在修复结果上均会产生不同程度的伪影结构,但相较于其他方案,本文方案修复的结果中其连续性更好。在图5中的人脸修复效果中,可以看出方法CA[13]产生的结果其修复区域与周围区域的连续性较差,面部结构不会出现在正确的位置;方法EC[12]和DeepFill[23]在修复结果中会产生不同程度的扭曲结果,而RFR[17]通常存在的问题是过度平滑使得结果模糊。本文指出修复方法能够良好地补充纹理信息和结构信息,对于大部分大区域破损的图像具有较好的修复效果。但是从结果中可以观察到,部分修复结果还会存在伪影结构。

图4 不同方法在Places2数据集的修复效果展示

图5 不同方法在CelebA数据集的修复效果展示

图6 不同方法在Paris StreetView数据集的修复效果展示

3.2.2 定量比较

使用l1相对损失、结构相似性(Structural Similarity,SSIM)指数、峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)、弗雷谢特起始距离(Frechet Inception Distance,FID)进行定量比较。表1~3分别列出了三个数据集在不规则掩模的不同比例下的各指标对比结果,*表示指标数值越低效果越好,+表示指标数值越高效果越好。由表1~3的数据可知,本文提出的方法在Places2、CelebA和Paris StreetView数据集中均具有较好的优势。

对比表1的实验结果,在Places2数据集进行测试,当掩模大小为20%~30%时本文提出的方法中SSIM的值达到0.889,相较于方法EC来说提高了3%左右,而对于指标PSNR来说,本文提出的方法达到了25.56 dB,相较于方法EC来说提升了1.3 dB左右。对于l1相对损失,在掩模大小为40%~50%时,相较于方法EC[17]而言,本文方法降低了1%左右。

表1 不同方法在Places2数据集的修复性能比较

表2 不同方法在CelebA数据集的修复性能比较

表3 不同方法在Paris StreetView数据集的修复性能比较

同时,本文也采用双向强迫选择(2 Alternative Forced Choice,2AFC)和最小可觉差(Just Noticeable Differences,JND)两个评价指标在Places2数据集上对模型进行评估。2AFC指标指每个样本包含3张图片或1张原图和2张不同失真的图片,在这之间判断哪一张图片和原图更接近。JND指标则要求从成对的真实和生成图像中选择改变最小的图像。每类掩模和测试图像各选择400张,每个图像总共显示15次,最终结果记录在表4中。从表中信息可知,在掩模大小为20%~30%时本文方法的JND达到42.78%,相较于方法EC来说指标提高约为5%,而2AFC的结果达到82.65%,相较于方法EC来说指标提高约为4%。

表4 不同方法在Places2上的修复性能比较

3.2.3 破损区域大小对修复的影响

如图7所示,本文在同一张图片中逐渐增加破损区域的面积,以研究破损区域大小对修复效果的影响,对比的方法为CA[13]。第1~5行中,缺失区域占比范围依次为[0,10%]、[10%,20%]、[20%,30%]、[30%,40%]、[40%,50%]。由结果可以看出,在方法CA[13]中,随着有效区域面积的减少,该方法从有效区域中获得的有用信息也逐渐减少,生成的图像中包含的伪影信息更多,而本文中的模型性能效果更好,生成的视觉伪影更少。

图7 破损区域大小对修复效果的影响

为了说明推理注意力机制模块对图像修复的有效性,在Places2数据集上进行了实验。以EC为基本的模型,分析了在网络补全阶段加入文本注意力机制和推理注意力机制时不同注意力机制加入对图像修复性能的影响。表5给出了在网络补全阶段测试加入不同的注意力机制时各模型性能的比较,*表示指标数值越低效果越好,+表示指标数值越高效果越好。

表5 加入不同注意力机制的方法在Places2数据集上的修复性能比较

本文也将推理注意力模块加入到边缘生成网络中,并将加入和未加入推理注意力模块的生成边缘以及两种情况下的修复结果进行对比,实验结果如图8所示。该实验中的整体网络模型为本文中引用的二阶段图像修复网络模型。根据对比实验的结果可以发现,加入推理注意力模块的边缘生成网络在细节位置能够生成更准确的边缘,并且去掉无用的边缘信息。

图8 推理注意力模块对生成边缘的影响

4 结束语

本文提出了一种基于推理注意力机制的二阶段网络图像修复方法,首先由边缘生成网络对残缺图像生成完整的幻觉边缘,再利用生成的边缘信息辅助图像的重建工作。为了解决像素的不连续性而产生的线条断层或者色彩断层问题,在图像补全阶段引入推理注意力机制模块,进而控制合成特征的不一致性,保证在递归中信息交换的统一,约束孔中心并加强像素之间的相关性。分别在CelebA、Places2和Paris StreetView三个数据集上进行了实验,由实验结果可以看出,在同一掩模尺寸的大小下,本文提出的方法具有较优的修复性能;同时也可以看出,当掩模尺寸逐渐增大时图像的修复性能会随之降低。这是因为当残缺区域增大时,背景区域可用的信息会随之减少,从而对孔中心像素相关性的约束也会随之降低。

通过实验发现,在处理相邻像素时,当缺失区域增大时容易得到不连续点,并且会生成较多的冗余边缘信息,从而产生修复结果视觉上的偏差,因此未来的工作时是改进边缘生成算法,为图像修复任务提供更可靠的辅助信息。

猜你喜欢
鉴别器边缘注意力
基于多鉴别器生成对抗网络的时间序列生成模型
基于双鉴别器生成对抗网络的单目深度估计方法
让注意力“飞”回来
“扬眼”APP:让注意力“变现”
一张图看懂边缘计算
A Beautiful Way Of Looking At Things
北斗系统信号NH码处理方法研究
一种新的BOC调制无模糊跟踪鉴别器设计
在边缘寻找自我
走在边缘