Paper | Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising
发表在2017 TIP。
摘要
Discriminative model learning for image denoising has been recently attracting considerable attentions due to its favorable denoising performance. In this paper, we take one step forward by investigating the construction of feed-forward denoising convolutional neural networks (DnCNNs) to embrace the progress in very deep architecture, learning algorithm, and regularization method into image denoising. Specifically, residual learning and batch normalization are utilized to speed up the training process as well as boost the denoising performance. Different from the existing discriminative denoising models which usually train a specific model for additive white Gaussian noise (AWGN) at a certain noise level, our DnCNN model is able to handle Gaussian denoising with unknown noise level (i.e., blind Gaussian denoising). With the residual learning strategy, DnCNN implicitly removes the latent clean image in the hidden layers. This property motivates us to train a single DnCNN model to tackle with several general image denoising tasks such as Gaussian denoising, single image super-resolution and JPEG image deblocking. Our extensive experiments demonstrate that our DnCNN model can not only exhibit high effectiveness in several general image denoising tasks, but also be efficiently implemented by benefiting from GPU computing.
结论
In this paper, a deep convolutional neural network was proposed for image denoising, where residual learning is adopted to separating noise from noisy observation. The batch normalization and residual learning are integrated to speed up the training process as well as boost the denoising performance. Unlike traditional discriminative models which train specific models for certain noise levels, our single DnCNN model has the capacity to handle the blind Gaussian denoising with unknown noise level. Moreover, we showed the feasibility to train a single DnCNN model to handle three general image denoising tasks, including Gaussian denoising with unknown noise level, single image super-resolution with multiple upscaling factors, and JPEG image deblocking with different quality factors. Extensive experimental results demonstrated that the proposed method not only produces favorable image denoising performance quantitatively and qualitatively but also has promising run time by GPU implementation.
要点
- DnCNN可以处理未知程度的高斯噪声,即实现blind Gaussian denoising。
- 作者还尝试了用一个DnCNN,同时处理未知高斯噪声、多尺度超分辨和未知QF的JPEG图像压缩。
优点
- 应该是第一篇将DNN用于高斯去噪的网络,通过混合训练集,可以实现盲去噪。(CNN最早在[23]被用于图像去噪)
- 打破了传统方法对模型或图像先验的形式约束,让网络自己学习先验项。
- 作者通过实验发现,BN和残差学习是互助的。
故事背景
首先,作者回顾了高斯去噪的历史工作,主要是一些传统方法,例如nonlocal self-similarity models和马尔科夫随机场模型等。其中,NSS方法是SOTA常客,包括BM3D,NCSR等。
尽管如此,这些方法普遍需要优化、耗时;此外,这些方法都需要一些主观设计的参数。
这就引出了判别式学习方法。例如,[14]提出将随机场模型和展开的半二次优化模型在一个学习框架中统一起来。又比如,[15][16]提出的TNRD模型,可以学习一种调整的专家场(modified fields of experts)图像先验。这些方法普遍只学习一种特定的先验,并且只适用于某一个特定的噪声程度。(批注:实际上就是先验项的形式被提前规定好了,因此先验类型是固定的)
网络结构

整体上,网络采用的是VGG结构,改造:
- 所有卷积核都设为\(3 \times 3\)。
- 移除所有池化层。
在论文第三页,作者说明了如何根据有效感受野来设定网络深度。有兴趣的可以看一看。最终作者设定DnCNN为17层。对于盲去噪及其他任务,作者设为20层。
作者加入了一系列的关于CNN的优化手段:
- 残差学习:让CNN建模潜在干净图像与有噪图像的差异。换句话说,CNN需要从有噪图像中剥离出干净图像(找出自然无损图像的本质特征)。
- BN:加快和稳定训练过程。实验发现,BN和残差学习是彼此受益的。
注意几点:
- 第一层和最后一层没有使用BN。
- 最后一层不使用ReLU非线性激活。
- 每一层卷积都产生64个通道,最后输出单通道的灰度图像,理想状况下为噪声图像。
最后值得一提的是,在传统方法中,由于通常是基于块处理,因此会产生比较明显的块效应。但在DnCNN中,我们采用的是补零卷积的方法,实验发现补零不会产生块效应。
BN和残差学习
作者采用实验的方式,探究BN和残差学习的组合效果:

