双任务卷积神经网络的图像去模糊方法

2021-11-12 00:47陈清江胡倩楠李金阳
液晶与显示 2021年11期
关键词:编解码残差注意力

陈清江,胡倩楠,李金阳

(西安建筑科技大学 理学院,陕西 西安 710055)

1 引 言

近年来,随着手机等移动设备的普及,拍照成为了记录生活的主要方式。但不可避免地会出现相机抖动、物体移动等问题,获取的图像出现模糊现象,严重影响后续图像的使用。除了日常生活中的照片,图像模糊退化还会发生在刑事侦察、视频监控、卫星成像等[1-2]方面,故图像去模糊技术具有重大的研究意义和应用价值。

图像去模糊通常分为两类,非盲去模糊[3]和盲去模糊[4]。早期的研究大多致力于非盲去模糊[3],即模糊核已知。但在真实应用场景中模糊图像的模糊核往往是未知的。传统方法[5]大多基于统计先验和正则化技术去除图像模糊,常见图像先验包括梯度稀疏先验[6]、低秩先验[7]等。但传统基于统计先验的去模糊方法采用的图像先验大多是假设的,存在假设不正确、细节丢失等问题。近年来,深度学习已广泛应用于解决计算机视觉问题,例如图像识别[8]、图像分类[9]等问题。Xu等[10]提出基于卷积神经网络的图像去模糊方法,但该算法在去模糊过程中丢失了图像的细节纹理信息。Hradi等[11]提出基于卷积神经网络的图像去模糊算法,但该算法只适用于文本图像。Su等[12]提出基于卷积神经网络的视频去模糊方法,但该算法不适用单幅图像去模糊。Nah等[4]提出一种多尺度卷积网络,遵循传统的“从粗到细”的网络框架逐渐恢复出更高分辨率的清晰图像,该算法获得了较好的效果,但计算量大,运行速度较慢。Zhang等[13]提出了一种深度分层多补丁网络,利用“从细到粗”的分层方式去除非均匀运动模糊,该算法降低了模型大小,提高了运行速度,但图像预处理过程较复杂,网络性能不稳定。以上各种算法均未加区分地处理空间与通道特征信息,事实上,模糊图像中不同通道以及各个空间位置上包含不同类型的信息,其中一些有助于消除模糊,另一些有助于恢复细节。

针对目前用于图像去模糊的单任务卷积神经网络高频细节丢失、不加区分地处理空间和通道特征信息等问题,本文提出一种基于双任务卷积神经网络的图像去模糊方法,网络由去模糊子网络、高频细节恢复子网络以及特征重建模块组成。由于不同的空间区域以及不同通道包含不同类型的特征信息,故在去模糊子网络中将残差注意力模块放置在编码器末端引导解码器重建出更加清晰的图像,并在去模糊子网络中引入八度卷积残差块作为整个编解码子网络的基础构建块,增强特征提取能力的同时降低空间冗余,减少参数量。编解码网络结构可以增加网络的感受野以及获取更多不同层级的图像特征信息,但由于编解码网络结构会丢失特征图的高频信息,故提出一种用以恢复细节纹理的基于双残差连接的高频细节恢复子网络。本文将去模糊子网络与高频细节恢复子网络采用并联的方式进行组合,可达到更好的去模糊效果。

2 相关理论

2.1 注意力机制

注意力机制可被视为一种自适应地将计算资源分配给输入特征中最有用部分的方法。近年来,空间注意力机制和通道注意力机制被广泛应用于计算机视觉任务中,例如目标识别[8]、图像去雾[14]等。空间注意力机制可突出有用空间位置的特征,通道注意力机制可以识别通道特征之间的相互依赖性并找到有用的特征。

通道注意力模块从通道的角度对特征进行加权,该模块结构如图1所示,通道注意主要关注于输入图像中什么是有意义的。计算过程如下:

MC(F)=σ(MLP(AvgPool(F))+
MLP(MaxPool(F))),

(1)

其中:σ表示sigmoid激活函数,MLP表示多层感知机。

与通道注意不同,空间注意侧重于输入图像‘何处’信息是有用的,是对通道注意的补充。该模块结构如图2所示,计算过程如下:

