Image Super-Resolution Using Very Deep Residual Channel Attention Networks 精读笔记

Image Super-Resolution Using Very Deep Residual Channel Attention Networks 精读笔记

背景

这是一篇收录在ECCV2018的一篇单幅图像超分辨率论文

论文链接:Image Super-Resolution Using Very Deep Residual Channel Attention Networks

这篇论文主要解决两个问题:

  1. CNN网络的深度对SR效果的提升有很大的影响,但是因为梯度消失、梯度爆炸、深度网络退化,所以用作SR的更深的卷积神经网络更难被训练。
  2. 低分辨率的输入和特征都包含了很多应该被舍弃的低频信息,但是这些低频信息却跟高频信息一样的重要程度去参与训练,这样就降低了CNN的表征能力。

解决措施

  1. 为了解决更深的CNN难以训练,作者在网络中引入残差块,使得网络的深度大大增加。但是仅仅简单的叠加残差块,难以实现好的效果,所以作者提出了残差嵌套(RIR)结构,结构中的长跳链接(LSC)、短跳链接(SSC)以及残差块内的跨层链接都有助于绕过低频信息,让网络学习到更多的高频信息。
  2. 为了解决包含了更多高频信息的通道和包含了更多低频信息的通道以同样的重要程度参与训练的问题,作者引入了通道注意力机制(CA)。参考了文献Squeeze-and-Excitation Networks中的SE块。

详细算法

网络结构

image-RCAN

RCAN主要由四部分组成:

  1. 浅层特征提取
  2. RIR深度特征提取
  3. 上采样模块
  4. 重建部分

浅层特征提取

作者参考了之前论文的做法,用一层卷积层来提取浅层特征。

image-20230609173912082

\(F_0\)表示浅层特征提取之后得到的特征图,\(H_{SF}()\) 表示浅层特征提取,\(I_{LR}\)表示输入的低分辨率图像。

RIR深度特征提取

image-20230609174314668

这里的\(F_{DF}\) 为RIR深度特征提取的输出,\(F_g\)表示第g个RG块的输出 ,\(F_{g,b}\) 为第g个RG块中的第b个RCAB块的输出。

从上一步的浅层特征提取中得到了特征图\(F_0\) ,之后作为输入进入到RIR深度特征提取部分。

这部分是一个嵌套结构。

这部分包含G个RG块和一个长跳连接(LSC),经过最后一个RG模块后还要经过一层卷积层之后与\(F_0\)做对应元素求和。(这里增加一层卷积层的作用我自己认为是为了让这个嵌套结构增加更多的可学习的部分,从而获得更多的灵活性。)

其中每一个RG块包含了B个RCAB块和一个短跳连接(SSC),并且经过最后一个RCAB块之后也有一层卷积层之后与输入做对应元素求和。

image-20230609175456667

上图是RCAB的内部结构。虚线框内是通道注意力机制(CA),虚线框外是类似残差块结构。上述的LSC,SSC,残差块中的shortcut共同使得RCAN能够过滤掉一些低频信息,并且一定程度上避免了网络退化和梯度消失/爆炸问题的出现。

到这里就分析完了残差嵌套结构,下面着重分析通道注意力机制。

CA机制

之所以提出CA机制,是因为作者注意到两个问题:

  1. LR空间中的有很多低频信息和高频信息,低频的信息看起来更平坦,高频的信息通常是充满边缘、纹理等细节的区域。
  2. 卷积层的每一个卷积核都有自己的感受野,所以卷积后的输出是没办法利用感受野之外的上下文信息的。

作者根据对以上问题的分析,所以引入了SE块来调整不同的通道权重,从而让含有更多高频信息的通道在参与训练时以更加重要的身份参与就是指更大的权重。

image-20230609180502114

左侧是输入的特征图(\(H*W*C\)),右侧是经过加权之后的特征图。

第一步是Squeeze操作,通过全局平均池化操作:

image-20230609180843475

对每一个通道产生一个通道描述符。这样做的目的在于将全局的信息压缩到一起,增强了对全局信息的把握,让较低的层也能利用到更大范围的信息。

