RCAN这篇文章是2018年发表在ECCV上的一篇poster,作者Yunlun Zhang也是该领域的一个大牛。在文中作者对比了各项性能指标,均达到了state of the art的效果。在目前超分辨率领域越做越细的前提下,以提升指标性能为目的的文章越来越不好发表了。下面介绍一下文章的思路、highlight希望能够有点启发。

arxiv: https://arxiv.org/pdf/1807.02758.pdf

github:https://github.com/yulunzhang/RCAN

摘要

在超分辨率领域中,深度的卷积模型十分的重要,但是训练起来十分的困难;低频的输入或特征中有着很丰富的信息,但是这些信息在网络中被同等的对待,阻碍了卷积网络表达特征的能力。

为了解决上述问题,作者提出一个残差通道注意力网络(RCAN),通过提出RIR(residual in residual)模块来构建深度的网络,RIR中包含着许多的RG(residual group),RG中包含着许多的residual block,以及许多长连接跳跃(LSC)。RIR允许低频信息通过多个跳跃直接传播,使得网络集中学习图像中的高频部分。作者提出CA(channel attention) 通道注意力机制,通过考虑通道间的相互依赖性,来重新调整通道特征。

介绍

作者在这部分内容中列举了很多网络,目的是说明深度的网络在超分辨率问题上是有效果的。作者提出的RIR结构,提升网络的深度。对于低频信息的相互依赖性问题,作者提出了CA方法来调整通道的特征。

Residual Channel Attention Network(RCAN)

RCAN的网络结构如下图所示:

RCAN网络结构由四部分组成,第一部分是卷积浅层特征提取模块,第二部分是RIR深层特征提取模块,第三部分是上采样模块,第四部分是重建模块,网络最后的卷积层具有三个通道,表示输出的颜色。

RCAN网络损失函数采用L1损失:
$$
L(\Theta)=\frac{1}{N} \sum_{i=1}^{N}\left|H_{R C A N}\left(I_{L R}^{i}\right)-I_{H R}^{i}\right|_{1}
$$

Residual in Residual (RIR)

RIR结构中包含着若干个(10)residual groups(RG)结构以及long skip connection。每一个RG中包含着如果个(20)residual channel attention block(RCAB)模块,内部含有许多短的连接。

RIR结构通过堆叠残差块,利用skip connection这种结构来克服网络难以训练的问题。

channel attention(CA)

输入是一个 H×W×C(64) 的特征,我们先进行一个空间的全局平均池化得到一个 1×1×C 的通道描述。接着,再经过一个下采样层和一个上采样层得到每一个通道的权重系数,将权重系数和原来的特征相乘即可得到缩放后的新特征,整个过程实际上就是对不同通道的特征重新进行了加权分配。

其中,下采样和上采样层都利用 1×1 的卷积来实现,下采样层的通道数减少 r 倍,激活函数为 Relu,上采样层的激活函数为 Sigmoid。在论文中,作者采用的通道数 C=64,r = 16。

Residual channel attention Block(RCAB)

输入一个特征 input,我们首先进行一个卷积-Relu-卷积操作得到 f,然后 f 再经过一个 CA 模块进行重新缩放得到 x,最后将 x 和 input 相加得到输出特征。其中,卷积操作都采用 3×3 的卷积核。

实现的细节

RIR中RG个数:10;RG中RCAB的个数:20,conv的大小:3 x 3,channel:64

通道下采样的scale:16,C/16 = 4。