知乎同名账号同步发表
一、架构参数详解
这部分先讲架构,下部分讲架构中比较关键的部分的motivation。
网络架构的细节已经标注在图中了。图的上半部分是总架构,下半部分是单独一个EAM的架构。
输入noisy image,输出noise-free image。
作者将架构分为了三个module:
- feature extraction: f 0 = M e ( x ) f_0=M_e(x) f0=Me(x),只有一层。
- feature learning residual module: f r = M f l ( f 0 ) f_r=M_{fl}(f_0) fr=Mfl(f0),由若干EAM组成。
- reconstruction module: y ^ = M r ( f r ) \hat{y}=M_r(f_r) y^=Mr(fr),只有一层。
loss function是:
L
(
w
)
=
1
N
∑
i
=
1
N
∣
∣
R
I
D
N
e
t
(
x
i
)
−
y
i
∣
∣
1
=
1
N
∑
i
=
1
N
∣
R
I
D
N
e
t
(
x
i
)
−
y
i
∣
L(w)=\frac{1}{N}\sum_{i=1}^{N}||RIDNet(x_i)-y_i||_1=\frac{1}{N}\sum_{i=1}^{N}|RIDNet(x_i)-y_i|
L(w)=N1i=1∑N∣∣RIDNet(xi)−yi∣∣1=N1i=1∑N∣RIDNet(xi)−yi∣
kernel size除了上图中比较细的那个卷积是 1 × 1 1\times1 1×1,其他所有都是 3 × 3 3\times3 3×3。
关于channel,几乎所有的卷积层都是64,除了下面这个结构中的一层下采样是4:
这个是channel-wise的feature attention,下面是展开之后的样子:
(注意上图少画了soft-shrinkage,作者在
H
D
H_D
HD之后使用了它)
上图中的d,作者采用的是16,所以导致经过
H
D
H_D
HD之后获得了唯一一个channel为4的feature map,其他所有层的channel都是64的。
⚠️注意:最后的那个相乘是element-wise的,由于两者的size不同,所以需要先进行自适应的相乘,即将
1
×
1
×
c
1 \times 1 \times c
1×1×c的部分扩充为
h
×
w
×
c
h \times w \times c
h×w×c(adaptively rescaled),扩充方式是复制。
论文中notation和缩写有很多,其中ERB(enhanced residual block)指的就是:
上图这个比较细的卷积层就是整个架构唯一一个
1
×
1
1\times1
1×1的卷积层,其他所有卷积都是
3
×
3
3\times3
3×3的。
其他notation和缩写大多在上文的图中有标注,没标注的也比较简单,就不说了。
二、Contribution&innovation
先简要说一下,然后对重要地方,在下部分细讲。
作者表示他们的contribution如下:
- 是第一个在去噪中使用了feature attention的模型;
- 现有的model增加深度可能并不提升performance,并且造成梯度消失;
- 这是个one stage model(对比CBDNet是two stage model),说人话就是架构只有一个去噪阶段(对比CBDNet有估计噪声、去噪两个阶段)。
说一下第二个增加深度不增加性能,作者还表示:
simple cascading the residual modules will not achieve better performance.
对比作者的方法:增加EAM模块的数量,则能够提升performance,EAM中也包含了residual learning的思想。
三、feature attention
(提醒一下
g
p
g_p
gp是global pooling)
还是这个结构,它是个feature attention的结构,根据第一部分所讲,其实就是改变了feature map中不同channel的权重。当然这个不能算这项工作的原创,作者表示他们是参考了:
Squeeze-and-excitation networks.
当然还是做了点小小的改动,上面这个东西中 H D H_D HD后跟的是ReLU,而作者跟的是soft-shrinkage。
作者原话也放在这里:
The feature attention mechanism for selecting the essential features.
四、数据集&训练细节&消融实验
1, 训练数据集:
- synthetic image: BSD500,DIV2K,MIT-Adobe FiveK生成;
- real-world image:有SIDD,Poly,RENOIR生成。
(paper没说具体怎么合成噪声图,查了下代码,应该是直接加入Gaussion noise;对于真实的噪声图,查了下SIDD,是带ground-truth的noisy image dataset)
2, 数据增强方法:
- random rotation of 90°, 180°, 270°;
- flipping horizontally
3, 测试数据集:
- 4个真实噪声图片数据集RNI15,DND,Nam,SIDD。
- 3个合成的噪声图片数据集:widely-used 12 classical images,BSD68 color and gray 68 images。
4, 训练细节:
- batchsize=32,patchsize为 80 × 80 80\times80 80×80
5, 消融实验:
- 当LSC,SSC,LC三个连接(skip connection)都用的时候,效果是最好的(这三个连接在文章开头的图中),去掉任意连接的使用,效果都会下降。
⚠️注意:如果不用这些连接,那么增加网络的depth则不会提升performance。 - 有feature attention比没有要好。