论文创新,可以看看这几篇去雨文章是怎么做的
(方法三首页demo)
相关资源
论文:Restoring An Image Taken Through a Window Covered with Dirt or Rain
首页:https://cs.nyu.edu/~deigen/rain/
傅雪阳首页:https://xueyangfu.github.io/
厦门大学智能数据分析与处理实验室:https://xmu-smartdsp.github.io/
论文笔记
01. Restoring an image (ICCV 2013)
在我们拍摄照片的时候会遇到透过玻璃拍摄的场景,如窗户、车窗,或者透过玻璃自拍等,而玻璃上的污渍会影响照片的效果,这篇论文针对这类透过玻璃拍摄的照片,进行污迹或者雨渍的去除。
CNN结构同LeNet,函数表示:
表示的RGB输入图像,激活函数使用tanh,第一个卷积层使用“valid”填充,卷积核大小为(果然年代久远,还有偶数的大卷积核);最后一层使用“full”填充,卷积核大小为8;中间使用的卷积,通道数为512,共两个中间层(L=3)。所以W1 :,W2:,W3:。
损失函数采用输入标签和网络输出的MSE:
输入为大小的图像块,输出大小为,做MSE时,和GT中间对应像素相减。采用随机梯度下降(SGD)更新可训练参数:
为学习率,参数初始化使用均值为0,方差为0.001的正态分布,偏置b初始化为0,学习率衰减因子:0.001,不使用动量和权重正则化。
测试环境:Matlab + Nvidia GTX 580;耗时: 彩色图像60s,彩色图像7s。
02. Clearing the Skies (TIP 2017)
论文主要借鉴上一篇文章的网络结构,设计了一个改进的单图像去雨CNN结构,主要改进点:
CNN映射有雨图和去雨图的细节层,而不是直接在原图建立映射关系。
未将网络结构复杂化,而是通过雨滴先验知识进行图像预处理,改变了优化的目标函数。
网络结构
CNN结构函数表示:
作者把雨滴视为图像高频部分,通过低通滤波(引导滤波、双边滤波或者滚动滤波)将有雨图I和其无雨图标签J分别分为基础层和细节层:
基础层为平滑后的图像,有:,所以只需要建立两个细节层的映射关系即可,损失函数由原来预测图与标签图的MSE变为了:
训练时,参数设置同第一篇论文一致,输入图像块,输出大小图像。
图像增强处理
网络训练完成后,去雨结果图像可以直接通过以下运算得到:
但是在雨比较大的情况下,会出现雾的情况,影响视觉效果,所以对基础层和输出的细节层做了图像增强:
03. deep detail network (CVPR 2017)
论文在上一篇的基础上进行了进一步优化,设计了一个改进的单图像去雨CNN结构,主要改进点:
建立真实图像和雨图之间的负残差映射,再次缩小映射范围,优化映射空间。
使用残差结构,可以使用更深的网络建立映射关系,并通过先验知识,输入图像细节层。
CNN结构函数表示:
其中,
L为CNN总层数,*表示卷积操作,BN表示batch normalization,表示激活函数ReLU,不使用池化操作。
利用引导滤波将雨迹图划分为细节层和基础层(同上一篇)。
损失函数:
参数设置:层数L=26,优化器:SGD,权重衰减因子,动量0.9,batch size:20,初始学习率:0.1,迭代100K/200K时除以10,共迭代210K次,卷积核大小为3,个数为16。
04. Residual-Guide Network (ACM MM 2018)
同样采用负残差映射的思想设计了一个CNN单图像去雨网络ResGuideNet,主要贡献点:
通过由浅入深的Block结构,获取由粗到细获取负残差输出。
通过联合损失优化每个Block输出,根据集成学习的思想融合所有负残差输出。
CNN结构函数形式:
特征复用:通过密集连接复用每一个Block输出的负残差特征。
循环计算:如结构图左下角左下角所示,为平衡模型参数和性能,每个Block内部的两个卷积层采用循环计算的策略加深Block深度,函数表示:
为了避免结构加深带来的梯度消失的问题,将Block第一个 Conv+LReLU的输出加到每个子循环中:
块间融合:如结构图右下角所示:通过集成学习的思想将不同Block的预测结果concatenate在一起,最后通过卷积得到最后的结果。
损失函数:对于每一个Block,采用+SSIM loss 损失函数:
M个Block和最后merge输出的总损失:
实验细节:环境:python + TensorFlow、NVIDIA GeForce GTX 1080(8GB),初始化:Xavier,优化器:RMSProp,初始学习率:0.001,batch size:16,迭代次数:50000,每层卷积为:16个,输出层卷积,3个。
05. Lightweight Pyramid Networks (T-NNLS 2019)
为了使去雨网络更轻量化,使其适用于移动设备,作者提出了轻量级的金字塔去雨网络LPNet,参数量少于8K,主要贡献:
将传统的高斯-拉普拉斯金字塔运用到CNN中,使用一个参数量少的小网络可实现很好的结果。
结合多尺度、循环计算和残差学习技术,在大雨场景下,也能很好地实现单图像去雨。
CNN结构函数形式:
a、构建拉普拉斯金字塔
b、特征提取网络
c、循环模块
d、重建高斯金字塔
作者之前提出方法(方法二、方法三)通过引导滤波将图像分解成基础层和细节层,运用细节层训练可以有效减小优化空间,但是引导滤波针对雨量比较厚的图像达不到很好的细节提取效果。于是,作者使用拉普拉斯金字塔将图像分解为不同尺度的图像金字塔,并分别进行去雨处理。
损失函数:
实验细节:
5个尺度的拉普拉斯金字塔:[0.0625, 0.25, 0.375, 0.25, 0.0625]为构建高斯金字塔的固定平滑核。
所有子网络结构相同,卷积核个数不同,卷积核大小为 3x3,卷积核大小为1,每个子网络循环block次数T = 5,激活函数LReLUs,参数为: 0.2。
使用【2】生成的雨图,包含大雨图像和小雨图像,输入大小 图像块,Adam优化器,batch size为10,学习率:0.001,epoch为3。
(论文实验结果对比)
用code搞事情
上述论文代码均开源在作者首页,包括matlab或者python+TensorFlow实现。我们借鉴了方法三和论文【2】多任务的思想,参加了马上金融的图像污迹去除赛道,并获得了第一名的成绩。
(提出的人脸去污网络结构)
该模型训练过程中输入数据包括:网纹图像X,真实图像Y,mask图像M。对于真实图像输出分支,目标函数使用均方误差loss1;针对mask输出分支,我们使用交叉熵损失loss2。两者采用1:1的比例相加得到最后需要优化的损失函数loss,具体公式如式:
其中,N为训练图片数量,为卷积神经网络,为网络要学习的参数,除了两个分支上的权重不同以外,其余权重两个分支权重共享,表示为第i张图片的细节层,通过引导滤波所得。
模型的损失函数:
(人脸去污结果)
参考文献
【1】 Deep joint rain detection and removal from a single image
【2】 Multi-task ConvNet for blind face inpainting with application to face verification
长按二维码关注我们
有趣的灵魂在等你
留言请摁
论文创新,可以看看这几篇去雨文章是怎么做的相关推荐
- ECCV 2020 论文大盘点-去雾去雨去模糊篇
去雾.去雨.去模糊是三个不同的方向,之前的盘点:CVPR 2020 论文大盘点-去雨去雾去模糊篇 ,引起了不少朋友的兴趣. 本文盘点 ECCV 2020中去雾(Single Image Dehazin ...
- 【论文笔记】使用多流密集网络的密度感知单图像去雨
使用多流密集网络的密度感知单图像去雨 <Density-aware Single Image De-reaining using a Multi-stream Dense Network> ...
- 去雨方向工作概述(二)
这里是2017年一些顶会或顶刊上的一些去雨方向上的文章,做一个简略的记录. 这篇文章记录2017年的一些视频去雨或传统方法. 2017 1.Error-optimized sparse represe ...
- 去雨方向工作概述(一)
写在最前面: 一个优秀的整理去雨文章的GitHub:戳我 较早以前的文章 这里大部分文章是传统方法或者视频去雨. 1.Automatic Single-Image-Based Rain Streaks ...
- 写好一篇软文文章的六个步骤技巧
写作是很重要的,它可以传达很多东西,现在社会还是一个文字社会,无论是对于企业来说,还是对于任何组织来说,如何写一篇专业性强.逻辑性强的文章,无论是读书还是工作,能写出一篇专业性很强的文章都会给你带来很 ...
- 从系列去雨论文看如何创新
论文:Restoring An Image Taken Through a Window Covered with Dirt or Rain 首页:https://cs.nyu.edu/~deigen ...
- CVPR 2021 论文大盘点-图像视频去雨篇
本文继续总结图像处理相关论文,关注一类特殊的图像修补任务--视频.图像去雨,共计 10 篇. 大家可以在: https://openaccess.thecvf.com/CVPR2021?day=all ...
- 负起责任、审慎对待论文创新和性能指数,ACM Fellow罗杰波教授分享他的审稿经验...
机器之心整理 参与:杜伟.小舟 近日,AI 领域诸多顶级学术会议相继召开,各类会议期刊的论文的审阅标准也再度成为社区讨论的焦点.在本文中,美国罗切斯特大学罗杰波教授分享了他自己对如何做好审稿人的一些经 ...
- [论文阅读] (23)恶意代码作者溯源(去匿名化)经典论文阅读:二进制和源代码对比
<娜璋带你读论文>系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢.由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学 ...
最新文章
- win10未开启没有运行无线服务器,win10系统提示共享无线自动配置服务没有自动运行的解决办法...
- 改善java程序的建议
- linux shell awk next,使用awk的next命令的方法
- Linux文件与目录的rwx权限
- Android简易音乐播放器实现代码
- 为什么你的提问没人解答?
- python如何删除代码_Python列表删除的三种方法代码分享
- mariab修改mysql端口_修改mysql/MariaDB数据库的端口号+远程
- DeDE 后台登陆广告
- 【转载】Fedora网络设置问题解决方法
- 一个通配符引起的错误
- classdefnotfound本地不报错_四种解决Nginx出现403 forbidden 报错的方法
- 英特尔傲腾 DC P4800X 固态盘
- AGV调度系统开发1(电子地图编辑软件)
- 关闭wps热点及广告弹窗推送
- nginx匹配规则详解
- VOT 数据集下载toolkit
- 关于JFrame添加背景图片,setbounds的小知识
- APICloud和海马玩模拟器结合调试手机页面
- Scala 034 特质trait
热门文章
- SQLite学习手册(在线备份)
- iphone保修期多久_卖疯了!开发区9.9元起换iphone原厂电池!
- linux控制命令使用限制,【L-shell】Linux 系统下 限制用户的活动目录,控制用户使用命令的权限。...
- mxnet基础到提高(46)-ndarray.zeros,CSRNDArray稀疏矩阵
- AI理论知识基础(22)-逻辑斯蒂映射-伪随机数
- 【数据竞赛】Kaggle时序建模案例:预测水资源可用性
- 【Python】Pandas profiling 生成报告并部署的一站式解决方案
- 【图网络】如何用Python实现算法:规划图技术(GraphPlanner)
- 【机器学习基础】回归相关指标优化​
- 【算法】八大经典排序算法详解