1. Removing rain from single images via a deep detail network
文献[1]受到ResNet的启发,建立卷积神经网络从雨条的退化图像中复原清晰图像。文章在去除雨条时创新点主要体现在两个方面:
1) 提出Negative Residual Mapping(Neg-mapping),用于刻画清晰图像和退化图像间的区别,使得网络学习的过程更为简单
2) 将输入图像进行分解为高频成分用于图像复原。
普通的卷积神经网络设计时最小化损失函数L = ∑ i ∥ h ( X i ) − Y i ∥ F 2 \mathcal { L } = \sum _ { i } \left\| h \left( \mathbf { X } _ { i } \right) - \mathbf { Y } _ { i } \right\| _ { F } ^ { 2 } L = ∑ i ∥ h ( X i ) − Y i ∥ F 2
其中, , 为退化图像和清晰图像对, 为网络输出。
加入Neg-mapping后,修订的损失函数为L = ∑ i ∥ h ( X i ) + X i − Y i ∥ F 2 \mathcal { L } = \sum _ { i } \left\| h \left( \mathbf { X } _ { i } \right) + \mathbf { X } _ { i } - \mathbf { Y } _ { i } \right\| _ { F } ^ { 2 } L = ∑ i ∥ h ( X i ) + X i − Y i ∥ F 2
文中进而分别对比了普通的卷积神经网络、残差网络、加入Neg-mapping的卷积神经网络、加入Neg-mapping的残差网络和文中最终的方法在图像去雨上的实现结果。其中网络结构分别如图1 2所示。文中通过实验结果图1 1,经验式的给出加入Neg-map 可以有效的降低解空间,实现更好的复原效果。
图1-1 实验对比图
图1-2普通的卷积神经网络、残差网络、加入Neg-mapping的卷积神经网络、加入Neg-mapping的残差网络和文中最终的方法的网络结构图
作者为了进一步提升复原效果,引入雨条成分主要集中在图形的高频成分的先验只是,对图像进行分解为高频成分也就是detail layer作为网络的输入,则图像分解过程为X = X d e t a i l + X b a s e \mathbf { X } = \mathbf { X } _ {detail } + \mathbf { X } _ { base } X = X d e t a i l + X b a s e
最终设计的算法结构如图1 3所示。网络的输入为detail layer,网络结构包括26个残差网络块组成。损失函数为L = ∑ i = 1 N ∥ f ( X i , d e t a i l , W , b ) + X i − Y i ∥ F 2 \mathcal { L } = \sum _ { i = 1 } ^ { N } \left\| f \left( \mathbf { X } _ { i ,detail } , \mathbf { W } , \mathbf { b } \right) + \mathbf { X } _ { i } - \mathbf { Y } _ { i } \right\| _ { F } ^ { 2 } L = ∑ i = 1 N ∥ f ( X i , d e t a i l , W , b ) + X i − Y i ∥ F 2
其中, 为残差网络,N为网络层数。
图1-3 算法整体结构
文中对不同的网络深度进行讨论,如表1 1所示,L为网络深度,a1, a2为滤波器的数目。可以得出结论,通过精心的设计网络结构,图像复原的效果会随着网络的深度和滤波器数目的增加而增强。
2. Deep Joint Rain Detection and Removal from a Single Image
针对现存的去雨算法的现状,文献[2]总结现存的方法存在以下缺点:
1) 由于雨条的结构和背景的纹理存在内部的相似性,现存的方法往往去除无雨区域的图像纹理,导致一种过平滑的解;
2) 雨条的退化过程十分复杂,现存的退化模型无法有效的建模退化过程;
3) 基础的操作大都基于图像块或者受到感受野的限制,无法获取空间的上下文信息。
为了解决这些问题,文中提出了联合雨条检测和去除的卷积神经网络。文中首先根据雨条堆积形成的雾和不同的雨条形状和方向建模退化过程为O = α ( B + ∑ t = 1 s S ~ t R ) + ( 1 − α ) A \mathbf{O}=\alpha \left( \mathbf{B}+\sum\limits_{t=1}^{s}{{{{\mathbf{\tilde{S}}}}_{t}}\mathbf{R}} \right)+(1-\alpha )\mathbf{A} O = α ( B + t = 1 ∑ s S ~ t R ) + ( 1 − α ) A
其中, 表示具有相同方向的雨条层,B为清晰图像,R为雨条残差,A为全局的大气光照,α \alpha α 为大气光照系数。根据退化模型,进而设计网络如图2 1所示。为了解决难以区分图像的纹理和雨条,导致平滑解的问题,网络设计检测雨条的部分,用于抑制无雨区域的图像纹理被去除的问题。为了增大图像的感受野,获得图像的全局信息,网络设计了一个上下文空洞卷积网络来增大感受野,获取图像的全局信息。由于雨条的堆积,网络设计循环复原的方式,通过多次的复原,从而解决了雨条去除不彻底的问题。
图2 1 网络结构图
文中的算法构建了一个多任务的网络结构,即检测雨条的位置有估计雨条残差并且复原清晰图像,训练过程中的损失函数为L ( Θ ) = 1 n ( ∥ F r s ( o i , Θ ) − s i ∥ 2 + λ 1 ∥ F b g ( o i ; Θ ) − g i ∥ 2 − λ 2 ( log r ^ i , 1 r i , 1 + log ( 1 − r ^ i , 2 ) ( 1 − r i , 2 ) ) ) L\left( \Theta \right)=\frac{1}{n}\left( {{\left\| {{F}_{rs}}\left( {{o}_{i}},\Theta \right)-{{s}_{i}} \right\|}^{2}}+{{\lambda }_{1}}{{\left\| {{F}_{bg}}\left( {{o}_{i}};\Theta \right)-{{g}_{i}} \right\|}^{2}}-{{\lambda }_{2}}\left( \log {{{\hat{r}}}_{i,1}}{{r}_{i,1}}+\log \left( 1-{{{\hat{r}}}_{i,2}} \right)\left( 1-{{r}_{i,2}} \right) \right) \right) L ( Θ ) = n 1 ( ∥ F r s ( o i , Θ ) − s i ∥ 2 + λ 1 ∥ F b g ( o i ; Θ ) − g i ∥ 2 − λ 2 ( log r ^ i , 1 r i , 1 + log ( 1 − r ^ i , 2 ) ( 1 − r i , 2 ) ) )
其中,r ^ i , j = exp { F r s , j ( o i ; Θ ) } ∑ k = 1 2 exp { F r s , k ( o i ; Θ ) } , j ∈ { 1 , 2 } \widehat { \mathbf { r } } _ { i , j } = \frac { \exp \left\{ \mathbf { F } _ { \mathrm { rs } , j } \left( \mathbf { o } _ { i } ; \Theta \right) \right\} } { \sum _ { k = 1 } ^ { 2 } \exp \left\{ \mathbf { F } _ { \mathrm { rs } , k } \left( \mathbf { o } _ { i } ; \Theta \right) \right\} } , j \in \{ 1,2 \} r i , j = ∑ k = 1 2 exp { F r s , k ( o i ; Θ ) } exp { F r s , j ( o i ; Θ ) } , j ∈ { 1 , 2 } 。参数λ 1 \lambda _ { 1 } λ 1 和λ 2 \lambda _ { 2 } λ 2 为权重系数;F r r ( ⋅ ) , F r s ( ⋅ ) \mathbf { F } _ { \mathrm { rr } } ( \cdot ) , \mathbf { F } _ { \mathrm { rs } } ( \cdot ) F r r ( ⋅ ) , F r s ( ⋅ ) ,F b g ( ⋅ ) \mathbf { F } _ { \mathrm { bg } } ( \cdot ) F b g ( ⋅ ) 分别为检测网络,残差估计网络和清晰图像复原网络;o i , g i , r i , s i \mathbf { o } _ { i } , \mathbf { g } _ { i } , \mathbf { r } _ { i } , \mathbf { s } _ { i } o i , g i , r i , s i 分别为退化图像,清晰图像,雨条的区域和雨条的残差。
此外,文中还结合文献[3]的去雾的方法,解决由于雨条累积形成的雾的问题。实验结果在仿真数据集Rain12, Rain100L和Rain100H进行测试,提出的方法取得了最佳的复原效果。作者结合去雾的方法在实测图像上进行测试,结果如图2-1所示。
图2-1 JORDER-R-DEVEIL实测结果图(前两张为大雨,最后一张为带雾的图)
3 参考文献
[1]. Fu X , Huang J , Zeng D , et al. Removing Rain from Single Images via a Deep Detail Network[C]// 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). IEEE Computer Society, 2017.
[2]. Yang W , Tan R T , Feng J , et al. Deep Joint Rain Detection and Removal from a Single Image[J]. 2016.
[3]. Cai B , Xu X , Jia K , et al. DehazeNet: An End-to-End System for Single Image Haze Removal[J]. IEEE Transactions on Image Processing, 2016, 25(11):5187-5198.