图1 通道注意力模块Fig.1 Channel attention module

(2)

其中:σ表示Sigmoid函数,f7×7表示滤波器大小为7×7的卷积运算。

图2 空间注意力模块Fig.2 Spatial attention module

2.2 八度卷积

自然图像可以分解为低空间频率和高空间频率,卷积层的输出特征图以及输入通道也存在着高、低频分量。高频信号支撑的是丰富细节,而低频信号支撑的是整体结构,显然低频分量中存在冗余,在编码过程中可以节省。而传统的卷积并未分解低高频分量,导致空间冗余。为解决上述问题,Chen等人[15]提出了八度卷积(Octave Convolution),其核心原理就是利用空间尺度化理论将图像高频低频部分分开,下采样低频部分,并在其相应的频率上用不同的卷积处理它们,间隔一个八度,可以大幅降低参数量。OctConv被定义为一个单一的、通用的、即插即用的卷积单元,并且可以完美地嵌入到神经网络中,同时减少内存和计算成本。该模块结构如图3所示。

图3 八度卷积模块Fig.3 Octave convolution module

如图3所示,卷积层的输入输出以及卷积核都被分为了两个部分,一部分为高频信息[XH,YH,WH],另一部分为低频信息[XL,YL,WL],低频特征图的分辨率为高频特征图的一半,对于高频特征图,它的频率内信息更新过程就是普通卷积过程,而频率间的信息交流过程,则使用上采样操作再进行卷积。类似地,对于低频特征图,它的频率内信息更新过程是普通卷积过程,而频率间的信息交流过程,则使用平均池化操作再进行卷积。其卷积过程可以描述如下:

YH=f(XH;WH→H)+
upsample(f(XL;WL→H),2),

(3)

YL=f(XL;WL→L)+
f(pool(XH,2);WH→L).

(4)

3 本文网络模型

3.1 网络结构

针对现有去模糊算法存在的高频细节丢失、不加区分地处理所有空间和通道特征信息等问题,本文提出一种基于双任务卷积神经网络的图像去模糊方法,将整个去模糊任务分为两个子任务进行,首先利用基于残差注意力模块和八度卷积残差块的编解码网络去除图像模糊,将残差注意力模块添加至编码器末端来引导解码器重建出更加清晰的图像,并且利用八度卷积残差块来降低空间冗余以及更充分地提取特征信息,去模糊子网络保留了整体结构信息,但由于编码过程采用下采样操作,会丢失高频细节,故提出一种基于双残差连接模块的高频细节恢复子网络来恢复其高频细节,在双残差连接模块中利用成对操作潜力来进行细节恢复,在扩大感受野的同时提高了网络性能。本文采用并联方式将去模糊子网络和高频细节恢复子网络组合起来,从而达到更好的去模糊效果。整体网络结构如图4所示。

图4 双任务卷积神经网络模型Fig.4 Dual task convolution neural network model

3.2 编解码结构

目前,编解码网络结构常被应用于计算机视觉任务中[16],其对于图像复原任务有较强的适用性和实用性。本文采用一种新型的自编解码网络结构,自编码结构由卷积层、八度卷积残差块以及残差注意力模块组成,输入的模糊图像经过3次步长为2的卷积层进行下采样,每经过一次下采样得到尺寸减少一半的特征图。自解码结构由上采样层、卷积层以及八度卷积残差块组成,经过3次上采样操作将特征图恢复到原来的尺寸大小。由于利用注意力模块可以使网络自适应地学习不同通道以及空间的重要特征,故将残差注意力模块应用于编码器末端来引导解码器去除运动模糊,重建出更加清晰的图像。图像去模糊任务中,具有较大感受野是去除严重模糊的关键,增加网络层数可以增大感受野,但也会导致梯度消失或梯度爆炸等问题,故本文在编码阶段和对称的解码阶段添加跳跃连接,可以缓解由于网络过深而导致的梯度消失或爆炸问题。编解码器的参数配置如表1、表2所示,编解码结构所有卷积层均使用3×3的卷积核。

表1 编码结构参数配置表Tab.1 Parameters configuration table of encoding structure

