APP下载

基于多通道分离整合的多尺度单幅图像去雨算法

2021-12-18郭杰龙梁培栋

计算机与现代化 2021年12期
关键词:尺度卷积特征

汪 帆,魏 宪,郭杰龙,梁培栋

(1.福州大学电气工程与自动化学院,福建 福州 350108; 2.中国科学院海西研究院泉州装备制造研究所,福建 泉州 362216; 3.福建(泉州)哈工大工程技术研究院,福建 泉州 362000)

0 引 言

雨天是一种常见的天气状况。雨痕的加入会让图像模糊失真,特别是大雨产生的雨痕叠加效果会对图像背景造成严重遮挡,导致得到的图像清晰度和能见度降低,造成计算机视觉任务性能下降。故研究图像去雨任务,可以提升图像的质量,能对自动驾驶和道路监控等领域有着很大的帮助,具有较好的应用前景。

雨图可以看成是由雨的条纹和雨滴覆盖在真实图像形成的。对于大雨,由于光线的散射存在,会出现夹杂在雨中的雾霾现象,从而把图像模糊化。因此,普遍的去雨思路[1]是将雨纹和雨滴形成的遮罩从雨图中分离出来。图像去雨任务模型可以理解为:

X=G+R

(1)

其中,X表示带雨的图,可以分解为真实图像背景G和雨痕遮罩R。

多尺度特征包含着重要的信息,然而,普通的卷积只能获得局部的空间信息。为了获得更大的感受野,卷积神经网络一般采用不同卷积层的堆叠构成深层网络或者利用不同分辨率的特征图来提升多尺度的表达能力,这无疑会带来冗余的计算,为网络带来负担。本文提出的方法,可以利用通道间的细化,依赖相邻空间的位置信息提取结构,最终对输出特征进行整合,从而获得大幅度感受野的提升。利用通道分离后再对特征图的复用,可以更好地提取多尺度信息。在图像去雨任务中,不同的尺度,可以更好地捕捉到雨图中不同雨线的信息,更为高效且有用地提升了网络多尺度表达能力,从而提高图像去雨效果。

本文提出一种基于多通道分离整合的多尺度单幅图像去雨方法,首先将一个较大输入输出通道的3×3卷积分离为多个小输入输出通道的卷积,再通过卷积层之间的层内连接,产生多尺度级联架构,然后进行通道整合,这能大幅度增加感受野,从而增强模块的特征提取能力,可以更好提取雨图纹理的局部信息。同时利用渐进网络来多次计算探索全局信息,再通过特征在不同阶段存在的连续性,探寻空间维度的雨纹,通过协同训练,构成多尺度渐进循环网络。本文模型在常用雨天数据集和自动驾驶雨天数据集上进行定性和定量的评估,实验表明,算法性能均优于现有的方法。

1 研究现状

1.1 单幅图像去雨方法

单幅图像去雨方法分为2类:一是以模型驱动的传统方法;二是以数据驱动的深度学习方法。模型驱动的方法主要有物理模型和数学推导方式、基于先验知识的去雨方法和基于稀疏表示的方法。Chen等人[2]提出从矩阵到张量结构的低秩模型用于发现雨条纹。Luo等人[3]通过判别稀疏编码的方法来分辨雨点和非雨点。Li等人[4]利用高斯混合模型的先验信息来去除雨条纹。Gu等人[5]利用卷积分析和合成稀疏表示提取雨纹。然而,传统去雨方法运算量复杂,去雨效果也没有基于深度学习的去雨方法好。现今阶段,深度卷积神经网络已经成为单幅图像去雨领域的主流。Fu等人[6]基于ResNet[7]结构建立一个全局连接映射关系,偏向于设计网络去雨结构来提升性能。Zhang等人[8]提出一种基于密度感知的稠密连接卷积神经网络用于处理不同雨水条纹的堆叠。Li等人[9]采用递归神经网络架构将去雨任务分为多阶段以提升效果。Ren等人[10]通过反复展开浅层的ResNet结构,用渐进循环结构达到简单有效的效果。Wang等人[11]通过跨尺度方式将不同子网结构融合一起增强了网络去雨能力。

1.2 多尺度模型

