融合残差及通道注意力机制的单幅图像去雨方法
2021-03-19张世辉闫晓蕊
张世辉, 闫晓蕊, 桑 榆
(1.燕山大学 信息科学与工程学院,河北 秦皇岛 066004;2.河北省计算机虚拟技术与系统集成重点实验室,河北 秦皇岛 066004)
1 引 言
含有雨滴的图像会影响目标识别、自动驾驶、光学测量、三维重建等诸多视觉任务的进行,甚至会导致相关视觉任务的失败,因此,消除雨滴对图像造成的影响具有重要研究意义和实用价值[1~4]。
将雨天降质的有雨图像恢复成无雨时清晰的图像称为单幅图像去雨。已有的去雨方法主要包括基于视频的去雨方法和基于单幅图像的去雨方法2大类。基于视频的去雨方法可以利用相邻帧的时间序列信息[5,6],而单幅图像由于缺少雨滴分布的时空特性,故基于单幅图像的去雨方法更具有挑战性。基于单幅图像的去雨方法又可分为基于稀疏编码理论[7~9]和基于深度学习思想[10~14]两类。
基于稀疏编码理论的去雨方法方面,文献[7]使用双边滤波将有雨图像分解为高频细节层和平滑基本层,再通过稀疏编码去除高频细节层中的雨滴,但该方法易造成细节信息丢失及图像模糊现象;文献[8]通过改进文献[7]的方法提出了利用AP聚类算法对学习到的字典原子自动分类来实现去雨,该方法改善了单幅图像去雨后边缘丢失的情况,但存在雨滴残留问题;文献[9]基于层混合模型渲染有雨图像,再通过判别稀疏编码实现单幅图像去雨,虽然该方法一定程度上改善了去雨的效果,但仍旧无法彻底去除图像中的雨滴。综合来看,基于稀疏编码理论的去雨方法有一定的去雨效果,但其效果并不理想且当背景颜色和纹理相似于雨滴时,该类方法很难在去除雨滴的同时保留原有的背景细节信息。
基于深度学习思想的去雨方法方面,文献[10]利用低通滤波器将有雨图像分解为高频细节层和平滑基本层,并搭建名为DerainNet的深度神经网络实现单幅图像去雨,该方法会造成图像对比度降低及雨滴残留等问题;文献[11]提出一种基于端到端映射的深度细节网络(DDN),通过改变映射模式简化了学习过程与网络参数,该方法的去雨效果较文献[10]有所提高但仍存在雨滴残留;文献[12]提出基于多任务深度神经网络JORDER的去雨方法,该方法能够检测并去除雨滴,但去雨后的图像会有细节丢失且图像过于平滑;文献[13]提出一种基于密度感知的多流密集网络DID-MDN,该方法能够使网络自动判断雨滴密度从而有效地去除雨滴,但也存在雨滴残留;文献[14]提出基于残差引导特征融合网络ResGuideNet的去雨方法,通过利用浅层特征图的残差引导深层特征图提取雨滴信息实现去雨,但该方法仍有雨滴残留现象。由此可见,基于深度学习思想的去雨方法很好地利用了图像的特征信息,得到了较好的去雨效果,但仍普遍存在雨滴残留现象。
通过对已有文献的分析可知,目前的单幅图像去雨方法存在图像模糊且细节信息丢失[7~9,12]、雨滴残留[7~11,13,14]等不足。鉴于此,本文基于导向滤波和图像增强并利用深度学习思想,提出一种融合残差及通道注意力机制来实现的单幅图像去雨方法。实验结果验证了所提方法的可行性和有效性。
2 基于SERNet及图像增强的单幅图像去雨方法
单幅图像去雨方法的总体思想如下:1)利用导向滤波分解有雨图像得到平滑基本层和高频细节层;2)提出自适应Gamma校正算法对平滑基本层进行增强,提高其对比度;3)构建基于深度学习思想融合改进残差块和通道注意力机制的压缩和激励残差网络(squeeze-and-excitation residual network,SERNet)并利用SERNet对高频细节层去雨;4)将增强的平滑基本层和去雨后的高频细节层融合得到清晰的去雨图像。
方法总体流程如图1所示。
图1 单幅图像去雨流程
单幅图像去雨方法基于导向滤波将有雨图像分解为高频细节层和平滑基本层,使得分解得到的高频细节层包含大量雨滴条纹和图像背景中的细节信息,而平滑基本层包含少量雨滴条纹和细节信息且对比度较低。因此,提出自适应Gamma校正算法增强有雨图像的平滑基本层,解决导向滤波分解后平滑基本层对比度降低的问题。同时将高频细节层输入至SERNet去除雨滴,排除平滑基本层对于去雨效果的干扰,从而获取更加清晰的去雨图像。
2.1 自适应Gamma校正增强平滑基本层
为了解决平滑基本层对比度降低和亮度太高导致视觉效果变差的问题,需要对平滑基本层使用图像增强算法进行恢复。已有的去雨方法中较少采用图像增强算法对图像进行处理,仅有文献[10]应用非线性函数对图像进行增强处理,但该增强方法的处理效果不佳且并没有解决对比度降低的问题。而解决对比度降低问题的关键在于需要针对图像特点自适应地校正其中过亮或过暗区域,对比度的适度增强可使得图像在视觉效果上更加清晰且在细节表现和灰度层次表现上效果更好。因此,考虑到Gamma校正算法能够通过校正图像中过亮或过暗区域来改善图像的对比度和亮度,本文提出采用Gamma校正算法实现对平滑基本层的增强,Gamma校正的公式定义为
(RB)E=(RB)γ
(1)
式中:RB为有雨图像R的平滑基本层;E为图像增强;(RB)E为增强有雨图像平滑基本层的结果;γ为Gamma值。
分析式(1)可知,在利用Gamma校正算法对平滑基本层进行增强的过程中,γ的选取十分重要。图2展示了Gamma校正算法对于γ=0.04,0.10,0.20,0.40,0.67,1.00,1.50,2.50,5.00,10.00,25.00不同值时平滑基本层灰度值的变化过程,而为了方便计算将灰度值归一化至[0-1]。分析图2可知,当γ<1时,平滑基本层的高灰度值部分被压缩,低灰度值部分被拉伸,因此平滑基本层的整体亮度值提升从而对比度降低;而当γ>1时,观察到同γ<1时的情况相反,平滑基本层的整体亮度值降低从而对比度提高。
图2 Gamma校正算法取值分析
图3展示了当γ>1时Gamma校正算法在平滑基本层增强前后灰度直方图的变化。观察图3(a)和图3(b)的灰度直方图能够直观看出,当γ>1时直方图向左移动,所以平滑基本层亮度降低;同理γ<1时直方图将向右移动,所以平滑基本层亮度提高。
图3 平滑基本层的灰度直方图
通过上述分析可知,Gamma校正算法能够有效改善平滑基本层的亮度和对比度,但固定的γ取值较难实现对具有不同亮度和对比度的平滑基本层的增强。因此,提出一种自适应Gamma校正算法以增强平滑基本层。首先,将平滑基本层转换为灰度图像,并提取该灰度图像中像素点的总个数Q和各像素点的灰度值g以及灰度值为g的像素点个数Qg;其次,通过Gamma校正算法校正其灰度值即可改变其亮度进而增强平滑基本层的对比度,将平滑基本层的灰度均值与灰度区间[0~255]的中值127.5的比值作为γ值的选取依据。γ取值的公式定义为
(2)
2.2 利用SERNet对高频细节层去雨
导向滤波分解有雨图像得到高频细节层和平滑基本层后,仅需对更稀疏的高频细节层进行去雨处理,而雨滴特征提取是高频细节层去雨成功的关键环节。为了更好地提取高频细节层中的雨滴特征,本文提出了基于深度学习思想融合改进残差块和通道注意力机制的SERNet实现对高频细节层的去雨。
2.2.1 构建SERNet结构
深层的网络结构能够提供深层特征从而对高频细节层中的雨滴更加直观地表征,但深层的网络结构可能会造成反向传播中梯度消失的问题。因此,对残差网络[15]结构中的残差块进行改进并将改进的残差块叠加实现对SERNet的加深。首先,将原始残差块中快捷链接后的ReLU函数去除,以提升网络的收敛速度[16]。其次,原始残差块利用批归一化(batch normalization,BN)提升网络的收敛速度,但batch size仅能在取值较大时才能保证含有BN层的原始残差块取得较好的效果,而去雨问题的训练样本数量较少。
因此,改进残差块采用不受batch size大小影响的组归一化(group normalization,GN)代替原始残差块中的BN层,并将batch size设为10。图4对比了原始和改进后的残差块结构,其中Conv为卷积层,BatchNorm为BN层,GroupNorm为GN层。通过将多个残差块堆叠足够数量的卷积层,扩展每个尺度的感受野,可取得更好的去雨效果。
图4 残差块结构对比
SERNet的第一个卷积层从输入的高频细节层中提取出64×64大小的图像块,经卷积转换为512个特征图;其次,堆叠8个包含相同形式的残差块;然后,第二个卷积层在卷积操作后会将特征图中的大部分雨滴去除只保留图像细节信息,但其中部分图像细节信息可能会在卷积过程中丢失从而导致去雨后的图像模糊,为此提出将浅层特征图与深层特征图融合,以便在减轻梯度消失问题的同时获得更详细的图像细节信息;最后,通过反卷积层将特征图转换为高频细节层输入时的大小,得到最终去雨后的高频细节层。
由于网络在不同规模的卷积操作中可能会错误地将背景中的细节信息当做雨滴去除,因此受SE block[17]的启发,本文将通道注意力机制应用于提取到的深层特征,以便减少细节信息的错误去除。在第一和第二个卷积层后引入通道注意力机制,根据特征图之间的通道关系促使SERNet自动对特征进行校准,使得网络可以从全局信息出发选择性地放大有价值的特征通道同时抑制无用的特征通道,最终得到更精准的特征图,从而提高SERNet去雨的效果。SERNet的具体结构如图5所示。其中包括2个融合通道注意力机制的卷积层、8个改进残差块和1个反卷积层。
图5 SERNet总体框架
2.2.2 训练SERNet
为了获取有雨图像高频细节层与无雨图像高频细节层的映射关系,需要对SERNet进行训练。网络参数P={W1,W2,…,W11,B1,B2,…,B11}可以通过最小化有雨和无雨图像高频细节层之间对应的损失函数来优化,其中:W1,…,W11为为权值矩阵;B1,…,B11为偏置矢量。本文基于均方误差构造的损失函数定义为
(3)
式中:N为训练样本的数量;G(·)为网络映射;P为网络参数;G(RD,i;P)为第i个有雨图像的高频细节层RD去雨后的结果;RD,i为第i个有雨图像的高频细节层;OD,i为第i个有雨图像对应无雨图像O的高频细节层OD;F为Frobenius范数。
SERNet训练完成后,即可利用其实现对高频细节层的去雨,而为了获取清晰的去雨图像C,需要进一步将增强后的平滑基本层(RB)E和去雨后的高频细节层G(RD;P)进行融合,融合公式定义为
C=(RB)E+G(RD;P)
(4)
融合操作完成后即可得到最终的去雨图像,从而实现单幅图像去雨功能。
2.3 单幅图像去雨算法描述
算法名称:Rain Removal Algorithm for a Single Image。 Input:有雨图像; Output:去雨图像。
Step 1:利用导向滤波将输入的有雨图像进行分解,即可计算得到分解后的平滑基本层和高频细节层;
Step 2:基于自适应Gamma校正算法,实现对平滑基本层的增强;
Step 3:基于SERNet对高频细节层进行去雨处理;
Step 4:将Step2增强的平滑基本层和Step3去雨后的高频细节层融合,最终得到清晰的去雨图像。
3 实验与分析
3.1 实验条件及数据集
实验硬件采用Intel(R)Xeon(R)CPU E5-2620 v4@ 2.10GHz、内存64G、显卡型号NVINIA TITAN Xp;软件采用Ubuntu 14.04.5 LTS、CUDA 9.0、cuDNN 7、Python 3.6.7和TensorFlow1.8.0。
为了验证本文所提方法的有效性,选用单幅图像去雨研究领域内具有较高认可度的Rain100L、Rain100H和Rain12数据集进行合成图像去雨效果验证工作,利用从互联网获取有雨图像以及文献[12]提供的现实世界有雨图像进行真实图像去雨效果的验证工作。Rain100L是由含雨量较小的合成图像组成;Rain100H是由多种下落方向且雨滴较大的合成图像组成;Rain12是由逼真的渲染技术合成的含雨量较小的图像组成。Rain100L和Rain100H分别包含2000对合成图像,各自选取其中的1800对合成图像作为训练数据集,剩下的200对合成图像作为测试数据集。而Rain12仅包含12对合成的有雨图像,因此Rain12在Rain100L训练出的模型上进行测试。用Rain100L、Rain100H和Rain12数据集进行实验,可有效验证所提方法能够对大雨、小雨以及不同方向雨滴的进行去除,并验证所提方法具有良好的普适性。同时,利用现实世界的有雨图像对所提方法进行实验,可验证所提方法不仅可去除合成图像中的雨滴,也能够对现实场景中的雨滴进行有效去除,进一步验证了所提方法的有效性。
3.2 合成图像去雨实验与分析
为了测试本文方法在合成图像上的去雨效果,分别采用常用的峰值信噪比(peak sig-nal to noise ratio,PSNR)和结构相似性(structural similarity index,SSIM)[18]两个指标对图像质量评价指标进行评估。其中PSNR是基于去雨图像和无雨图像对应像素点间的误差,对图像整体的相似度进行评估,着重评价图像的颜色和失真程度,PSNR值越大表示图像失真越小且质量越高。SSIM是衡量去雨图像和无雨图像之间相似度的指标,应用亮度、对比度和结构三个不同标准评估两幅图像的相似度,SSIM值越大表示两幅图像越相似,去雨效果越好。
3.2.1 本文方法的自身对比实验结果及分析
为了充分验证本文方法在单幅图像去雨方面的可行性和有效性,采用上述3个数据集中最复杂的大雨天气且具有5种雨滴方向的Rain100H数据集进行了3组对比实验:第1组为验证改进的残差块效果实验;第2组为验证通道注意力机制的效果实验;第3组为验证自适应Gamma校正算法增强效果实验。
为了保证实验的可比性,除验证部分外的网络结构均保持一致。图6展示了基于不同网络结构的实验结果。其中,图6(a)、6(b)分别是有雨图像和无雨图像,图6(c)是将SERNet中改进残差块替换为原始残差块的网络的去雨结果,图6(d)是去掉SERNet中通道注意力机制的网络的去雨结果,图6(e)是SERNet的去雨结果。此外,为了更直观地观察去雨效果和图像处理后的细节,随机选择图像中的任一部分区域放大并显示在图像的右下角。从中可以看出图6(c)丢失图像部分细节信息且存在雨滴残留,图6(d)中仍存在雨滴残留且图像由于过度平滑而变得模糊,而图6(e)则保留了更多的细节且雨滴去除干净,其去雨效果最好。
表1和表2分别展示了不同网络结构在PSNR和SSIM两个指标上的量化评估结果,其中黑体数值为最优值。
图6 不同网络结构的结果比较
根据表1和表2结果可知,融合改进的残差块和通道注意力机制的SERNet处理有雨图像的PSNR和SSIM明显优于原始残差块或不引入通道注意力机制的网络。在Rain100H数据集上进行测试可知,网络采用改进残差块的PSNR和SSIM的平均值分别比采用原始残差块时高3.250 1和0.157 0,而网络引入通道注意力机制的PSNR和SSIM的平均值分别比不引入时高6.647 8和0.141 0。由此可见,SERNet的处理结果要优于所对比的方法,从而验证了采用改进残差块和引入通道注意力机制的有效性。
表1 不同网络结构对应的PSNR
表2 不同网络结构对应的SSIM
为了验证本文所提自适应Gamma校正算法在单幅图像去雨方面的有效性,分别对有无使用自适应Gamma校正算法增强平滑基本层进行了对比实验。图7展示了有无使用自适应Gamma校正算法增强平滑基本层的去雨图像的结果。从图7可以看出未使用自适应Gamma校正算法增强的图像对比度明显比使用算法增强的图像的对比度低,同时观察对比图(b)和图(d)发现经过自适应Gamma校正算法增强的图像更接近于无雨图像。
表3和表4展示了有无自适应Gamma校正算法在PSNR和SSIM两个质量评估指标上的量化评估结果。
表3 有无自适应Gamma校正对应的PSNR评估
表4 有无自适应Gamma校正对应的SSIM评估
分析表3和表4结果可知,使用自适应Gamma校正算法增强图像的PSNR和SSIM都高于未增强时的结果。在Rain100H测试数据集上,自适应Gamma校正增强有雨图像的PSNR和SSIM的平均值分别比未增强时高10.3324和0.1113。由人眼直观观察也可以看出,增强后的结果图像明显更接近于无雨图像,同时PSNR和SSIM也都能验证使用自适应Gamma校正算法增强图像后的结果更优。
3.2.2 本文方法与已有方法的对比
为了更加合理地评估本文方法,将其与单幅图像去雨领域中5种比较有代表性的方法分别在Rain100H、Rain100L和Rain12数据集上进行对比。5种去雨方法分别是文献[10]的DerainNet方法、文献[11]的DDN方法、文献[12]的JORDER方法、文献[13]的DID-MDN方法和文献[14]的ResGuideNet方法。为了保证对比的合理性,所有实验代码均选用文献作者提供的源代码且与最优参数保持一致。图8展示了本文方法与5种代表性方法的对比结果。其中,图8(a)~图8(c)分别为Rain100H、Rain100L和Rain12数据集的某一实验结果。从Rain100H数据集的实验结果可看出:DerainNet方法有雨滴残留且图像细节信息丢失;DDN方法同样有雨滴残留和细节丢失问题,但效果优于DID-MDN方法;JORDER方法尽管去除了几乎全部雨滴但图像较为模糊;DID-MDN方法尽管去除了绝大多数雨滴但树叶部分的雨滴仍未被去除;ResGuideNet方法虽然保留了大部分图像细节但仍有雨滴残留;本文方法去除了全部的雨滴且细节信息保留完整。从Rain100L数据集的实验结果可看出:DeramNet和DDN方法都存在雨滴残留且图像模糊;JORDER方法尽管去除了几乎全部的雨滴,但树叶部分较为模糊;DID-MDN和ResGuideNet方法尽管去除了绝大多数雨滴但老虎头部的部分细节受雨滴影响导致其被错误去除;本文方法去除了全部的雨滴且保留了图像的细节信息。从Rain12数据集的实验结果可看出:DeramNet DDN、JORDER和ResGuideNet方法在森林部分残留较为明显的雨滴;DID-MDN方法尽管去除了几乎全部雨滴,但图像较为模糊;本文方法没有雨滴残留且图像最为清晰。由此可见,尽管文献中的5种方法去除了大多数雨滴,但仍存在不同程度的雨滴残留和图像细节丢失问题,而本文方法几乎去除了全部的雨滴且图像清晰,从而验证了本文方法的可行性和有效性。
表5给出了不同方法在3种数据集上的量化评估结果,其中加下划线字体数值为次优值。
表5 本文方法与已有方法的PSNR和SSIM评估
图8 本文方法与已有方法在合成图像上的比较
图9 本文方法与已有方法在真实图像上的比较
由表5可以看出,在Rain100H和Rain100L数据集上本文方法处理有雨图像的PSNR和SSIM明显优于其他5种方法的处理结果,同时这也符合上文人眼直观观察的评估结果。但在Rain12数据集上,JORDER的PSNR值略高于本文方法,这是因为该方法在去雨过程中添加了去雾算法。
3.3 真实图像去雨实验与分析
为了验证本文方法同样适用于现实世界的有雨图像,将本文方法和其它5种去雨方法对现实世界的真实有雨图像进行了性能测试。由于现实世界的有雨图像不存在无雨图像作为对比,因此现实世界图像的去雨效果通过观察的方式进行评估。图9展示了本文方法与其他5种方法的去雨结果。其中,图9(a)为有雨图像,图9(b)~图9(f)分别为文献中5种的方法的处理结果,图9(g)为本文方法的处理结果。从图9可以看出,图9(b)~(e)的方法普遍存在雨滴残留且图像模糊等问题,图9(f)的方法尽管去除了绝大多数雨滴,但图像同样模糊,而图9(g)本文方法的去雨效果最为清晰且细节信息保留完整,视觉效果最好,从而进一步验证了SERNet方法的可行性和有效性。
由实验可知,本文方法适用于背景细节信息复杂的有雨图像,可以有效减少背景细节信息的丢失,从而更好地保留背景细节信息。同时,对于大雨图像数据集和真实图像中的大雨天气本文方法也有较好的适用性。
4 结 论
提出一种基于深度学习思想结合图像增强技术融合残差及通道注意力机制来实现的单幅图像去雨方法。主要贡献:(1)提出一种融合改进残差块和通道注意力机制的深度卷积神经网络实现高频细节层去雨方案,该方案不但可以更好地获取深层的雨滴特征,而且有助于保留更多的图像细节信息。(2)提出一种自适应Gamma校正算法增强平滑基本层的方法,该方法有效改善了平滑基本层对比度降低导致图像模糊的问题,同时改变了现有去雨方法中图像增强技术运用较少的现状,是一种有益的尝试。与已有代表性的去雨方法相比,本文方法在确保去雨效果的同时,保留了更多的图像细节信息。