王晓华,侯佳辉,张凯兵,程 敬,苏泽斌
(西安工程大学 电子信息学院,陕西 西安 710048)
在摄像机捕获图像的过程中,由于相机或拍摄对象的运动,经常会导致捕获的图像出现运动模糊。受损图像的模糊边缘和扭曲的纹理细节不利于自动驾驶[1-3]、目标检测[4-6]和语义分割[7-9]等特定的计算机视觉任务的实现。因此,研究单图像盲运动去模糊技术来提升所获图像的视觉质量,已成为计算机视觉领域中非常关键的任务之一。
早期的基于深度学习的盲运动图像去模糊方法通常包括2步,即首先使用卷积神经网络估计运动模糊图像的模糊核,然后再使用非盲去卷积的方法恢复清晰图像[10-11]。然而这种方法难以准确地估计出适应自然场景的模糊核,而且估计模糊核与非盲去卷积是2个相互独立的步骤,因此难以获得令人满意的去模糊效果。近年来,随着深度学习的发展[12-13],人们主要关注于研究端到端的盲运动图像去模糊方法。该方法直接建立模糊图像与清晰图像之间端到端的非线性映射,无需明确估计模糊核,因而受到广大研究者的青睐。例如,文献[14-15]通过引入生成对抗网络(generative adversarial networks, GANs),先后提出DeBlurGAN和DeBlurGANv2两种深度网络模型,借用GANs的生成能力恢复高质量的清晰图像。为使深度神经网络适应复杂场景的运动模糊,文献[16]提出利用多尺度卷积神经网络和多尺度损失函数的盲运动图像去模糊方法,该方法以多阶段渐进的方式实现盲运动去模糊,在定性评估和定量评估2个方面均表现较好的性能。随后,文献[17]提出了基于图像金字塔的尺度递归网络,其由3个子网络组成,每个子网络的输入尺度不同,并且不同尺度的网络之间共享参数,因此该方法能以较少的网络参数恢复更清晰的图像。考虑到参数独立模型和参数共享模型在不同尺度特征之间的差异性和相关性,文献[18]提出了一种参数选择共享策略,从而改善去模糊性能。受多尺度方案的启发,文献[19]提出了深度分层分块网络进行盲运动图像去模糊,该网络应用空间金字塔匹配表示非均匀运动去模糊的分层特征,并将图像分块处理以得到具有局部和全局的图像特征,表现出较好的性能。
综上所述,已有的多阶段方法的目的是通过在每个阶段使用一个轻量级的子网络来逐步恢复清晰的图像,即使用逐级渐进的思想。这种设计是有效的,因为它将具有挑战性的图像恢复任务分解为更小的更容易的子任务,并且前一个阶段的任务对后一个阶段的任务起辅助作用。本文依据此架构设计出基于渐进式深度学习的盲运动图像去模糊方法。然而,如何在不同子任务之间有效的进行信息交互,实现不同阶段特征的互补融合,仍然是一个具有挑战性的问题。本文受文献[20]方法的启发,针对盲运动图像去模糊任务中多阶段深度神经网络缺少大范围感受野和难以合理交互各阶段图像特征的问题,构建基于扩张卷积块和上下文注意力特征融合的渐进式深度神经网络,利用各阶段之间的信息交互和多阶段渐进机制,充分利用局部和全局图像特征引导图像恢复,以提升图像特征的利用效率,从而获得更高质量的去模糊图像。其次,应用扩张卷积块捕获大范围的像素信息,有利于恢复更精细的图像纹理结构。最后,依据文献[19]提出的分块思想,本文根据层级不同将输入图像分块处理,目的在于使较低的阶段关注局部信息。
本文提出的基于PDNet盲运动图像去模糊方法主要由局部特征提取、图像特征整合和图像恢复3个阶段构成,如图1所示。
图 1 PDNet的整体框架Fig.1 The framework of PDNet
图1中,模糊图像的浅层特征包含较多的纹理细节,所以在每一阶段都包含浅层特征提取模块(shallow feature extraction module, SFEM)。为了捕获更大范围的像素信息以提高恢复质量,PDNet在每一阶段的编码-解码器中应用MDCB。在图1中的局部特征提取阶段由SFEM、编码器、解码器和卷积层组成。在图像特征整合阶段和图像恢复阶段利用CAFM进行不同阶段图像特征的信息交互,以实现渐进式的图像特征增强。不仅如此,本文在不同阶段将输入图像均匀划分成不同大小图像块,每个阶段的输入和输出图像块的数量均不相同,使得图像特征随着阶段的增加而相互融合,有利于低阶段的局部信息融合高阶段的全局信息,从而生成丰富的上下文图像特征。在图像恢复阶段,除了包含与特征整合阶段一样的SFEM和CAFM外,为了保持原有的图像分辨率,设计了具有残差结构的图像分辨率保持模块,避免上下采样操作带来的像素损失。
模糊图像中的像素是不规则扩散的,为了使模型更精确的关注模糊区域,本文引用坐标注意力模块实现水平和垂直空间方向的聚合特征,不仅可以捕获图像像素之间的远程依赖关系,而且可以保存精确的位置信息,坐标注意力[21],坐标注意力模块如图2所示。
图 2 坐标注意力模块Fig.2 Coordinate attention module
为了获取不同尺度的图像特征,本文基于标准U-Net[22]构建编码-解码器。相较于U-Net,编码-解码器可以利用扩张卷积增大模型的感受野,并且使用横向连接来弥补下采样操作带来的像素损失,编码-解码器结构如图3所示。
图 3 编码-解码器结构Fig.3 The encoder-decoder structure
为了捕获更大范围的像素信息,本文添加MDCB。MDCB利用扩张卷积和编码-解码器中输入的多尺度图像来感知更大范围的像素信息,并且利用多分支结构进一步增强图像特征表达,有助于盲运动图像去模糊任务。MDCB结构由2个多分支扩张卷积组级联构成,各个分支的扩张卷积层使用不同的扩散因子,不但可以扩大感受野,而且能适应不同程度的运动模糊。每个分支的扩张卷积的卷积核均为3,扩散因子从上至下分别是1、3和5。
多阶段深度学习模型可以获得非常丰富的图像信息,但如何使用这些图像信息实现盲运动图像去模糊任务非常关键。为交互不同阶段之间的图像特征,本文提出CAFM。首先,CAFM可以为各个阶段之间的图像特征建立桥梁,使得先前阶段的多尺度特征增强下一阶段的特征,并且利用注意力机制获取当前阶段有利于去模糊的图像特征,使得有用的图像特征传递到下一阶段。其次,利用CAFM有助于低级阶段的局部信息和高级阶段的全局信息充分融合。如图1中的CAFM所示,来自上一阶段的图像特征经过卷积层和Sigmoid函数处理后得到权重分数,然后以加权的方式增强当前阶段的图像特征。计算过程表示为
W=fs(fc(Fpre))
(1)
Ffu=fcord(Fcur+fc(Fcur)⊙W)
(2)
式中:fc为卷积层;fs为Sigmoid函数;fcord为坐标注意力层;W为权重分数;Fpre为上一阶段的图像特征;Fcur为当前阶段的图像特征;Ffu为融合后的图像特征;⊙为对应元素相乘。
由于在编码-解码器中采用上下采样操作会导致图像细节信息的丢失,不利于盲运动图像去模糊。为了从输入的模糊图像中恢复出更加清晰的图像细节,在图像恢复阶段引入由多个残差块级联组成的图像分辨率保持模块,如图1所示。其由多个残差块组成,输入图像特征经过卷积层和LeakyReLU激活函数处理后与自身相加,最终再通过LeakyReLU激活函数得到输出图像特征。图像分辨率保持模块不使用任何降采样操作,以便于保留高分辨率的图像特征。图像分辨率保持模块的计算过程描述为
Fn=fres(Fn-1),n=1,2,…,6
(3)
式中:fres为残差块;Fn-1为第n-1个残差块的输入特征,其中F0为图像分辨率保持模块的输入特征。
本文实验运行平台为Ubuntu16.04的操作系统,设备配置为RTX2080Ti Intel i5-6700K。在GoPro数据集上训练盲运动图像去模糊网络模型。为了从有限的基准数据库中学习不同的图像特征,本文对训练集中的图像使用随机水平翻转、垂直翻转和90°旋转进行数据增强。网络模型应用Adam优化器训练,训练次数设置为1 600轮,初始学习率设置为10-4,学习率调度策略为余弦下降,最低学习速率设置为10-6。
在优化端到端的盲运动图像去模糊深度网络时,设计有效的损失函数至关重要。由于PDNet的每一个阶段都能重建出一张去模糊后的图像,因此本文采用多阶段联合损失函数优化PDNet。本文使用一范数衡量恢复图像与真实标签图像之间的差异。多阶段联合损失函数定义如下:
本文选用在多阶段去模糊方法中具有代表性的SRN[17]和DMPHN(1-2-4-8)[19],GANs去模糊方法中的DeblurGAN[15]和DBGAN[23],以及具有迭代特点的SIUN[24]作为对比方法。首先在GoPro基准数据集上评估PDNet的有效性。表1给出本文方法与另外5种主流盲运动图像去模糊方法在客观质量上的对比结果,评价指标包括PSNR和SSIM。
表 1 对比实验结果
从表1可以看出,DeblurGANv2获得的评价指标最差。SRN共享每一个阶段的网络参数,并且利用由粗到细的去模糊策略,因此能获得较好的盲运动图像去模糊性能。而DBGAN集成了2个GANs,以一个指导另一个的策略恢复图像,其可以得到相比于SRN更好的图像质量。SIUN以迭代的方式恢复清晰图像,而且不同的模糊图像使用不同的迭代次数进行训练和预测,具有更好的适应性,可以恢复出更优的结果。DMPHN(1-2-4-8)采用图像分块策略实现图像去模糊,结合图像的局部与全局信息渐进式地恢复清晰图像,因此有更优的去模糊效果。相比于上述方法,本文采用CAFM能有效地利用图像特征,并利用MDCB感知不同范围的像素信息,因此其评价指标均高于其他对比方法。此外,为进一步评估本方法的泛化性能,使用在GoPro数据集上训练的模型在RealBlur-J[25]低光场景测试集上进行测试,从表1的RealBlur-J列上对应的对比结果可以看出,SRN、DeblurGANv2和DBGAN的评价指标明显下降,表明其泛化能力不足。而SIUN使用独特的迭代策略,可以适应不同模糊程度的模糊图像,表现出比其他方法更好的泛化能力。DMPHN(1-2-4-8)采用渐进方式实现图像去模糊,因而也能获得较好恢复质量。相比于上述对比方法,本文提出的盲运动图像去模糊方法采用多阶段渐进式去模糊策略,并加强各阶段之间的信息的交互,因此能获得更好的泛化能力,在PSNR和SSIM上均获得了具有竞争性的客观评价结果。
为了进一步验证本文提出的盲运动图像去模糊方法的优越性,图4展示在GoPro测试数据集中盲图像去模糊的视觉对比结果,此图中具有较多的纹理细节,视觉感知明显。其中,除真实标签图像和模糊图像外,每幅图像底部均展示了PSNR(单位:dB)和SSIM指标值。
图 4 GoPro数据集上去模糊图像对比结果Fig.4 Results of deblurring images on GoPro data set
从图4可以看出,尽管以往盲运动图像去模糊网络生成的图像能获得相比于原始运动模糊图像更清晰的图像细节,但局部细节和边缘结构仍然存在明显的失真。比如,DBGAN、SRN和DMPHN(1-2-4-8)放大区域中的斑马线出现较显著的扭曲现象,DeblurGANv2和SIUN恢复的图像中放大区域中的汽车目标区域出现较大区域的伪影。相比其他对比方法,本文提出的多阶段渐进式盲运动图像去模糊方法能够融合不同阶段的上下文特征,并且MDCB使其适应不同程度的运动模糊。因此能获得更清晰的纹理细节和图像边缘。
为了进一步验证本文提出的盲运动图像去模糊方法的优越性,图5对比了在RealBlur-J低光场景数据集上不同方法生成的去模糊结果。
图 5 RealBlur-J数据集上去模糊图像对比结果Fig.5 Results of deblurring images on RealBlur-J data set
从图5可以看出,由于自然场景的变化,导致不同方法的恢复图像在视觉上存在较大的差异,其中SIUN的恢复图像没有清晰的文字轮廓,而DeblurGANv2使用图像金字塔模型构造多尺度特征组能在一定程度上抑制伪影失真,但在边缘区域仍存在明显的振铃效应。尽管DBGAN利用GANs模型的图像生成能力,其恢复的图像伪影较少,但细节上存在明显的混叠现象。而DMPHN(1-2-4-8)和SRN采用渐进式的网络结构将复杂的去模糊任务分解为若干个相对容易的子任务,具有较强的抑制伪影失真的能力,恢复的图像具有较好的视觉效果,但客观评价质量较低。而本文提出的盲运动图像去模糊模型利用MDCB在多尺度图像上感知更大范围的像素信息,并且通过CAFM实现各阶段之间的不同尺度特征信息的融合,因此在恢复纹理和文字等图像细节方面明显优于其他模型。
为了验证CAFM和MDCB的有效性,本文在保持其他网络结构不变的情况下,减少或增加网络模块进行对比实验。表2为消融实验结果,由于删除MDCB之后PDNet的结构会发生变化,本文使用卷积组替换MDCB。卷积组由6个带有ReLU激活函数的卷积层级联组成,在表2中√表示选用了该模块,×表示不选用此模块。
表 2 消融实验结果
从表2可以看出,在MDCB和CAFM均不使用的情况下,本文提出的方法在GoPro和RealBlur-J数据集上恢复出的图像的2个客观评价指标最低。当仅使用MDCB时,恢复图像的评价指标有所降低。当在此基础上增加CAFM后,恢复图像在2个评估数据集上均取得最好的评价指标。上述实验表明,联合使用MDCB和CAFM能明显提高去模糊网络的图像恢复能力。
为进一步验证MDCB和CAFM对去模糊任务的贡献,图6展示了GoPro数据集中具有代表性的图像的恢复效果,此图像的纹理细节具有明显的视觉感知区别。
图 6 消融实验图像Fig.6 Results of ablation experiment
从图6的放大区域对比结果可以看出,使用注意力融合模块和多尺度扩张卷积模块的深度神经网络模型恢复出的图像中衣服的褶皱区域更加清晰,而且集成MDCB和CAFM的去模糊模型能生成与原始高质量图像更逼近的重建结果,在客观质量评价方面取得更高的PSNR和SSIM值。
针对盲运动图像去模糊任务中多阶段深度神经网络缺少大范围感受野和难以合理交互各阶段图像特征而导致恢复图像质量不高的问题,本文提出了一种新的端到端的深度网络模型PDNet。该模型利用包含局部特征提取、图像特征整合和图像恢复3个阶段的渐进式深度神经网络框架实现盲运动图像去模糊任务,其中前2个阶段使用具有MDCB的编码-解码器生成图像的上下文特征,最后一个阶段使用原始分辨率保持模块恢复图像,并在每个阶段之间使用CAFM生成具有局部与全局信息的图像特征,因此能恢复出具有精细纹理的清晰图像。在GoPro数据集上的对比实验结果表明,本文提出的深度网络模型在定量和定性方面均优于其他模型。在RealBlur-J数据集上的对比实验结果表明,提出的模型在泛化能力上优于其他模型。