Bootstrap

论文笔记:DnCNNs(Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising)

一、主要目的与贡献

这篇文章主要在传统的去噪神经网络上进行了了改良,提出了新的前馈降噪卷积神经网络(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)。

;