计算机系统应用  2019, Vol. 28 Issue (11): 202-207   PDF    
单张图像去雨的多流细节加强网络
安鹤男, 涂志伟, 张昌林, 李蔚, 刘佳     
深圳大学 电子科学与技术学院, 深圳 518061
摘要:对于低等级的计算机视觉任务来说, 图像去雨一直是一个热点问题. 由于图像中雨线的密度不均一, 导致单张图片中去雨成为极富有挑战性的问题. 针对目标图像重点关注的两个部分: 图像的整体结构和图像的细节, 本文提出一种新颖的多流特征融合的卷积神经网络算法, 通过多样的网络框架呈现优越的性能. 该网络算法采用三条分支网络提取复杂多向的雨线特征, 并运用级联的方式特征融合, 通过与原图像结合去除有雨图的雨线, 再经过细节加强网络获得高质量的无雨图. 在合成的数据集以及真实雨图集下的去雨性能表明, 所提出的算法与现有的基于深度学习的去雨算法相比, 能够在去除雨线的同时保留更多的细节, 保证了图片的质量.
关键词: 图像去雨    计算机视觉    深度学习    卷积神经网络    
Single Image De-Raining Using Multi-Stream Detail Enhanced Network
AN He-Nan, TU Zhi-Wei, ZHANG Chang-Lin, LI Wei, LIU Jia     
College of Electronic Science and Technology, Shenzhen University, Shenzhen 518061, China
Abstract: For low-level computer vision tasks, image de-raining has always been a hot issue. However, due to the uneven density of rain lines in the image, it is a very challenging issue to remove rain from a single image. Attention to the target image often requires attention to two parts: the overall structure of the image and the details of the image. In this regard, a novel multi-stream feature fusion convolutional neural network algorithm is proposed. It presents superior performance through various network frameworks. The network algorithm uses three branch networks to extract complex multi-directional rain line features, concat features and combines with the original image to remove rain. The detail enhanced network can obtain high quality without rain. The de-raining performance under the synthesized dataset and the real rain dataset indicates that the proposed algorithm can preserve more details while removing the rain line than the existing deep learning-based rain removal algorithm, and it can keep the high quality of the picture.
Key words: image deraining     computer vision     deep learning     Convolutional Neural Network (CNN)    

雨作为一种常见的气象现象, 不仅影响人类的视觉感知, 并且严重干扰计算机视觉系统. 在诸多经典和当代流行的视觉算法中, 需要高质量清晰的图像作为输入才能正常工作. 例如物体检测与跟踪, 当输入的图像带有雨线、雪和雾等, 那么物体检测与跟踪算法很可能达不到预期的效果, 如果是无人驾驶汽车场景, 很可能导致事故的发生. 随着雨势增大, 雨线密度也急剧增大, 因此, 设计出能够有效去除图像中雨线的算法意义重大, 十分必需.

多篇文献提出的去除雨线的方法, 大致可以分为两类: 一类是以传统的模型为主的去雨思路, 另一类是运用深度学习的思想进行去雨. 传统方法致力于用模型来区分雨线层和背景层. Kang等人[1]把有雨图像分解为高频部分和低频部分, 通过稀疏字典学习的方法对高频部分进行处理, 提取出高频中的雨线并去除. Huang等人[2]提出一种自我学习的方法去自动区分高频部分中的雨线部分. Luo等人[3]提出一种判别稀疏编码方法, 通过使雨层的系数向量变得稀疏, 从而达到区分背景和雨线的效果.

而近年来, 有许多作者采用深度学习的方法去雨. Shen等人[4]设计了一个基于小波变换[5]和暗通道原理[6]的卷积神经网络来提升去雨效果. Li等人[7]采用循环神经网络算法来进行去雨操作. Yang等人[8]提出了一种检测雨线并去雨的联合网络, 他们使用多种不同尺度的网络去捕抓雨图中的雨线信息, 再经过卷积神经网络, 能够有效的检测到雨线并去除雨线.

综合分析以上的算法, 不难发现, 整体思路都是尽可能的检测到雨图中的雨线, 并提取出雨线, 然后和雨图做差得出去雨图, 然而去雨图的一些细节不可避免的会丢失, 造成图像使用效能降低, 对此, 本文提出一种多流细节加强网络, 通过多条不同尺度和结构的网络来提取雨线特征, 然后融合得到的特征块传入到去雨网络中, 得出的初步去雨图经过随后的细节加强网络来提高图片的质量.

1 图像去雨方法介绍

本文所提出的去雨网络如图1所示, 为了更好的细化分析去雨算法, 本节主要介绍网络的基本理论模型, 介绍不同尺度和结构的特征提取网络以及细节加强网络.