如果一个通道包含的高频信息越多,则获取到的通道描述符\(z_c\) 也就越大。这样就能对不同的通道有了不同的权值。但是这样做的缺点是,上述的步骤只是做了简单的求解平均值,是没有通过学习得到的,这样就会使得\(z_c\)是不变且独立的,这样的网络并不灵活。

为了获取通道间的非互斥关系,以及让CA机制变得可学习。作者提出了一个简单的门机制。

image-20230609181422088

通过对上一步获取的各个通道的\(z\) 进行降维操作,降到\(\frac{C}{r}\) 维。之后通过ReLU激活函数来获取非线性关系。然会恢复维度。最后通过sigmod激活函数控制每个通道的激励。从而得到各个通道的权重。

上采样和重建

经过了RIR深度特征提取之后的FDF作为上采样模块的输入,进行上采样,把粗分辨率特征提升到高分辨率特征。重建部分采用3个33C卷积核进行重建。最后作者为了RCAN网络跟先前的网络作比较,于是选择了同样的损失函数来优化模型。优化器选择的是Adam优化器。

image-20230611152739652

实验

实验环节的结论,仅代表我个人的看法。我只是一个初学者,很多定性结论的得出都是依靠直觉。还请各位批评指正。

实验一:去除RCAB块的CA layer。

实验方法:将RCAB块中的CA layer去掉。其余网络结构与论文保持一致。训练500个epoch。

实验二:去除网络中的SSC和LSC。

实验方法:将网络中的SSC和LSC去掉。其余网络结构与论文保持一致。训练500个epoch。

实验三:利用反卷积进行上采样。

实验方法:用反卷积进行上采样。其余网络结构与论文保持一致。训练500个epoch。

​ 利用上述三个实验训练出来的网络,处理Set5数据集,分别求PSNR,SSIM,明度、饱和度的平均值,得到以下数据。数据有改动,上次是直接对三通道求PSNR,SSIM。这次是单独对Y通道计算(与论文方法一致)。

实验一

HR Base No CA layer No SSC LSC Deconvolution
PSNR inf 13.884 13.902 16.274 15.822
SSIM 1 0.335 0.341 0.378 0.360
明度 133.31 118.72 123.49 122.90 116.85
饱和度 125.88 43.24 49.41 58.96 59.09
image-20230611152832760

​ 通过实验一(No CA layer)与Base对比发现,去掉了通道注意力机制,对重建后的图像质量提升反而有一定的帮助,与论文中的实验结论相悖。另外去掉了通道注意力机制之后,同样进行500个epoch,训练时间大约缩短了20%。时间缩短的原因不难想出。去除了通道注意力机制之后,参数量减大大减少。参数量的减少带来了运算量的减少,所以训练时间与重建时间都会减少。

​ 效果变差的原因我认为是在进行计算通道表示符的时候,直接采用了global pooling的方法将信息归一化至一个点,但是我认为特征图上的信息很大一部分靠位置来体现,这种全局池化的方式直接损失了位置信息。还有优化的空间。

​ 颜色的信息也有损失,但是我觉着不必担心,因为通过不断最小化L1Loss函数,更新网络的参数,会实现跟HR尽可能相近的颜色和结构信息。

实验二

image-20230611152915204

蓝色线是实验二的结果,绿色线是Base的结果。

​ 通过实验二与Base对比发现。在相同的迭代次数之下,实验二的loss值比base的高了大约11.3%。说明,SSC和LSC对加速训练有很大的影响。根据这个loss函数结果的不同,也能解释出实验三PSNR,SSIM更好的原因。因为训练效果不好,网络的主体权重还没怎么起作用,此时重建后图片的质量受上采样影响更大。另外通过对同一次训练不同时候取得的模型观测可以佐证这个结论。

image-20230611153000026

​ 此时训练的迭代次数较少,导致网络主体对图像影响不大,而图像产生较好的结果的原因是,上采样LR图像重建后的结果。

实验三

image-20230611153017387

​ 之所以做实验三,是因为我发现,重建后的图像会出现九宫格。起初我认为是data loader有问题,修改之后问题仍然存在。后面发现随着迭代次数的增加,九宫格的线会渐渐变细。因此我认为是网络中的一部分出了问题。又因为这个线出现的位置很特殊,每次总是把图像等分,所以我认为是上采样环节出了问题,所以采用反卷积代替的。但是代替后仍出现了九宫格。