如图,无论是SGD还是Adam优化方法,RL和BN的强强联手都能显著提升网络性能。作者对此的解释是:
Actually, one can notice that in Gaussian denoising the residual image and batch normalization are both associated with the Gaussian distribution. It is very likely that residual learning and batch normalization can benefit from each other for Gaussian denoising. This point can be further validated by the following analyses.
拓展到其他任务
盲去噪:作者在训练集中混合了噪声标准差从0到55不等的有噪图像,来训练单一的DnCNN模型。
去JPEG块效应:同理。
超分辨:先插值升采样,然后再执行相同的流程。
实验略。这篇文章在现在看来还是相对简单的。
Paper | Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising的更多相关文章
- Paper | FFDNet: Toward a Fast and Flexible Solution for CNN based Image Denoising
目录 故事背景 核心思想 FFDNet 网络设置 噪声水平图 对子图像的去噪 保证噪声水平图的有效性 如何盲处理 为啥不用短连接 裁剪像素范围 实验 关于噪声水平图的敏感性 盲处理 发表在2018 T ...
- (IRCNN)Learning Deep CNN Denoiser Prior for Image Restoration-Kai Zhang
学习深度CNN去噪先验用于图像恢复(Learning Deep CNN Denoiser Prior for Image Restoration)-Kai Zhang 代码:https://githu ...
- 论文解读《Learning Deep CNN Denoiser Prior for Image Restoration》
CVPR2017的一篇论文 Learning Deep CNN Denoiser Prior for Image Restoration: 一般的,image restoration(IR)任务旨在从 ...
- Paper | Residual learning
目录 1. OVERVIEW 2. DEGRADATION 3. SOLUTION(DEEP RESIDUAL LEARNING) 4. IMPLEMENTATION(SHORTCUT CONNECT ...
- [论文阅读] Deep Residual Learning for Image Recognition(ResNet)
ResNet网络,本文获得2016 CVPR best paper,获得了ILSVRC2015的分类任务第一名. 本篇文章解决了深度神经网络中产生的退化问题(degradation problem). ...
- 论文笔记——Deep Residual Learning for Image Recognition
论文地址:Deep Residual Learning for Image Recognition ResNet--MSRA何凯明团队的Residual Networks,在2015年ImageNet ...
- Paper Reading - Convolutional Sequence to Sequence Learning ( CoRR 2017 ) ★
Link of the Paper: https://arxiv.org/abs/1705.03122 Motivation: Compared to recurrent layers, convol ...
- Deep Residual Learning for Image Recognition论文笔记
Abstract We present a residual learning framework to ease the training of networks that are substant ...
- 深度学习方法(五):卷积神经网络CNN经典模型整理Lenet,Alexnet,Googlenet,VGG,Deep Residual Learning
欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术感兴趣的同学加入. 关于卷积神经网络CNN,网络和文献中 ...
随机推荐
- JVM-Jinfo命令
jinfo JVM Configuration info这个命令作用是实时查看和调整虚拟机运行参数. 之前的jps -v口令只能查看到显示指定的参数,如果想要查看未被显示指定的参数的值就要使用jinf ...
- Noip2015Day2T3 运输计划
题目链接 problem 一棵n个点带边权的树,有m个条路径.选择一条边,将其权值变为0,使得长度最长的路径长度最小.求该长度最小为多少. solution 其实仔细一想并不难. 删除一条边会导致所有 ...
- DevExpress中TreeList树样式调整
DevExpress的TreeList默认是没有树状线的,修改TreeLineStyle属性无效,这对于Tree并不好看. 解决方案一 官方解释说对于DevExpress的标准主题是不支持TreeLi ...
- Java连载53-单例模式初步、final关键字补充、回顾知识点
一.回顾 1.类和对象的区别 2.UML(uniform makeup language) 3.方法区存储静态变量.常量(static final修饰) 4.堆内存中存储对象 5.栈存储变量 6.th ...
- 【shell脚本】对100以内的所有正整数相加求和(1+2+3+4...+100)===sum.sh
对100以内的所有正整数相加求和(1+2+3+4...+100) [root@VM_0_10_centos shellScript]# cat sum.sh #!/bin/bash # 对100以内的 ...
- MySQL-8.0.18 引入了破坏性变更
MySQL-8.0.18 引入了破坏性变更 变更日志里面有这样一项 When the server is run with --initialize, there is no reason to lo ...
- Spring Cloud Gateway入坑记
Spring Cloud Gateway入坑记 前提 最近在做老系统的重构,重构完成后新系统中需要引入一个网关服务,作为新系统和老系统接口的适配和代理.之前,很多网关应用使用的是Spring-Clou ...
- 在生成.net core 3.0程序时不包含nuget库
在.net core 3.0中,默认的生成行为有了两个变化,一个是默认生成可执行文件,另一个是会复制依赖的Nuget项. 前一个变化会默认生成可执行的exe,用起来更加方便了.另一个变化可能是为了减少 ...
- java基础(31):网络通信协议、UDP、TCP
1. 网络通信协议 通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样.在计算机网络中,这些连接和通 ...
- Vue中v-on的指令以及一些其他指令
1.v-on的基本使用 <div id="app"> <!-- 使用事件绑定的简写形式 --> <input type="button&qu ...