许光宇,汪 雨
安徽理工大学 计算机科学与工程学院,安徽 淮南 232001
图像去模糊旨在将模糊图像恢复为更清晰的图像,在人类社会和工业生产中具有广泛的应用场景。传统的图像去模糊方法通过估计模糊核将图像去模糊问题转化为求解模型的逆问题,经典的算法如Lucy-Richardson算法[1]、维纳滤波算法[2],通过对模糊图像进行反卷积估计清晰的图像。Liu等[3]提出了一种基于径向基函数神经网络的Lucy-Richadson算法,可以在动态条件下去除星敏感器获取的星图像模糊,提升星心提取的成功率和姿态确定精度。针对图像的旋转运动模糊,Li等[4]提出了一种新的模糊核估计模型,对于由旋转运动产生的模糊图像有着较好的恢复效果。但是图像的模糊核往往是未知的,因此非盲去模糊方法对于解决实际问题往往存在一定的局限性。Pan等[5]利用线性近似的方式,解决了暗通道先验当中非凸非线性优化的问题,加强了暗通道的稀疏性,获得了较好的去模糊性能。为了更准确的估计模糊核,Zhao等[6]使用极值通道先验作为稀疏互补知识来提取显著结构,比此前的方法具有更好的鲁棒性和性能。Yang等[7]提出新的耦合正则化方式,利用算子分裂和乘法器的交替方向法导出一种数值格式,得到了一种更准确、更高效且鲁棒性更高的盲去模糊算法。Zhao等[8]提出了一个深度变分贝叶斯框架,利用恢复的潜在清晰图像和模糊核的近似后验信息,获得了良好的去模糊效果。
深度学习以其强大的特征提取和表达能力在计算机视觉领域取得了巨大成就,如图像分类、目标检测等。为了克服传统图像去模糊算法的不足,研究者也探索了大量基于深度学习的图像去模糊算法。Nah等[9]提出了深度多尺度卷积神经网络,以端到端的方式恢复由于相机抖动、失焦等原因引起的图像模糊,在动态场景去模糊中取得了优良的性能。Tao等[10]中的多尺度循环网络(scale-recurrent network deblur,SRN-Deblur),则是利用权重共享使得网络结构更简单,参数数量更少,训练更加容易。Zhang等[11]利用空间金字塔匹配的端到端卷积神经网络分层模型(deep multi-patch hierarchical network,DMPHN),通过分割图片进行多阶段去模糊,进一步的提升了网络的处理性能。Gao等[12]提出参数选择性共享和嵌套跳过连接的方法(parameter selective sharing and nested skip connections,PSS-NSC),使得网络参数在子网络中共享,内存需求降低但计算复杂度仍然很高。Zamir等[13]提出了一种用于图像恢复的多阶段架构(multi-stage progressive image restoration network,MPRNet),从输入的退化图像当中逐步学习重建信息,在空间细节和高级上下文信息之间取得平衡,实现了强大的去模糊性能提升。
多尺度网络去模糊的方法被证实是有效的,但仍然存在纹理不够清晰,图像细节模糊等问题。本文提出了一种基于多输入多输出编解码器网络的图像去模糊方法。首先,设计一个特征提取模块提取多尺度模糊图的全局和局部特征信息,为网络提供更丰富的特征信息,并利用特征融合模块将多个尺度下的特征信息融合。相比于传统的多个子网络堆叠的方式,使得不同尺度下的上下文特征信息与细节特征可以在单个编解码器网络当中流动,增强了特征信息的流动性。最后,提出了一个由L1损失、多尺度频率重建损失与边缘损失组成的混合损失函数,可以更好的考虑图像的高频纹理结构信息,提高复原图像在细节上的表现。实验结果表明,本文方法与近年来的去模糊方法[9-14]相比,在客观评价指标与主观视觉上均取得了较好的结果,能够有效解决图像非均匀盲去模糊中纹理细节不清晰的问题,图像去模糊后可以保留更多的纹理细节与边缘轮廓信息,复原出更高质量的图像。
图像去模糊框架如图1所示,网络整体采用U-net结构。它包括编码器网络块(encode block,EB),解码器网络块(decode block,DB),特征提取模块(feature extraction module,FEM),特征融合模块(feature fusion module,FFM)。其中编码器网络块EB1由一个卷积核为3×3步长为1的卷积层与一个残差组构成,每个残差组包含8个多尺度残差块[9],每个残差块包括2个卷积核为3×3步长为1的卷积层与1个ReLu激活函数。残差块中使用跳跃连接,能够让深层网络获取更丰富的信息,解决梯度消失的问题。在EB1的基础上,通过增加特征注意力模块(feature attention module,FAM)[14]构建了用于增强或抑制特征信息的编码器网络块EB2和EB3。解码器网络块DB1同样由一个卷积层与一个残差组构成,解码器网络块DB2和DB3则是在DB1的基础上增加了转置卷积,对特征图进行上采样操作。
图1 提出的网络结构
解码阶段中图像输出的过程可以表示为:
为了从不同尺度的模糊图像中提取特征信息,设计了一种基于多尺度的特征提取模块。如图2所示,此模块通过两条支路提取特征信息。主要支路使用一个卷积核为3×3步长为1的卷积层和一个卷积核为1×1步长为1卷积层进行堆栈,为了保证特征提取的效率,仅使用两层堆栈。另外一条支路,使用卷积核为3×3步长为1的卷积层对输入的模糊图像进行细化,在不过多增加计算量的前提下,获得全局特征与局部特征信息。细化后的特征图与主要支路的输出特征进行连接操作,最后使用额外的一个卷积核为1×1步长为1的卷积层进行卷积操作,对特征提取模块的特征图进一步的信息融合并调整通道数。
图2 多尺度特征提取模块
特征提取过程可描述为:
Fa=Conv1(Conv3(Conv1(Conv3(Bn)))), (2)
Fb=Conv3(Bn), (3)
由于均方误差(mean square error,MSE)损失函数受离群点影响较大,容易导致恢复的图像过度平滑且边缘模糊,采用了L1损失,多尺度频率重建损失(multi-scale frequency reconstruction,MSFR)[14]与边缘损失的混合损失函数,在保证图像去模糊的同时,更关注高频纹理信息。
(1)L1损失
L1损失函数对异常点有更好的鲁棒性,受离群点的影响较小,可以保证图像的结构与边缘信息,L1的表达式为:
L1=‖X-Y‖1, (13)
其中,X代表重建图像;Y代表真实图像。
(2)多尺度频率重建损失
由于去模糊的目的是恢复丢失的高频分量,因此必须减小频率空间中的差值。MSRF损失函数可以用于评估多尺度重建图像与真实图像在频域上的差异,减小频域空间中的差值。MSFR损失函数可以表示为:
其中,K为层数;tk是总元素数将损失除以总元素数进行归一化;F为将图像信号传输到频域的快速傅里叶变换(fast fourier transform,FFT),运算效率高使用方便。
(3)边缘损失
边缘损失(Edge loss,ED)函数可以更好的考虑图像的高频纹理结构信息,提高复原图像的轮廓清晰度。
其中Δ为拉普拉斯算子;γ为常数值10-3。
最终的损失函数为:L=L1+α1LMSFR+α2LED,α1和α2分别取值为0.01和0.05。
为了充分验证所提出网络模型的有效性,首先介绍了实验所采用的数据集和实验设置,然后采用定量和定性分析法评估本文方法的性能,最后通过消融实验验证了所提各个部分的有效性。为公平比较,本文方法与其他基于深度学习的去模糊算法进行对比,包括DeepDeblur[9]、SRN-Deblur[10]、DMPHN[11]和MIMO-Unet[14]。
选取GoPro[9]和HIDE[15]两个数据集进行实验,GoPro数据集是由GoPro相机拍摄的高速视频序列,单幅模糊图像由连续的多帧清晰图像取平均的方法获得,连续多帧图像的中间帧作为模糊图像对应的清晰图像,GoPro数据集中共有3 214对720×1 280分辨率的清晰图像与模糊图像,其中2 103对图像进行训练,1 111对图像进行测试。HIDE数据集内包括了多个场景下的运动模糊图像,共包括8 422对720×1 280分辨率的清晰图像和模糊图像,测试集内包含了2 025对模糊图像与清晰图像,用于评估网络的泛化性能。
本文算法基于PyTorch框架实现,在NVIDIA GeForce RTX 3060 GPU上进行训练与测试。训练过程中批大小设置为4,输入图像大小为256×256,采用Adam优化器进行优化,学习率设置为10-4,每500轮降低0.5,共训练3 000轮,每个图像水平翻转概率为0.5以增强数据。在GoPro数据集上对提出的网络进行训练,在GoPro数据集和HIDE数据集上对训练好的模型进行测试。
2.3.1 定量对比实验
为了综合评估复原图像的效果,选取了峰值信噪比 (peak signal-to-noise ratio,PSNR)[16]与结构相似性 (structural similarity,SSIM)[17]作为复原图像定量分析的评价指标。PSNR值越大表示恢复结果在整体上越接近原图像;SSIM值越大,图像结构信息损失越小,具有更好的视觉效果。实验结果如表1所示,表中列出了各算法评价指标的平均值,SRN-Deblur在DeepDeblur的基础上采用跳跃连接与网络权重共享,获得了较好的评价结果。DMPHN通过分割图片进行多阶段去模糊,较前两种方法在评价指标上有了明显的上升。MIMO-Unet引入了多输入多输出的方式提升特征信息利用率,取得了次优结果。所提出的算法在两个数据集中均取得了最高的平均PSNR值与平均SSIM值。较MIMO-Unet本文方法在GoPro和HIDE数据集上分别提升了0.21 dB、0.010和0.13 dB、0.015。
2.3.2 定性对比实验
为了给出关于恢复性能的直观结果,从GoPro和HIDE数据集中分别随机选取3张不同场景的模糊图进行定性评估,本文方法和其他对比方法的去模糊结果如图4和图5所示。SRN-Deblur[10]对于文字模糊修复效果尚可,但对于人像模糊的恢复效果较差,仍有大部分模糊未去除,如图4(c)第1幅图中的车牌文字和后视镜倒影,以及第2幅图中的人脸和门牌号。DMPHN去模糊效果相较于SRN-Deblur有所进步,在大部分区域有较好的去模糊性能,但图像的纹理细节信息恢复不足。如图4(c)第1幅图中车辆后视镜倒影和第2幅图中女孩面部都存在细节不够清晰的情况。MIMO-Unet在去模糊效果上比上述两种方法有了明显提高,拥有很好的主观视觉效果,但边缘细节等显著信息并不突出。
在图5的定性比较结果中,通过观察第1幅和第3幅图像中的人物与文字区域可发现,SRN-Deblur的恢复结果(图5(c))图像纹理细节不清晰,去模糊能力有限,不论是人物的轮廓区域还是文字的细节部分,都存在细节缺陷。DMPHN去模糊效果较好(图5(d)),但是在细节纹理方面仍然无法实现良好的效果,如第1幅图中的“太平”二字仍有大片伪影未能去除。MIMO-Unet可以复原文字保留人物轮廓,但仍然无法较好地解决复原图像出现伪影问题,如图5(e)第1幅图中的人物与字体周围的伪影,以及第3幅图中的人物容貌细节。通过直观对比可以看出,本文方法所产生的复原图像中,图像的文字纹理细节更加清晰,人物轮廓明显且未出现伪影,主观效果最接近真实图像。
注:(a)模糊图像;(b)清晰图像;(c) SRN-Deblur;(d) DMPHN;(e) MIMO-Unet ;(f)本文算法。
注:(a)模糊图像; (b)清晰图像;(c) SRN-Deblur;(d) DMPHN;(e) MIMO-Unet ;(f)本文算法。
实验结果表明,所提的方法能够较彻底的去除图像非均匀模糊,同时保留更多的纹理边缘等细节信息,恢复的图像更清晰,拥有更佳的人眼视觉观感。本文方法的恢复结果在主客观评价方面均优于相对比的方法,是一种有效的图像去模糊方法。
2.4.1 不同损失函数组合结果
在GoPro数据集上,对不同的损失函数进行消融实验,表2为不同损失函数的组合实验结果。从表2可知,在仅使用L2损失函数的情况下,平均PSNR和平均SSIM的值最小,去模糊的效果最差。单独使用L1损失函数与单独使用边缘损失函数,均比L2损失函数效果更好,但仍然无法获得最佳的结果。其中在单独L1损失函数获得了次优的结果,平均PSNR值与平均SSIM值分别达到了31.65 dB与0.945。本文使用的由L1损失,多尺度频率重建损失与边缘损失组成的混合损失函数,获得了最好的平均PSNR值与平均SSIM值,相较于L2损失函数平均PSNR值和平均SSIM值分别提升了1.07 dB和0.037,比次优的L1损失函数平均PSNR和平均SSIM也分别提升了0.29 dB和0.016,因此本文选用混合损失函数。
2.4.2 不同网络模块对比
为了验证所提模块的有效性,在GoPro数据集上进行了不同模块的组合实验。首先,评估了不同特征融合方法的有效性,将所提出的特征融合模块FFM与传统的特征图逐元素相加及通道拼接的融合方式相对比。结果如表3所示,使用FFM比按元素相加的融合方式,平均PSNR提高了0.46 dB,平均SSIM提高了0.026,比特征图拼接的方式平均PSNR提高0.40 dB,平均SSIM提高0.023。为了验证特征提取块FEM的有效性,使用一层3×3卷积代替FEM,由表3中可知使用FEM时比单独使用卷积操作效果更好,平均PSNR提高了0.19 dB,平均SSIM提高了0.020。
表3 不同模块组合的消融实验
本文提出了一种基于多输入多输出编解码器网络的图像去模糊方法,不同于传统的多尺度网络简单堆叠子网络的方式,该网络利用单一编解码网络结构模拟传统多尺度网络的多个子网络级联结构,将多尺度模糊图像输入编解码器当中,按照“从粗到精”的策略逐步恢复清晰图像。通过特征提取模块提取不同尺度模糊图像的全局和局部特征信息,网络能够获取更丰富、更全面的特征信息;其次,使用特征融合模块进行特征融合,增强了网络内部特征的流动能力;最后,在损失函数中引入L1损失、多尺度频率重建损失和边缘损失以提升图像复原效果,同时尽可能多地保留纹理结构和边缘信息。与其他方法相比,本文方法在客观评价与主观效果上均取得了良好的去模糊效果,是一种有效的图像去模糊方法。然而,本文方法对于人像的恢复效果不是特别,理想纹理细节过于丰富丢失真实性,未来的工作将集中在这个问题上,继续优化网络模型,提升人像的恢复效果。