图 1 多流细节加强网络

1.1 基本理论

传统的有雨图的模型[9]主要包含背景层和雨线层两部分, 可以用以下公式表示:

$O = B + R$ (1)

其中, O为输入的有雨原图像, B为背景层, R为雨线层. 不难发现, 大量的方法都是基于这个模型, 通过移除有雨图像中的雨线来获得纯净的无雨图. 式(1)简单的把雨线层作为单一层, 往往认为雨线只有一种, 但在实际生活中, 雨线方向是变换多样的, 并且由于雨线在成像镜头的焦平面不同, 远处的雨往往比较模糊, 所以考虑到雨线的多样性, Yang等人[8]提出一种新的扩展雨线模型:

$O = \lambda \left(B + \sum\nolimits_{t = 1}^S {{R_t}} \right) + (1 - \lambda )A$ (2)

其中, Rt表示不同的雨线层, t表示雨线层索引, S表示雨线层数的最大值, A为全局环境光线, λ为大气传播系数, 此模型能够更好地表示真实的雨线特点.

1.2 多流特征提取网络

采用不同的网络规模对图片进行特征提取, 并进行特征融合[10], 往往能够更好的表示图像中的目标及背景. 特征融合的方式有多种, 特征图逐点相加, 逐点相乘或者在深度上级联拼接等. 考虑到雨线特征的多样性, 例如, 有的雨图雨点小, 有的雨图会形成明显的雨线, 所以针对小的雨线, 采用小的卷积核尺寸(小的感受野), 对于明显地更长的雨线采用更大的卷积核尺寸(更大的感受野). 综合考虑, 本文使用3条不同尺度与规模的特征提取网络来提取雨线的特征.

深度卷积编解码网络[11]能够非常有效地处理图片的噪声问题, 基于此, 本文设计的特征提取网络中, 两条支路采用编解码方式, 并且考虑到深层特征具有较大的感受野, 能够提供上下文信息, 所以在单条网络内部把深层特征与浅层特征相融合, 使得网络能够更好的区分雨线及背景, 达到更加准确地表示雨线特征的效果.

本文设计的特征提取网络细节如下: (1)第一条支路(图1左下角)使用尺寸大小为7×7的卷积核, 起始的两个卷积层并不改变形状, 接下来的两个卷积层使用平均池化层进行下采样操作, 最后两个卷积层使用近领域填充方式进行上采样操作, 并且将深层特征与浅层特征相融和. 在文章模型的调试过程中, 受到Desnet[12](密集神经网络)的启发, 以及与同样加入了密集网络思路的Shen等人[4]和Zhang等人[10]去雨效果的对比, 发现在上采样的过程中加入密集网络思路效果更佳. (2)第二条支路依旧采用编解码方式进行特征提取, 与第一条支路不同的是, 使用的卷积核尺寸为5×5. (3)第三条支路并不采用编解码方式, 仅仅使用6个不改变特征图尺寸的卷积层, 且卷积核的尺寸大小为3×3. 具体构造如图1所示.

1.3 细节加强网络

对于图像去雨任务, 分析发现, 图像的背景细节在小密度雨线的影响下保留的细节较多, 所以大部分的去雨方法都能够很好的处理此类问题, 但对于在大密度的雨线影响下, 由于背景细节遮蔽太严重, 许多去雨方法处理出来的背景图, 细节丢失太严重, 所以考虑在去雨网络后面加上一个细节加强的网络来保证图片的质量. Pan等人[13]提出一个对于低层次的计算机视觉任务的基本处理框架思路. 图像可以分为两部分, 整体的图像结构和细节. 原图经过去雨网络处理后的去雨图, 可以作为图像的整体结构估计.

通过卷积操作提取的特征信息一直在局部感受野中, 而最近有一些方法通过加强空间编码的方式提高了网络的感受能力, 例如Squeeze-and-Excitation[7,14,15](压缩-激励)网络层, 通过精确的建模通道之间的卷积特征的相互依赖性来提高网络的表达能力. SE网络层能够让网络模型对特征进行校准, 使网络从全局信息出发来选择性的放大有价值的特征通道并抑制无用的通道特征. SE网络层构造如图2所示.

图 2 SE层结构

输入的图像经过第一个卷积层得到特征图, 传入SE层中先进行压缩操作将特征图聚合获得通道描述器, 这个通道描述器嵌入了对通道层次的特征表述的全局分布. 然后经过激励操作, 通过基于通道依赖性的自选门机制对每个通道进行权值的评比, 放大有价值的特征通道信息并抑制无用的特征通道.

