深度学习——RESCAN

原论文2018:Recurrent Squeeze-and-Excitation Context Aggregation Net for Single Image Deraining
开源代码(pytorch框架):https://xialipku.github.io/RESCAN
1.主要工作:提出了逐阶段去雨的单幅图像去雨深度网络架构。采用逐阶段去雨的方式。每一个阶段采用上下文扩张网络完成去雨工作。最后逐渐优化输出图像。
考虑到不同去雨阶段的相关性,文章利用三种循环单元融合了RNN网络架构。前面去雨阶段的信息能够为后面去雨阶段提供参考信息。

2.主体网络架构:
深度学习——RESCAN_第1张图片
上图是单阶段的去雨基础网络(SCAN)。上图给出的是6层网络。文章指出更大的感受野能够提供更多的上下文信息,所以采用了扩张的卷积核构造上下文扩张网络。所谓扩张卷积核如下:
深度学习——RESCAN_第2张图片
上图为三个不同扩张因子的卷积核。K表示尺寸,DF表示扩张因子。他们都是在3* 3个像素点上作卷积,只是DF越大,这些像素点越分散,能够覆盖到的图像区域更大,感受野越大。

网络的第一层是图像特征提取层,不用扩张卷积核。网络的最后两层是特征解码层,也不用扩张卷积核。只是在中间的层采用扩张卷积核(扩张因子分别为1,2,4…)。

文章采用的雨模型如下:在这里插入图片描述其中O表示雨退化图像,B表示清晰的背景图像,R表示雨点图像,A表示背景亮度。因此,该模型将雨退化图像分解为三部分:清晰的背景B(我们要求的),n种不同的雨点图像R(总的雨纹由这n种不同的雨点图像叠加而成),背景亮度A(考虑到暴雨情况)。这里的权重α表示各自的透明度(也就是说α越大,该部分越明显;α越小,该部分越不明显)。

文章认为卷积过程中,每一个feature map和一种雨点图像相对应。因此,为R分配权重α就变成了为每一个feature map分配一个α值。这个α值不是固定的,而是不断更新的(每一层都更新一次)。为每一个雨点图像Ri分配一个αi值的过程由Squeeze-and-Excitation (SE) block完成【参考文章: Squeeze-and-excitation networks】。然后,将SE学习到的α权重值与feature map相乘,相当于将不同雨点图像的重要程度重新配比了一次。

整个去雨过程是分阶段进行的。考虑到不同去雨阶段的相关性,文章分别单独利用三种循环单元( ConvRNN, ConvGRU , ConvLSTM)构建循环去雨网络结构。前面去雨阶段的信息能够为后面去雨阶段提供参考信息。这里采用ConvGRU 循环单元构造循环网络,下图展示了两个循环阶段:
深度学习——RESCAN_第3张图片

文章利用Gated Recurrent Units (GRU)循环单元将前一去雨阶段的隐藏层特征融合到后一去雨阶段中,这样就将不同去雨阶段关联起来了。
深度学习——RESCAN_第4张图片
损失函数:由于去雨过程是通过网络预测输出雨纹图像,然后由输入图像减掉雨纹图像得到最后的清晰背景图像。实际网络的预测输出是雨纹图像,因此网络的损失函数计算的是雨纹图像的MSE值。
深度学习——RESCAN_第5张图片
其中,大S表示去雨阶段,小s表示雨点图像种类。

你可能感兴趣的:(深度学习--降噪,深度学习,神经网络,pytorch,网络,人工智能)