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

2.主体网络架构:

上图是单阶段的去雨基础网络(SCAN)。上图给出的是6层网络。文章指出更大的感受野能够提供更多的上下文信息,所以采用了扩张的卷积核构造上下文扩张网络。所谓扩张卷积核如下:

上图为三个不同扩张因子的卷积核。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 循环单元构造循环网络,下图展示了两个循环阶段:

文章利用Gated Recurrent Units (GRU)循环单元将前一去雨阶段的隐藏层特征融合到后一去雨阶段中,这样就将不同去雨阶段关联起来了。

损失函数:由于去雨过程是通过网络预测输出雨纹图像,然后由输入图像减掉雨纹图像得到最后的清晰背景图像。实际网络的预测输出是雨纹图像,因此网络的损失函数计算的是雨纹图像的MSE值。

其中,大S表示去雨阶段,小s表示雨点图像种类。

深度学习——RESCAN相关推荐

  1. 从2012年到现在深度学习领域标志成果

    2006年,Hinton 发表了一篇论文<A Fast Learning Algorithm for Deep Belief Nets>,提出了降维和逐层预训练方法,该方法可成功运用于训练 ...

  2. 各种优化算法公式快速回忆优化器-深度学习

    本文是Deep Learning 之 最优化方法系列文章的RMSProp方法.主要参考Deep Learning 一书. 整个优化系列文章列表: Deep Learning 之 最优化方法 Deep ...

  3. 卷积神经网络之卷积计算、作用与思想 深度学习

    博客:blog.shinelee.me | 博客园 | CSDN 卷积运算与相关运算 在计算机视觉领域,卷积核.滤波器通常为较小尺寸的矩阵,比如3×33×3.从这个角度看,多层卷积是在进行逐层映射,整 ...

  4. 矩阵的卷积核运算(一个简单小例子的讲解)深度学习

    卷积运算:假设有一个卷积核h,就一般为3*3的矩阵: 有一个待处理矩阵A: h*A的计算过程分为三步 第一步,将卷积核翻转180°,也就是成为了 第二步,将卷积核h的中心对准x的第一个元素,然后对应元 ...

  5. 深度学习优化函数详解(5)-- Nesterov accelerated gradient (NAG) 优化算法

    深度学习优化函数详解系列目录 深度学习优化函数详解(0)– 线性回归问题 深度学习优化函数详解(1)– Gradient Descent 梯度下降法 深度学习优化函数详解(2)– SGD 随机梯度下降 ...

  6. transformer bert seq2seq 深度学习 编码和解码的逻辑-重点

    参考文献: 详解从 Seq2Seq模型.RNN结构.Encoder-Decoder模型 到 Attention模型 [NLP]Attention Model(注意力模型)学习总结(https://ww ...

  7. 入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集-深度学习问题

    入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集 GT_Zhang关注 0.1012019.08.01 18:43:34字数 1,874阅读 795 Hi,欢迎各位来自Paddl ...

  8. 深度学习的分布式训练--数据并行和模型并行

    <div class="htmledit_views"> 在深度学习这一领域经常涉及到模型的分布式训练(包括一机多GPU的情况).我自己在刚刚接触到一机多卡,或者分布式 ...

  9. 1-1 机器学习和深度学习综述-paddle

    课程>我的课程>百度架构师手把手教深度学习>1-1 机器学习和深度学习综述> 1-1 机器学习和深度学习综述 paddle初级课程 王然(学生) Notebook 教育 初级深 ...

  10. 深度学习的Xavier初始化方法

    在tensorflow中,有一个初始化函数:tf.contrib.layers.variance_scaling_initializer.Tensorflow 官网的介绍为: variance_sca ...

最新文章

  1. 命令行操作svn和git和git
  2. 群晖系统挂载NTFS硬盘
  3. MySQL主从复制故障案例一
  4. 定义利润中心(Profit Center)
  5. javaweb学习总结(二十五):jsp简单标签开发(一)
  6. JS对全角与半角的验证,相互转化以及介绍
  7. 各种数据库连接的总结
  8. 漫画 | 面试的我 VS 真实的我
  9. jcr多久更新一次_拼多多商品价格竞争力星级有什么用?多久更新一次?
  10. 阶段3 1.Mybatis_09.Mybatis的多表操作_3 完成account的一对一操作-通过写account的子类方式查询...
  11. Java多组输入实现 C++多组输入实现
  12. 王者荣耀用java_怎样用Java的方式打开王者荣耀
  13. androidStudio连接不上模拟器(夜神模拟器)
  14. tersorrt安装_pytorch/mxnet模型tensorrt部署
  15. echarts省级地图显示(入门)
  16. Unirech腾讯云代充-通过VNC 登录腾讯云国际版Windows云服务器实例教程
  17. android游戏开发教程 android游戏项目教程
  18. 苏州大学在职研究生计算机专业,苏州大学在职研究生入学须知
  19. java SpringBoot报错Servlet.service() for servlet 和No converter for的解决办法
  20. Android Jetpack Compose 播放器动画

热门文章

  1. kd树 python实现_python K近邻算法的kd树实现
  2. 免费又好用怎么把文字转换成语音呢?分享我常用的3个配音神器
  3. Geos库学习之(四)——几何对象空间关系判断实例
  4. 广州坐标系转换大地2000_实用帖 | 从地方坐标系到2000国家大地坐标系的转换方法...
  5. wgs84转cgcs2000 java_CGCS2000坐标系与WGS84的相互投影转换
  6. 平面变压器的设计(翻译)(4)
  7. 在无线网中,通过添加IP地址连接东芝打印机
  8. Servlet基础:容器
  9. 【微信小程序】全局配置 - tabBar
  10. 性能监控之 Linux 命令 top、vmstat、iostat、free、iftop 基础