多尺度特征包含大量信息,能够提高神经网络信息提取能力,从而提升网络性能。为了增强网络的特征抽象判别能力,Lin等人[12]采用多层感知器卷积代替原始的卷积层。此外,Szegedy等人[13]利用一个Inception模块来提取多尺度特征。Huang等人[14]设计与所有网络层互相紧密连接的结构,从而更有效地利用特征并加强了信息传递。Huang等人[15]集成了具有密集连接的多尺度网络结构以进行图像分类。Sun等人[16]在保留不同深度的多尺度特征的同时,也通过上采样机制对彼此进行改进以增加特征多样性,这已被证明可以有效地进行目标检测。随着卷积神经网络层数的增加,Yu等人[17]开发了迭代深度聚合模块来聚合和细化不同的比例尺和分辨率,从而增强了多尺度的表示能力。Sun等人[18]提出了交换单元来集成不同的子网络,可以从具有并行多尺度的其他子网络中获取特征信息。Liao等人[19]在多尺度图卷积网络中采用Lanczos算法,有利于矩阵幂的有效计算,从而有利于多尺度信息的收集。此外,Gao等人[20]在更细粒度的层面上利用多尺度来提取特征并拓宽了感受野。

2 基于多通道分离整合的多尺度图像去雨算法

2.1 多通道分离整合的多尺度模块

分组卷积[21]和深度可分离卷积[22]已经证明了将特征图分组,能带来网络效率的提升。然而分组卷积,并没有不同组之间特征图的交互,会损失特征间的空间信息。深度可分离卷积将分组数等于通道数,借此减少计算量,再试图通过逐点卷积,通过1×1卷积运算,将上一步的特征图重新加权组合生成新的特征图。这种做法虽然提高了计算效率,却没有解决不同通道间联合特征信息丢失的问题,这会造成模型性能的减弱。考虑到通道间空间信息交互的重要性,本文提出一种多通道分离整合的多尺度模块,这既能保证高效的特征提取能力,也能提升模型的性能。

模型结构示意图如图1所示。具体来说,对于一个给定的图像,本文的方法首先把特征图集X平均分为4份,分别是X1、X2、X3、X4。然后依次把特征图子集送入相应的3×3卷积的卷积层中,每个卷积的输入输出通道数均为原先卷积的1/4。每个特征图子集Xi对应的卷积计算定义为Fi(X),其输出为Yi:

图1 本文多尺度残差结构与残差结构对比

(2)

首先,每一个特征图子集X1通过一个3×3卷积后得到Y1,随后得到的每一个Yi,都是由每一个子特征图Xi和上一个特征图子集的输出Yi-1相叠加,再通过一个3×3卷积后得到的。这种多重组合提取特征,上一个特征图子集会被多次提取特征,最终可以得到比原来更大的感受野,从而使得模块的输出也包含了各种大小和尺度的感受野,这样能够获得更多的信息。

本文的多尺度残差模块首先通过通道分离的方法将特征图分块,为了获得更多的局部和全局信息,将分离的特征图以一种多重组合特征复用的形式通过4个3×3卷积,最后把得到的输出拼接起来得到Y,为了使拼接后输出效果更好,再通过一个1×1卷积来整合信息,从而达到比原先卷积更好的效果。最后通过残差学习提升模块效率。

2.2 渐进循环网络

一个网络如果将多个子模块直接堆叠起来,势必会导致网络参数量的增大,甚至会有过拟合的风险。本文设计的多阶段的渐进循环网络结构,可以在减少参数量的情况下,逐步捕捉全局信息,在最后一个阶段尽可能输出接近真实背景的图像。

渐进网络结构如图2所示,其中分为3个部分:1)一个用于接收网络输入的卷积层;2)5个用于提取特征的多尺度残差结构fmtscale;3)一个用于接收网络输入的卷积层。并且本文引入一个循环状态St,以及一个循环操作,那么循环结构的操作第t阶段可以表示为:

图2 渐进循环网络结构

(3)

其中,Xrain表示最开始的输入的雨图,Yt-1表示t-1的输出,Xt表示t中间状态的输入,St-1表示t-1的循环状态,Yt表示t状态的输出。fin、fmtscale、fout和fre在每个阶段操作都是相同的,参数设置一样。

单纯以t-1的输出Yt-1作为t状态的输入,效果和不分阶段的网络一样,让Yt-1和原始雨图Xrain通过fin拼接操作得到中间状态的输入Xt,会得到更好的去雨结果。然后让Xt和St-1联合起来通过循环层fre,和门控循环单元(Gated Recurrent Unit, GRU)[23]相比,循环层采用长短时记忆(Long Short-Term Memory, LSTM)[24]的效果更好。以St作为t状态的输入,通过多尺度模块fmtscale,接着通过输出得到最终的结果,形成渐进循环网络。

