今天介绍一篇CPVR19的Oral文章,用二阶注意力网络来进行单图像超分辨率。作者来自清华深研院,鹏城实验室,香港理工大学以及阿里巴巴达摩院。
文章地址
github code
文章的出发点:现存的基于CNN的模型仍然面临一些限制:

  1. 大多数基于CNN的SR方法没有充分利用原始LR图像的信息,导致相当低的性能
  2. 大多数CNN-based models主要专注于设计更深或是更宽的网络,以学习更有判别力的高层特征,却很少发掘层间特征的内在相关性,从而妨碍了CNN的表达能力。

**文章的大体思路:**提出了一个深的二阶注意力网络SAN,以获得更好的特征表达和特征相关性学习。特别地,提出了一个二阶通道注意力机制SOCA来进行相关性学习。同时,提出了一个non-locally增强残差组NLRG来捕获长距离空间内容信息。
话不多说,直接看方法

方法

在这里插入图片描述

总体网络框架

首先,SAN主要分为四个部分,浅层特征提取,基于非局部增强残差组的深度特征提取,上采样模块以及重建模块。采用一层卷积层来提取浅层特征:
在这里插入图片描述
然后深度特征:
在这里插入图片描述
上采样特征:
在这里插入图片描述
最后重建:
在这里插入图片描述

非局部增强残差组NLRG

在这里插入图片描述
NLRG包括数个区域级非局部模块RL-NL和一个同源残差组结构SSRG。
SSRG包括相当于就是G个局部模块LSRAG加上一个同源残差连接结构SSC,所谓同源残差连接,就是把LR的特征加到每个group的输入x中,这种连接不仅可以帮助深度CNN的训练,同时还可以传递LR图像中丰富的低频信息给high-level的层。

在这里插入图片描述
Wssc是一个可学习参数,一开始被设置为0。对于每个group来说,都会收到SSC传递过来的F0
在这里插入图片描述
RL-NL模块
在这里插入图片描述
通常来说,non-local模块是用来在high-level任务中捕获整幅图像的长范围依赖的。但是,全局non-local操作可能会受限于:

  1. 全局non-local操作需要大量的计算量,如果特征size很大。
  2. 对于low-level的任务来说,在一定的区域范围中进行non-local操作被证明是有效的

因此,在SAN中,我们将图像划分为kxk大小,在每个region中进行non-local操作。
LSRAG模块
在这里插入图片描述
像其他的CNN模型一样,SAN也将网络模块化,每个LSRAG模块都用了local 的residual 连接
在这里插入图片描述
在LSRAG的末端,有一个SOCA模块,即二阶通道注意力机制。
SOCA
在这里插入图片描述
相比于SENet里面的通道attention使用的是一阶统计信息(通过全局平均池化),本SOCA探索了二阶特征统计的attention。方法:

  1. 协方差归一化:
    协方差可以用来描述变量之间的相关性,所以对于HxWxC的特征,reshape为WH(C个维度),可以用协方差矩阵描述C个通道之间的相关性。采样协方差矩阵可以被计算得到:
    在这里插入图片描述
    其中在这里插入图片描述,I和1分别是sxs的单位矩阵(对角线是1)和全1矩阵。
    对得到的协方差矩阵用半正定矩阵进行奇异值分解得到
    在这里插入图片描述
    U是一个正交矩阵,对角线元素都是奇异值(非递增)。
    然后协方差归一化被转化为奇异值的秩:
    在这里插入图片描述
    α是一个正数,论文中被设置为二分之一(如果是1则没有归一化)
    channel attention
    类似于SE Block,一层卷积用来降维(通常是十六分之一),一层恢复通道数。

在这里插入图片描述
这里的z是通过上面协方差归一化后得到的
在这里插入图片描述

用牛顿迭代法求协方差归一化

因为原始的EIG在GPU上没办法快速运行,所以作者使用了牛顿迭代法逼近近似值。
在这里插入图片描述
在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