表2 解码结构参数配置表Tab.2 Parameters configuration table of decoding structure

3.3 残差注意力模块

残差结构的网络已被广泛应用于图像去雾[17]、图像去噪[18]等领域,其产生的目的是为了解决较深网络容易出现梯度消失、梯度爆炸、网络性能退化等问题。本文将注意力机制(CBAM)[19]与残差结构[20]相结合并应用于编码器末端用于引导解码器重建出更清晰的图像,并且能够保证在整体结构完整的情况下突出更有用的信息。该模块结构如图5所示。

输入特征首先经过一个3×3的卷积层,得到的特征分别进入主干分支M和CBAM分支C。进入CBAM分支的特征首先经过通道注意力机制模块,得到的特征再与经过卷积层的特征进行相应元素相乘,得到输出特征F′,之后F′进入空间注意力机制模块,再与F′进行相应元素相乘,得到CBAM分支的最终输出特征Ci,c(x)。主干分支保留了原始的特征Mi,c(x),与CBAM分支所得到的输出Ci,c(x)相加得到残差注意力模块的最终输出Hi,c(x)。上述结构可表述为:

图5 残差注意力模块Fig.5 Residual attention module

Hi,c(x)=Ci,c(x)+Mi,c(x),

(5)

其中:i代表空间位置,c代表特征通道的索引。

该模块中的主干分支M保留了原始输入特征信息,而CBAM分支生成的注意力机制特征图显著突出了对结果有用的区域,故此模块有利于提高网络的表达能力。

3.4 八度卷积残差模块

Chen等人[15]已经证明了八度卷积可以有效减少参数量,降低空间冗余,并且可以使一部分卷积专注提取高频信息,另一部分卷积提取低频信息。ResNet是He等[20]在2015年所提出的,它解决了深层网络中梯度弥散和精度下降的问题,使网络能够越来越深,既保证了精度,又控制了速度。本文将八度卷积引入残差块,将残差连接单元中普通卷积替换为八度卷积,在解决梯度消失、精度下降等问题的同时降低空间冗余,减少计算量。本文将八度卷积残差块作为编解码网络的基础构建块。该模块结构如图6所示。

图6 八度卷积残差模块Fig.6 Octave convolution residual module

3.5 双残差连接模块

由于编解码网络结构会丢失部分细节特征,故本文设计了一个基于双残差连接方式的高频细节恢复子网络。这种连接方式配备了两个容器,可以插入任何操作。为扩大感受野,本文将第一个容器里放入一个3×3,步长为1的卷积层和膨胀因子为3的扩张卷积层;第二个容器里放入一个5×5,步长为1的卷积层,利用这两个容器的成对运算潜力来恢复出高频细节信息。在此模块中并未进行下采样操作,整个过程特征图大小与输入大小保持一致,只进行模糊图像高频特征的提取和融合,为最终的图像恢复过程提供高频信息。本文在高频细节恢复子网络中设计了5对成对操作。该模块的网络结构如图7所示。

图7 双残差连接模型Fig.7 Double residual connection model

特征x进入第i个成对操作后,首先经过第一个容器,也即经过一个3×3的卷积层和一个膨胀因子为3的扩张卷积层,所得到的特征g1(x)与第i-1个成对操作中经过第一个容器后所得到的特征M进行相应元素相加,得到输出特征G,之后G进入第i个成对操作中的第二个容器得到特征g2(x),g2(x)再与第i-1个成对操作中经过第二个容器后所得到的特征N进行相应元素相加,得到最终输出特征H(x)。上述过程可以表述为:

G=M+g1(x),

(6)

H(x)=N+g2(x).

(7)

4 损失函数

本文总损失函数由平均绝对误差损失(Mean Absolute Error,MAE)、结构损失(Structural Loss,SL)组成。其计算公式为:

Ltotal=λALA+λSLS,

(8)

其中:LA表示平均绝对误差损失(MAE),LS表示结构损失(SL),λA与λS分别为对应的平衡权重。

平均绝对误差(MAE)损失用于测量清晰图像和输出去模糊图像之间像素方面的差异。其计算过程可以表述为:

(9)