2.3 多通道分离整合的多尺度渐进循环网络

将本文提出的多尺度模块插入渐进循环网络中,构建多通道分离整合的多尺度渐进循环网络,如图3所示。具体来说,首先通过通道分离部署多尺度模块,能够更好地提取多尺度局部空间特征。接下来,为了获得与局部信息互补的全局上下文信息,使用渐进循环网络来关联去雨任务中多阶段的局部与全局空间的特征表示。整体网络利用5个多尺度残差结构,将去雨任务分成T=6阶段任务来构建去雨网络。

图3 多通道分离整合的多尺度单幅图像去雨网络结构

2.4 损失函数

训练去雨网络最广泛使用的损失函数是均方误差(MSE),然而有时候MSE损失函数会得到过于平滑的结果,于是本文采用更有效的负SSIM损失函数来训练网络。对于渐进结构有T个阶段,有对应的T个输出,用X1,X2,…,XT来表示,Xgt表示没有雨的原始图,对最终输出XT进行监督,那么负SSIM损失函数可以表示为:

L=-SSIM(XT,Xgt)

(4)

3 实验及结果分析

为了验证本文方法在单幅图像去雨任务上的有效性,将本文方法与现有方法进行对比,其中包括一个基于传统优化的方法GMM[4]和4个基于深度卷积神经网络的方法DDN[6]、RESCAN[9]、PReNet[10]和DCSFN[11]。充分的实验证明了本文方法的有效性。

3.1 实验数据

因为现实场景中很难得到对应的原图和雨图,故采用合成的雨图数据集是现在的主流做法。本文选用3个广泛使用的合成的数据集Rain100H[25]、Rain100L[25]和Rain800[26]。Rain100H是难度很大的大雨数据集,在该数据集上训练具有说服力。Rain100H和Rain100L均由1800张图片构成训练集以及200张图片构成测试集。Rain800由700张图片构成训练集以及100张图片构成测试集。

目前没有用于自动驾驶图像去雨任务的数据集。本文利用人工合成手段生成一个自动驾驶雨天数据集,这对雨天自动驾驶图像的恢复有着重要的意义。本文采用的数据基于BDD100K[27]数据集,这是目前规模最大的交通数据集,通过随机挑选该数据集的1000张图片作为真实图片,图片的分辨率为1280×720,人工合成不同雨天效果的图像。本数据集将900张图片用作训练集,100张图片用作测试集,并将其取名为BDD1000。

3.2 训练配置和评价指标

实验的硬件环境为:Intel(R) Xeon(R) Gold 5220 CPU @ 2.20 GHz处理器,256 GB内存以及4个NVIDIA GTX 2080Ti GPU。软件环境为Python3.6和深度学习框架Pytorch,开发工具为PyCharm 2020。本文使用适应性矩估计算法(Adaptive moment estimation, Adam)在100个周期内以12个批次大小训练模型。每个图像随机裁剪为100×100的补丁。初始学习率设置为0.001,在30、50和80个周期将其除以5进行衰减。为了实验的公平性,所有网络均以相同的训练参数实施。

为了定量评估本文算法的性能,本文采用常用的峰值信噪比(Peak Signal-to-Noise Ratio, PSNR)和结构相似性(Structural SIMilarity, SSIM)作为度量标准,用于去雨图像与原图进行比较。通常情况下,2个测量指标的数值越高,表示图像去除雨线的效果越好。

3.3 常用数据集实验评估

本文用3个广泛使用的数据集训练本文的模型,分别在相应数据集下与去雨方法进行对比。定量比较结果如表1所示,本文方法均取得最好的性能。比如在Rain100H数据集中,本文方法的PSNR比GMM、DDN、RESCAN、PReNet和DCSFN分别高出15.76 dB、7.76 dB、3.42 dB、0.57 dB和2.49 dB;在Rain800数据集中,本文方法的PSNR比GMM、DDN、RESCAN、PReNet和DCSFN分别高出5.89 dB、3.12 dB、3.07 dB、0.71 dB和1.08 dB。

表1 不同算法在常用数据集上定量比较

本文算法在Rain100H上的可视化对比结果如图4所示。可以明显看到单幅图片的PSNR,本文算法也是高出其他算法的。基于传统优化思想的GMM,对于大雨图片,几乎无能为力。基于深度学习的DDN恢复的图像相比GMM图像质量好了很多,但仍然有很多雨痕残留。RESCAN去除雨痕的同时,有很多有色噪声出现。DCSFN和PReNet会降低图片的对比度,同时DCSFN生成的图像并不平滑,有很多噪点,PReNet生成的图像细节不够清晰且伴随着额外的光晕噪声出现。由于本文方法对多尺度特征的充分提取,并且把握全局和局部信息,能在保留原有图像细节的基础上,降低噪声出现的可能性。

