DnCNN论文阅读笔记

文章重点
提出了一个前馈去噪卷积神经网络(DnCNN)用于图像的去噪,使用了更深的结构、残差学习算法、正则化和批量归一化等方法提高去噪性能。优势是可以处理未知噪声水平的高斯去噪。
传统方法:
(1)通过建模图像先验,建立去噪模型:
缺点:涉及复杂的优化,耗时;
模型一般非凸,并且需要手动设计参数,很难达到最优去噪性能。
(2)辨别学习方法学习图像先验模型:
优点:能够摆脱迭代优化过程;
CSF和TNRD在计算效率和去噪质量之间的差距有了很好的效果
缺点:在捕获图像结构的所有特征上受到限制;
许多手动参数被涉及到;
模型被盲图像去噪限制。
DnCNN:
图像去噪:从一个由噪声的图像y=x+v中,恢复干净的图像x。
图像去噪视为一种判别学习问题:(DnCNN)通过卷积神经网络将图像与噪声分离。
CNN优点:
第一:非常深的结构提高利用图像特征的容量和灵活方面是非常有效的
第二:训练CNN的正则化和学习方面取得了相当大的进展,ReLU、批量归一化、残差学习,提高去噪性能
第三:适合GPU的并行运算。提高运行时的性能
DnCNN优点:
第一:在特定的噪声水平下训练比最先进的方法如BM3D,WNNM和TNRD有更好的高斯去噪效果。
第二:对于盲高斯去噪,比为特定噪声水平训练的BM3D和TNRD表现的更好。
第三:当被延伸到一些一般的图像去噪任务时,也能获得很好的结果。
第四:一个DnCNN模型对于三个一般图像去噪任务的高效性,即高斯去噪,有着多重升级因子的SISR和有着不同质量因子的JPEG去块问题。
这项工作的贡献:
第一:为高斯去噪提出了一个端到端的可训练的很深的卷积神经网络
第二:发现残差学习和批量归一化可以使卷积神经网络学习极大的获益
第三:DnCNN可以轻松扩展以处理一般的图像去噪任务
图像去噪的深度神经网络:
已经存在通过深度神经网络来处理去噪问题的模型,如:MLP和TNRD。但是,他们都是针对特定噪声水平训练特定模型。开发CNN进行一般图像去噪仍然没有研究。
残差学习和批量归一化:
残差学习:DnCNN使用单个残差单元来预测残差图像

关于残差学习的一些知识:
更深的网络可以进行更加复杂的特征模式的提取,从而理论上更深的网络可以得到更好的结果。但是通过简单的叠加层的方式来增加网络深度,可能引来梯度消失/梯度爆炸的问题,随着网络深度的增加,也会带来两个问题:

  1. 长时间训练但是网络收敛变得非常困难甚至不收敛(这个问题很大程度已被标准初始化和中间标准化层解决)。
  2. 网络性能会逐渐趋于饱和,甚至还会开始下降,56层的误差比20层的更多,故这种现象并不是由于过拟合造成的。这种现象称为深度网络的退化问题。

而残差网络就可以让网络层次很深的时候,网络依然有很好的性能和效率。
残差学习的结构如下:
DnCNN论文阅读笔记_第1张图片可以看到右边加入的是前向反馈identity mapping(恒等映射y=x),原来的网络是学习输入到输出的映射H(x),残差网络学习的是F(x)=H(x)−x。

为什么残差学习相对容易?直观上残差学习的内容较少。从数学角度分析,


在残差网络中有一点变化:我们将a[l]直接向后拷贝到神经网络的深层,在Relu非线性激活前加上a[l],这是一条捷径将a[l]的信息直接传达到神经网络的深层(不再沿着主路经传递)
所以如何将一个普通网络变成残差网络呢?

在这里插入图片描述
这就构成了一个残差块:
DnCNN论文阅读笔记_第2张图片
这个图中就有五个残差块,构成一个残差网络: DnCNN论文阅读笔记_第3张图片所以,a[l+2]=g(z[l+2]+a[l]),如果z[l+2]=0,那么a[l+2]=a[l]。这说明即使增加两层,它的效率也不逊色于简单的神经网络。所以给大型神经网络增加两层,不论是把残差块添加到神经网络的中间还是末端位置都不会影响网络的实现。此外,如果这些隐层单元学到一些有用信息,那么它可能比学习恒等函数变现的更好。

批量归一化:解决内部协变量移位问题,加快训练速度,更好的性能和对初始化的低灵敏度。