平均绝对误差损失往往会丢失细节纹理,故在网络中引入结构损失作为约束项,保持图像细节,避免细节模糊。其计算过程可以表述为:

LS=LSSIM+LMS-SSIM,

(10)

其中,LSSIM可以表示为:

LSSIM=1-SSIM(P),

(11)

多尺度结构相似损失(MS-SSIM)基于多层的SSIM损失函数,考虑了分辨率,LMS-SSIM可以表示为:

LMS-SSIM=1-MS-SSIM(P),

(12)

P为像素块的中间像素值。

5 实验结果与分析

5.1 数据集与实验配置

本文实验训练与测试数据均来自Nah等[4]在2017年所提出的GoPro数据集,随机选取2 013张清晰-模糊图像对,并将2 013张清晰-模糊图像对按8∶2的比例划分为训练集和测试集,即训练集为1 610张,测试集为403张。为增加整个网络模型的鲁棒性,将训练集中的1 610张图像进行翻转90°与180°,得到4 830张清晰-模糊图像对。最终用于实验的训练集为4 830张,测试集为403张。

本文所做实验基于TensorFlow2.0深度学习框架与python3.7环境进行训练与测试,所用计算机GPU配置为Nvidia GeForce 1660Ti(6 GB),显存为6 GB。在整个实验过程中,所有图像一律裁剪为256×256×3,batch_size=2,epoch=5 000。采用Adam优化器来优化损失函数,动量参数分别为0.9、0.999,实验设置固定学习率为0.000 1。

5.2 λA与λS取不同值对实验结果的影响

本文所用总损失函数为平均绝对误差损失与结构损失的加权和,其中不同的权重系数对实验结果有一定的影响,故本文分别验证λA与λS取不同值时对实验结果的影响。依然使用峰值信噪比(PSNR)和结构相似度(SSIM)这两项指标来作为性能衡量标准。为了快速验证,λA与λS取不同值的对比实验均在只在编码器末端添加残差注意力模块的情况下进行。表3为λA与λS取不同值时网络模型在GoPro测试集上的性能对比结果。图8为λA与λS取不同值时的网络模型在GoPro测试集上可视化对比示例图。表3表明,当λA=0.3,λS=0.7时网络性能最好,故本文其他实验均选择λA=0.3,λS=0.7。由图8也可看出当λA=0.3,λS=0.7时,图像纹理细节更加丰富,更加接近真实清晰图像。

表3 λA与λS取不同值下的实验指标表

5.3 残差注意力模块在编解码网络结构中所处位置对训练结果的影响

残差注意力模块可以放置到编解码网络结构中的不同位置,为验证本文将残差注意力模块放置为最优,故先进行对比实验。残差注意力模块可以加入到编解码网络结构的不同位置,分别为:

(1)C0:不添加残差注意力模块;

(2)C1:在编码器末端添加残差注意力模块;

(3)C2:在编码器的第3,4块添加残差注意力模块;

(4)C3:在编码器的第2,3,4块添加残差注意力模块;

(5)C4:在编码器后均添加残差注意力模块;

(6)C5:在编码器末端和解码器第一块添加残差注意力模块;

(7)C6:在解码器的第1,2块添加残差注意力模块;

(8)C7:在解码器后均添加残差注意力模块。

本文将验证这8种情况,表4展示了残差注意力模块所处位置对网络性能的影响。图9为残差注意力模块放置不同位置的网络模型在GoPro测试集上可视化对比示例图。

如表4所示,将残差注意力模块放置在C1位置时,能够更好地提升网络去模糊性能,获得了最高的PSNR和SSIM。同时观察到,添加多个残差注意力模块在编码器或解码器中,网络性能有所下降,故本文的其余实验均将残差注意力模块放置在编码器末端。

表4 残差注意力模块不同位置对性能影响

图9 残差注意力模块放置不同位置的可视化对比Fig.9 Visual comparison of different positions of residual attention module

5.4 不同损失函数对实验结果的影响

针对不同损失函数对实验结果的影响,本文测试了不同情况下的实验结果。表5展示了不同损失函数对网络性能的影响。图10为应用不同损失函数的情况下在GoPro测试集上可视化对比示例图。