本文提出一种新颖的思路, 将SE网络层嵌入到ResNet[16]网络中, 并替换掉批量归一化层(BN). 在卷积网络中, BN层使得每一个特征层能够归一化并使得它们具有相同的分布. 但由于去雨网络在不同雨线的形状和方向上进行去雨操作, 希望在不同的通道上保持分布的不同, 所以替换BN层, 并且通过加入SE网络层的改进型ResNet网络能够放大有用的背景细节信息并抑制去雨痕迹信息, 从而达到加强整体的细节信息的效果. 细节网络如图1右下角所示.

1.4 损失函数

图1所示, 本文的多流支路细节加强网络主要由两部分组成: 特征提取网络和细节加强网络. 为了更好的训练每个网络, 所采用的网络模型需要分开计算每个网络的损失函数. 特征提取网络及细节加强网络的损失函数如下:

${L_S} = \frac{1}{N}{\rm{ }}\sum\nolimits_{i = 1}^N {||{X_i}} - {f_s}({X_i},W,b) - {Y_i}||_F^2$ (3)
${S_i} = {X_i} - {f_s}({X_i},W,b)$ (4)
${L_X} = \frac{1}{N}{\rm{ }}\sum\nolimits_{i = 1}^N {||{S_i}} + {f_d}({S_i},W,b) - {Y_i}||_F^2$ (5)

其中, N为一次程序处理图片的数量, ||▪||F为弗罗贝尼乌斯范数(Frobenius norm), Xi表示第i次输入的有雨图像, Yi为其对应的标签(无雨图), fs代表特征提取网络, fd表示细节加强网络, Si为经过雨线特征提取网络后得出的初步去雨图. 故整体的损失函数为:

$L = \alpha {L_s} + \beta {L_x}$ (6)

其中, α, β为各个损失函数权重比例.

2 实验分析与结果

为了更好得评估所提出的多流细节加强网络的去雨性能, 在本节会介绍网络模型的细节参数部分, 并且和当前一些流行的去雨方法进行了比较, 例如DJRHR-Net[4], JORDER[8], RESCAN[7], 使用的测试集包含合成的图片以及真实雨图. 去雨的性能还可以从峰值信噪比(PSNR[17])和结构相似度(SSIM[18])的数据量化体现出来. PSNR是最普遍和使用最为广泛的一种图像客观评价指标, 衡量图像失真或是噪声水品的客观标准, 数值越大表示失真越小. SSIM是衡量两幅图像相似度的指标, 是一种全参考的图像质量评价指标, 分别从亮度、对比度、结构3方面度量图像相似性, 数值越大表示失真越小.

2.1 数据集

由于从现实世界中获取比较好的有雨图, 无雨图相对应的数据是非常难的, 所以训练所使用的数据集都是来自合成的. Li等人[7]和Zhang等人[10]提供了大量的合成数据集, 并且雨线密度覆盖非常广, 所以本文采用他们的数据集. 由于本文侧重体现在高密度雨线图的细节加强, 所以训练时所使用的图片为Zhang等人[10]数据集中大雨部分的4000张图片作为训练集. 200张左右的图片作为本文的测试集. Li等人[7]和Zhang等人[10]也提供了真实雨图集, 并且这些雨图包含复杂的雨线, 故采用他们提供的真实雨图集进行测试.

2.2 训练配置

本文使用4000张配好对的512×512的图片进行训练, 使用的服务器配置含有4张1080Ti显卡, 采用Pytorch框架. 设置的最大迭代次数为400 000, 特征提取网络的卷积核数量由64-32-64个数变换, 细节加强网络的卷积核数量固定为64个, 梯度下降的优化算法使用ADAM[19], 其中基础学习率设置为0.001, 且每经过40 000次迭代, 学习率降为原来的0.1倍.

2.3 合成数据集上的测试结果

图3所示为本文在合成测试集上的去雨效果图, 并与当前一流的去雨方法进行了比较, 并且为了量化去雨的性能, 还进行了结构相似度(SSIM)与峰值信噪比(PSNR)的数据比较, 如表1所示. 从表1中的数据可以看出, 本文的方法基本上处于领先的位置. 从图3中可以看出, 这些目前一流的去雨方法不能完全的去除雨线甚至还会模糊图片, 而本文提出的方法能够在几乎去除雨线的情况下还能保证一定的图像细节.

图 3 不同方法在相同的合成测试集上的去雨效果对比

表 1 不同去雨算法在测试集上的PSNR与SSIM平均值比较

2.4 真实雨图的测试结果

为了测试这些去雨方法的实用性, 本文也测试了真实雨图集, 如图4所示为真实雨图的测试结果. 从中可以看出, DJRHR-Net[4]没有很好的去除雨线, JORDER[8]似乎过处理了雨图, 而本文提出的方法做到去除大部分的雨线并且尽可能的保留了细节.

3 结论