补充实验

​ 用十一张320*180的风景图像,五张较大的(长宽都超过1200像素)细节更多的建筑的图像,以及五张较大的颜色丰富的花朵图像,用BD方式下采样4倍,分别输入到上述得到的四个模型中,并求平均值,得到以下数据。

image-20230611153348034

​ 得到的数据跟上次的结果相近,大部分情况下都是实验二的效果最好

​ 通过Flower与其他两组数据对比,发现Flower的SSIM指标很高。SSIM指标反映的是重建图像与HR图像在亮度、对比度和结构三方面的相似程度。所以我的想法是,分别求出上述四种种数据集在不同网络的HR图像和SR图像的亮度对比函数、对比度对比函数、结构相关系数,求取平均值,经过对比就能发现RCAN网络的短板。从而想办法去加强。

根据SSIM指标的计算公式,分别对上述几个数据集求L(Luminance 亮度)C(Contrast 对比度)S(Structure 结构)

image-20230611153554031

​ 经过数据集间相互对比发现,Flower的SSIM的指标更高的原因在于S复原的更好。另外在其他数据集中发现,L复原的效果最好,一般情况下S、C还有进步空间。

​ 下面是效果展示。(图像尺寸有修改)

​ 因为人类视觉局部性的特点 所以实际求SSIM是,SSIM在实际实现中是利用的是一个窗口在整个图像上逐像素移动。局部求解SSIM然后再利用高斯加权函数避免分块效应,再求取平均值作为全局的SSIM。所以通过上述算出的L、S、C相乘得到的SSIM与表格中的SSIM有出入。但是上述的L、S、C也可以大致反映出网络在这三个层面的表现。

image-20230611153627432
image-20230611153654173
image-20230611153658316
image-20230611153702383
image-20230611153706621
image-20230611153712884
image-20230611153720505
image-20230611153724001
image-20230611153727546
image-20230611153731936
image-20230611153734640
image-20230611153738113

​ 通过Flower_LR与其他LR对比发现,前者图像更加简洁,后者的图像中有很多细节信息,我想这是导致SSIM指标不同的主要原因。

​ 另外重建出的Set5、landscape与重建出的Building、Flower对比发现,较大的图像重建出来九宫格现象就很浅,较小的图像的九宫格就比较明显。通过这点我认为九宫格的出现跟卷积核的大小与输入图像的尺寸的比例有关系。输入的尺寸较小时,卷积核的感受野占比就更大,提取特征时就会提取不到更多的细节特征,另外在重建时,卷积和尺寸也较大,也会忽略一部分细节信息。

结论

​ 关于实验一的结果与论文相悖,我认为是训练迭代次数太少了(因为算力的问题,没有训练到模型收敛)。通过实验一,我认为这里的通道注意力机制像是锦上添花的部分,因为网络在收敛之前,重建的图像质量波动较大,所以在网络还没有收敛之前很难体现这里通道注意力的作用。所以才得出了与论文相悖的结论。另外在通道注意力机制中,全局平均池化操作仍有优化的可能。

​ 实验二,发现SSC和LSC在网络的训练中起着重要的作用,能以较大幅度加速训练过程。另外类似残差的结构能使网络扩展更多层而不出现梯度和消失梯度爆炸。

​ 实验三,最后还是留下了九宫格的问题,不过根据目前的趋势,我认为随着训练的进行可能会九宫格会消失。因为神经网络具有学习能力,通过调整参数会慢慢淡化九宫格。

​ 通过其他测试集的实验,发现网络在重建图像的对比度和结构还存在问题。另外就是九宫格的出现与输入图像的尺寸和卷积核的大小的比例有关。


Image Super-Resolution Using Very Deep Residual Channel Attention Networks 精读笔记
https://pixelpilot666.github.io/2023/06/09/Image-Super-Resolution-Using-Very-Deep-Residual-Channel-Attention-Networks-精读笔记/
作者
PixelPilot
发布于
2023年6月9日
许可协议