有关批量归一化的知识:
为什么需要归一化呢?
神经网络学习过程本质就是为了学习数据分布,一旦训练数据与测试数据的分布不同,那么网络的泛化能力也大大降低;另外一方面,一旦每批训练数据的分布各不相同(batch 梯度下降),那么网络就要在每次迭代都去学习适应不同的分布,这样将会大大降低网络的训练速度。
Batch Normalization:
算法本质原理就是:在网络的每一层输入的时候,又插入了一个归一化层,也就是先做一个归一化处理,比如网络第三层输入数据X3(X3表示网络第三层的输入数据)把它归一化至:均值0、方差为1,然后再进入网络的下一层。
算法介绍:虽然要解决中间层分布的问题,但是也要这一层学习到的分布不被破坏,所以采用了变换重构的方式,引入了可学习参数γ、β
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
当参数如上时是可以恢复出原始的某一层所学到的特征的。
最后Batch Normalization网络层的前向传导过程公式就是:
DnCNN论文阅读笔记_第4张图片
上面的公式中m指的是mini-batch size。
在cnn中我们可以把每个特征图看成是一个特征处理(一个神经元),因此在使用Batch Normalization,mini-batch size 的大小就是:m特征图宽特征图高,于是对于每个特征图都只有一对可学习参数:γ、β。

残差学习和批量归一化的整合可以带来快速稳定的训练和更好的去噪性能。

DnCNN模型 :
网络深度:
根据与其他模型的比较,我们将DnCNN的感受野大小设置为35x35,相应的深度为17。对于其他一般图像的去噪任务,我们将采用更大的感受野并将深度设置为20.
网络架构:
DnCNN论文阅读笔记_第5张图片如图所示,网络结构为三种不同类型的层组成:
Conv+ReLU:使用64个大小为3×3×c的滤波器被用于生成64个特征图。然后将整流的线性单元(ReLU)用于非线性。
Conv+BN+ReLU:64个大小的过滤器,并且将批量归一化加在卷积和ReLU之间。
Conv:c个大小为3×3×64的滤波器被用于重建输出。
特征:采用残差学习公式来学习R(y),并结合批量归一化来加速训练以及提高去噪性能。
边界伪影:采用0填充的方法解决了边界伪影。
残差学习和批量归一化对图像去噪的整合:
残差学习从批量归一化中受益,例如减轻内部协变量偏移问题。
通过残差学习,DnCNN隐含地使用隐藏层中的操作移除潜在的干净图像。这使得每层的输入都是高斯分布的,相关性较低,并且与图像内容的相关性较小。因此,残差学习还可以帮助批量归一化以减少内部协变量偏移。
综上所述,残差学习和批量归一化的整合不仅可以加快和稳定训练过程,还可以提高去噪性能。
扩展到一般图像去噪:
给定其噪声水平属于噪声水平范围的测试图像,可以利用学习的单个DnCNN模型对其进行去噪而不估计其噪声水平。
学习单个模型来进一步扩展我们的DnCNN,用于几个一般的图像去噪任务。
试验设置:
DnCNN-S
已知noise level的高斯去噪。设置 σ=15,25,50,patch size为40×40,裁剪128×1600个patch来训练模型

DnCNN-B
盲高斯去噪。设置noise level为σ∈[0,55],patch size为50×50, 裁剪128×3000个patch来训练模型

CDnCNN-B
盲彩色图像去噪模型。用Berkeley segmentation数据集的用432张彩色图像训练,BSD68数据集的彩色图像进行测试。设置noise level在[0,55],patch size为50x50,裁剪128×3000块训练模型

DnCNN-3
这是针对去噪、SISR和JEPG图片解压缩三种任务训练的网络
实验结果:
针对已知noise level 的高斯噪声,DnCNN-S和DnCNN-B都可以获得比竞争方法更好的PSNR结果。我们的DnCNN-S模型在三种噪声水平上均优于BM3D 0.6dB。 特别是,即使是没有已知噪声水平的单一模型,我们的DnCNN-B仍然可以胜过针对已知特定噪声水平进行训练的竞争方法。

对3种分辨率的图片进行降噪处理所需要的时间,DnCNN在CPU实现方面仍然非常具有竞争力。对于GPU时间,所提出的DnCNN实现了非常吸引人的计算效率。

DnCNN-3在三种不同任务与其他方法的对比,可以看出该网络在3种任务中都优于之前的方法,在高斯去噪和JPEG图片解压的效果尤为明显。这说明用一种网络结构处理多种不同类型的图片噪声是可行的。
结论:
本文提出了一种深度卷积神经网络用于图像去噪,整合批量归一化和残差学习以加速训练过程并提高去噪性能。不仅对noise level 已知的高斯去噪有效,也适用于盲高斯噪声去噪。还提出了训练单个DnCNN模型处理三种一般图像去噪任务的可行性,该方法不仅可以定量和定性地产生良好的图像去噪性能,而且通过GPU实现也具有良好的运行时间。

你可能感兴趣的:(图像处理论文)