本文提出的多流细节加强网络, 对于单张的雨图有很好的去雨效果. 多流的特征提取网络, 每条支路使用不同的规模尺寸, 能够很好的提取出复杂多向的雨线特征并进行特征融合. 而对于高密度雨线的雨图, 由于细节遮蔽太多, 经过去雨网络后往往会损失很多细节, 基于此, 提出的细节加强网络是一个很好的补偿措施. 加入压缩激励[15](SE)的思路, 采用SE层替换批量归一化(BN)层的改进型ResNet[16]网络, 能够得出更高质量的去雨图. 在与当前流行的去雨方法进行比较的过程中, 发现本文的方法, 无论是在去雨图像的视觉感观上, 还是在PSNR和SSIM数据量化上, 都处于领先的地位. 本文主要针对的是大密度的雨线图, 所以设计的分支网络较多, 导致训练参数的上升, 这需要有较强计算性能的计算机进行处理. 进一步改进网络, 简化网络, 并且使得模型泛化能力更强, 是今后的主要研究方向.

图 4 不同去雨算法在真实雨集上的去雨效果图

参考文献
[1]
Kang LW, Lin CW, Fu YH. Automatic single image-based rain streaks removal via image decomposition. IEEE Transactions on Image Processing, 2012, 21(4): 1742-1755. DOI:10.1109/TIP.2011.2179057
[2]
Huang DA, Kang LW, Wang YCF, et al. Self-learning based image decompositions with application to single image denoising. IEEE Transactions on Multimedia, 2014, 16(1): 83-93. DOI:10.1109/TMM.2013.2284759
[3]
Luo Y, Xu Y, Ji H. Removing rain from a single image via discriminative sparse coding. IEEE International Conference on Computer Vision. Santiago, Chile. 2015. 3397–3405.
[4]
Shen L, Yue ZH, Chen Q, et al. Deep joint rain and haze removal from single images. arXiv preprint arXiv: 1801.06769, 2018.
[5]
Vidakovic B, Müller P. An Introduction to Wavelets. Müller P, Vidakovic B. Bayesian Inference in Wavelet-Based Models. New York: Springer, 1999. 1–18.
[6]
He KM, Sun J, Tang XO. Single image haze removal using dark channel prior. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2011, 33(12): 2341-2353. DOI:10.1109/TPAMI.2010.168
[7]
Li X, Wu JL, Lin ZC, et al. Recurrent squeeze-and-excitation context aggregation net for single image deraining. European Conference on Computer Vision. Munich, Germany. 2018. 262–277.
[8]
Yang WH, Tan RT, Feng JS, et al. Deep joint rain detection and removal from a single image. 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Honolulu, HI, USA. 2017. 1685–1694.
[9]
Huang DA, Kang LW, Yang MC, et al. Context-aware single image rain removal. 2012 IEEE International Conference on Multimedia and Expo. Melbourne, VIC, Australia. 2012. 164–169.
[10]
Zhang H, Patel VM. Density-aware single image de-raining using a multi-stream dense network. arXiv preprint arXiv: 1802.07412, 2018.
[11]
Mao XJ, Shen CH, Yang YB. Image restoration using very deep convolutional encoder-decoder networks with symmetric skip connections. arXiv preprint arXiv: 1603.09056, 2016.
[12]
Huang G, Liu Z, Van Der Maaten L, et al. Densely connected convolutional networks. arXiv preprint arXiv: 1608.06993, 2016.
[13]
Pan JS, Liu SF, Sun DQ, et al. Learning dual convolutional neural networks for low-level vision. arXiv preprint arXiv: 1805.05020v1, 2018.
[14]
Mei KF, Jiang AW, Li JC, et al. An effective single-image super-resolution model using squeeze-and-excitation networks. arXiv preprint arXiv: 1810.01831v1, 2018.
[15]
Hu J, Shen L, Albanie S, et al. Squeeze-and-excitation networks. arXiv preprint arXiv: 1709.01507, 2018.
[16]
He KM, Zhang XY, Ren SQ, et al. Deep residual learning for image recognition. arXiv preprint arXiv: 1512.03385, 2016.
[17]
Huynh-Thu Q, Ghanbari M. Scope of validity of PSNR in image/video quality assessment. Electronics Letters, 2008, 44(13): 800-801. DOI:10.1049/el:20080522
[18]
Wang Z, Bovik AC, Sheikh HR, et al. Image quality assessment: From error visibility to structural similarity. IEEE Transactions on Image Processing, 2004, 13(4): 600-612. DOI:10.1109/TIP.2003.819861
[19]
Kingma DP, Ba J. Adam: A method for stochastic optimization. arXiv preprint arXiv: 1412.6980, 2014.