一、主要目的与贡献
这篇文章主要在传统的去噪神经网络上进行了了改良,提出了新的前馈降噪卷积神经网络(DnCNNs)。
主要的改良方法包括:改用残差学习、加入批量归一化。
效果:提升特定噪声水平的高斯去噪的效果、进一步扩展到一般性的图像去噪任务,即盲高斯去噪、单图像超分辨率、JPEG图像去块。
二、Introduction
批量归一化
与小批量SGD结合使用,在一批图像进入卷积层时,先计算其均值和方差,再进行归一化,然后将归一化后的数据输入卷积层;对于卷积层输出的数据,先通过学习到的输出数据的均值和方差将输出恢复到其原先的分布,再输入激活函数。
参考: 转载-通俗理解BN(Batch Normalization)
三、网络设计
A.网络深度
首先,卷积滤波器大小为3x3,此时深度为d的网络的感受野大小为(2d+1)*(2d+1)。(因为滤波器大小为3x3,所以从最后一层开始的对应的正方形边长为:1、3、5、7…)
为了和补丁大小为36x36的EPLL作比较,选择了和它差不多的感受野,35x35。因此,对应的网络深度即为17((2x17+1)x(2x17+1))。
B.网络架构
网络的输入为y=x+v(噪声观察=干净图像+残差图像),该网络期望学习R(y)=v。
损失函数为预测的残差图象与真实残差图象间的平均均方误差。待学习的参数为各卷积层的卷积核参数。
(1).深层建筑
- Conv + ReLU:第一层,输入为35x35xc的图像,经过64个3x3x3的卷积核卷积,输出为64张35x35的特征图,即35x35x64的图像。(因为加了padding,所以大小没有变)
- Conv + BN + ReLU:第(2~(d-1))层,有64个3x3x64的卷积核,所以这些层的输入输出都为35x35x64的图像。在卷积和激活函数间添加批量归一化。
- Conv:通过c个3x3x64的卷积核,重建c维图像,作为输出。
参考:多通道卷积运算
(2).减少边界伪像
在该网络中,直接对输入进行零填充策略,神奇的没有出没有边界伪像。
C.残差学习与批量标准化
残差学习更适合identity mapping。而F(y)比R(y)更接近identity mapping。
对比图二在有无RL,有无BN的四种情况下的SGD算法与Adam算法,两种算法都在有RL,有BN的情况下,取得了最好效果。
D.与TNRD的联系
额额,扩展出的TNRD模型还没看,这部分有点看不懂。
待看:Image Denoising State-of-the-art
E.扩展到一般性的图像去噪
一般的方法是先估计噪声水平,再用相应噪声水平的模型。这种方法一是效果一般,二是只适用于高斯噪声分布。
由于该论文的方法采用了残差估计,很方便的扩展到了未知水平的高斯去噪,以及常见的三种一般性的去噪任务。
四、实验结果
A.实验设置
- DnCNN-S:用于特定噪声水平的高斯去噪,训练数据为三种噪声水平的共计128x1600张40x40的补丁。深度为17.
- DnCNN-B:用于盲高斯去噪,训练数据为噪声水平在0~55之间的,尺寸为50x50的128x3000个补丁。深度为20。
- CDnCNN-B:用于盲彩色图像去噪,训练数据为噪声水平在0~55之间的,尺寸为50x50的128x3000个补丁。
- DnCNN-3:用于三个一般性图像去噪任务,训练数据为生成的噪声图像,下采样图像,压缩图像。深度为20。
C.评估方法
对图像的PSNR的提升效果,以及视觉效果。
PSNR:峰值信噪比 10log10(max^2/MSE)。