(a) 雨图 (b) GMM

3.4 自动驾驶雨天数据集实验评估

为了探索本文去雨算法对自动驾驶领域的帮助,本文自建了一个自动驾驶雨天数据集(BDD1000)。在该数据集训练所提模型,实验定量比较结果如表2所示,本文方法均取得最好的性能。本文方法的PSNR比GMM、RESCAN、PReNet和DCSFN分别高出12.25 dB、5.9 dB、1.51 dB和5.14 dB。

表2 不同算法在自动驾驶雨天数据集上定量比较

本文算法在BDD1000数据集上的可视化对比结果如图5所示。可以清楚看到,本文算法在评价指标上取得了明显的优势。GMM算法处理这种雨图,比较困难,图像恢复效果不好。RESCAN恢复后的图像,残留着很多肉眼可见的雨痕。DCSFN生成的图像有多余噪声线条出现。PReNet产生的图像,有加重颜色深度的倾向,比如出现黑斑。本文算法因为关注多尺度信息,恢复图像时候会更注重细节,再加上渐进循环网络,提取全局信息,最终获得既保留原有图像细节,又注重整体表现的图像。

(a) 雨图 (b) GMM

3.5 分离实验探究

为了探究多通道分离整合的多尺度网络模块中,卷积核的个数对效果的影响以及模块的收敛性。本文将包含4个卷积核的多尺度结构命名为多尺度残差结构A,将包含3个卷积核的多尺度结构命名为多尺度残差结构B。和结构A相比,结构B中去掉了第1个子通道对X1的特征提取,在第2个子通道的输出是X1和X2的叠加,实际上没有放弃对X1的特征提取,减少一个卷积核意图降低特征重复用的频率,避免冗余计算。本部分试图探究减少一个卷积核,能否避免网络产生过拟合。2个多尺度残差结构对比如图6所示。

图6 多尺度残差结构对比

将不同结构在Rain100H、Rain100L和Rain800数据集上训练,和基准方法定量比较如表3所示。从结果上看,本文提出的2种多尺度残差结构和基准方法相比,在不同数据集上的PSNR都有提升。多尺度结构A的PSNR都是高于多尺度结构B的PSNR。实验结果说明减少一个卷积核,会对多尺度结构提取特征造成影响,造成网络提取多尺度信息的能力变差。

表3 不同结构在3个数据集上和基准方法定量比较

图7展示不同结构在Rain100L数据集训练过程中的PSNR曲线,用来探讨模块的收敛性。可以发现多尺度模块A的训练曲线,全程都是优于基准网络和多尺度模块B的,这说明多尺度模块带来极强大的特征提取能力,为网络收敛带来了很大的帮助。多尺度模块B从第40次训练开始超过基准网络但最终没有达到多尺度模块A的水平,这说明多尺度模块B因为少了一个卷积核,造成其多尺度信息特征提取能力没有多尺度模块A强大。综上所述,引入多尺度模块A的网络,模型性能更优越,去雨效果更好。

图7 多尺度模块训练PSNR曲线对比

4 结束语

本文提出了一种多通道分离整合的多尺度网络模型,在图像去雨任务上取得了很好的效果。所提模型通过通道分离的形式,利用卷积层之间的相邻连接,极大地丰富了感受野,充分捕捉空间信息,多次提取特征。然后将通道间的输出进行整合,从而达到更好的效果。同时使用渐进循环网络,分阶段获取全局信息和上下文信息,逐步使得雨图恢复效果变得最好。实验结果表明本文算法相对于现有的算法,在常见的去雨数据集和自建的自动驾驶雨天数据集进行训练,人眼主观判断和图像客观指标都有明显的优势。并且,自建的自动驾驶雨天数据集也能让图像去雨算法对自动驾驶领域产生积极影响。

猜你喜欢

尺度卷积特征
基于3D-Winograd的快速卷积算法设计及FPGA实现
财产的五大尺度和五重应对
如何表达“特征”
从滤波器理解卷积
不忠诚的四个特征
基于傅里叶域卷积表示的目标跟踪算法
抓住特征巧观察
宇宙的尺度
9
一种基于卷积神经网络的性别识别方法