《Self-Guided Network for Fast Image Denoising》阅读笔记

论文题目:Self-Guided Network for Fast Image Denoising

发表时间:ICCV 2019

作者及其背景:Shuhang Gu1, Yawei Li1, Luc Van Gool1,2, Radu Timofte1 (1Computer Vision Lab, ETH Zurich, Switzerland, 2KU Leuven, Belgium )

Contributions

  • 提出了一种快速且高效的内存网络SGN来处理图像去噪任务。通过采用自顶向下的自导体系结构,SGN在降噪性能,速度和内存效率方面均优于当前算法。
  • 我们提供详细的消融研究,以分析和验证所提出的自我指导策略的优势。
  • 提供了关于合成和真实数据集的定量和定性实验结果,以将SGN与最新算法进行比较。

Motivation

随着各种消费相机的广泛普及,对高精度和高效图像降噪算法的需求比以往任何时候都更加强大。

为了追求更准确的去噪结果,现在有一些复杂的网络。尽管在一些数据集上这些方法的效果很有竞争力,但是它们繁重的计算和内存占用量阻碍了它们在硬件受限的设备(例如智能电话或消费电子产品)上的应用。

Algorithm

Overall strucure of SGN

给定输入图片 I 0 I^0 维度为 M × N × C M\times N \times C ,SGN首先对 I 0 I^0 进行suffle操作,得到 I K I^K ,维度为 { M / 2 k × N / 2 k × 4 k C } k = 1 , . . . , K \{M /2^k\times N/2^k\times 4^kC\}_{k=1,...,K} ,然后对 I k I^k 在第 K K 层利用 f K ( ) f^K(\cdot) 进行特征提取。得到低 K K 层的信息之后,我们将其传播至 K 1 K-1 层。通过中间层网络 { f k ( ) } k = 1 , . . . , K 1 \{f^k(\cdot)\}_{k=1,...,K-1} ,多尺度上下文信息逐渐移向全分辨率并且指导最底层的子网络 { f 0 ( ) } \{f^0(\cdot)\} 生成最终的估计。

Details

在这里插入图片描述
图中右下角Shuffle/2与X2的箭头画反了。

在蓝色框中卷积层的数目为3。

在第k层中,通道数是第0层的 4 k 4^k 倍,在这一层我们使子网络 f k ( ) f^k(\cdot) 得到的特征矩阵数为 c k = 2 k × c 0 c^k=2^k\times c^0 ,其中 c 0 c^0 为第0层的特征矩阵数。由于输入的矩阵尺寸是原来的 1 / 4 k 1/4^k ,所以比在原图直接进行卷积要快。

在第 k + 1 k+1 层得到的特征矩阵先进行shufflex2操作,通道数变为了 c k + 1 / 4 c^{k+1}/4 ,之后与第 k k 层的特征矩阵进行拼接,得到的通道数为 c k + c k + 1 / 4 c^k+c^{k+1}/4 ,之后经过卷积层降维得到的矩阵通道数为 c K c^K

注意在最底层不包含残差模块(蓝色)。

Experiment

Setting

训练集:DIV2K中的800张 2040 x 1550 + (2040x1550+) 。采用随机翻转和旋转操作的数据增强功能增加训练数据。

测试集:DIV2K中的100张。

为了与其他方法比较,选取了Berkeley segmentation数据集中的68张图片。

添加的高斯噪声的方差 σ \sigma 为30,50,70.

tation数据集中的68张图片。

添加的高斯噪声的方差 σ \sigma 为30,50,70.

使用 β 1 = 0.9 \beta_1=0.9 的Adam优化器,在每一次迭代过程中,我们从训练集中随机裁剪了8个大小为256×256的子图像。前500K次迭代学习率为 1 × 1 0 4 1\times 10^{-4} ,之后的500K次迭代衰减为 1 × 1 0 5 1\times 10^{-5}