论文阅读:FFDNet:Toward a Fast and Flexible Solution for CNN based Image Denoising

 

title

Introduction

FFDNet是Zhang Kai的一篇承前启后之作,从DnCNN到FFDNet再到CBDNet是一个网络的泛化过程,处理的对象从均匀的高斯噪声变成更加复杂的真实噪声。DnCNN利用Batch Normalization和residual learning可以有效地去除均匀高斯噪声,且对一定噪声水平范围的噪声都有抑制作用。然而真实的噪声并不是均匀的高斯噪声,其是信号依赖的,各颜色通道相关的,而且是不均匀的,可能随空间位置变化的。在这种情况下,FFDNet使用噪声估计图作为输入,权衡对均布噪声的抑制和细节的保持,从而应对更加复杂的真实场景。而CBDNet进一步发挥了这种优势,其将噪声水平估计过程也用一个子网络实现,从而使得整个网络可以实现盲去噪。
该网络的特点在于:

  1. 将噪声水平估计作为网络的输入,可以应对更加复杂的噪声,如不同噪声水平噪声和空间变化噪声,而且噪声水平估计可以作为权重权衡对噪声的抑制和细节的保持。
  2. 将输入图像下采样为多张子图像作为网络输入,输出的子图像再通过上采样得到最终的输出。该操作在保持结果精度的条件下,有效地减少了网络参数,增加感受野,使得网络更有效率。
  3. 使用正交矩阵初始化网络参数,从而使得网络训练更有效率。

Network

网络结构

FFDNet

网络参数

parameters

损失函数

L(Θ)=12N∑Ni=1∥F(yi,Mi;Θ)−xi∥2\mathcal{L}(\Theta)=\frac{1}{2N}\sum^N_{i=1}\|\mathcal{F}(y_i,M_i;\Theta)-x_i\|^2L(Θ)=2N1​i=1∑N​∥F(yi​,Mi​;Θ)−xi​∥2

Experiment Results

result
FFDNet与BM3D和DnCNN有相似的噪声水平敏感度的表现。当真实噪声水平未知时,设置比较大的输入噪声水平能更有效地去除噪声,保持更好的视觉效果。

代码地址:github