表5表明,LA与LS的加权和相比于LA和LS在两项指标上有略微的提升,由图10也可看出单纯地使用LA或LS并不能有效去除模糊,细节纹理不够丰富,而利用LA与LS的加权和可以更好地去除模糊,因此选择LA与LS的加权和作为损失函数。

表5 不同损失函数对网络性能的影响

图10 应用不同损失函数的可视化对比Fig.10 Visual comparison of different loss functions

5.5 不同对比算法在GoPro测试集上的结果分析

为了验证本文算法的有效性,选取6种目前先进的图像去模糊卷积神经网络与本文方法进行对比,使用峰值信噪比(PSNR)、结构相似度(SSIM)、模型大小以及网络模型的运行时间作为性能衡量标准,表6展示了不同算法在测试集上的性能对比结果。图11为不同算法在测试集上可视化对比示例图。

图11 不同算法的可视化对比Fig.11 Visual comparison of different algorithms

表6 不同算法的性能对比Tab.6 Performance comparison of different algorithms

由表6可以看出本文所提出的方法较其他4种算法得到了更高的PSRN和SSIM,并且本文的网络模型较除Ye算法之外的5种算法达到最小,虽然本文算法比Ye算法网络模型大,但本文算法运行时间较短且能达到更高的PSNR和SSIM。由图11也可看出Sun等[21]提出的算法不能够有效去除模糊,Nah等[4]、Tao等[16]、Zhang等[13]、Ye等[22]以及Zhou等[23]的去模糊效果虽较Sun等[21]的算法有一定的提升,但纹理细节恢复较差,没有达到更好的去模糊效果。本文方法在GoPro数据集上有着良好的表现,所得到的去模糊图像更接近清晰图像。

5.6 双任务网络模型复杂度分析

本文使用同一台电脑来评估本文算法及目前先进的6种算法。如表6所示,Sun等[21]利用CNN算法来估计运动模糊核,但仍需要传统的非盲去模糊算法来生成干净的图像,这增加了计算成本;为增大感受野,Nah等[4]和Tao等[16]使用了多尺度CNN算法来估计干净图像,与传统的算法相比花费了更少的时间,但多尺度框架不可避免地增加了计算量,与本文所提方法相比,其效率仍然不高;Zhang等[13]使用了深度分层多补丁CNN算法来去除模糊,但其图像预处理过程较为复杂,花费时间更多,并且此模型比本文模型大得多;Ye等[22]使用一种新的尺度循环网络,降低了模型大小,但本文方法的运行时间比该方法快约0.73倍。本文提出的双残差连接模块利用不同膨胀率的卷积以较低的计算成本扩大感受域。另外,本文提出的网络中使用了八度卷积,进一步减小了网络的规模。从表6可以看出,与现有的基于CNN的方法相比,本文提出的网络模型小,运行速度快,效率更高。

6 结 论

本文为解决现存去模糊卷积神经网络中存在的细节纹理丢失、不加区分地处理通道以及空间特征信息等问题,提出了一种并联的双任务卷积神经网络用于图像去模糊任务。首先利用基于残差注意力模块和八度卷积残差块的新型编解码网络结构用来去除模糊,且在编解码之间加入跳跃连接来丰富解码器的信息,实验结果表明,将残差注意力模块放置编码器末端有利于提升去模糊性能。其次提出一种基于双残差连接模块的子网络进行细节恢复,双残差连接方式对于图像细节恢复任务具有更强的效果。将这两个子网络采用并联的方式连接起来,最后利用一层卷积来重建出更加清晰的图像。实验结果表明,本文算法的峰值信噪比为32.427 6 dB,结构相似度为0.947 0,与目前先进的图像去模糊技术相比均有所提升。

猜你喜欢
编解码残差注意力
基于双向GRU与残差拟合的车辆跟驰建模
让注意力“飞”回来
基于残差学习的自适应无人机目标跟踪算法
1553B总线控制器编解码设计
为多重编解码世界做好准备
大型民机试飞遥测视频编解码方法研究
基于递归残差网络的图像超分辨率重建
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
平稳自相关过程的残差累积和控制图