CVPR2022. Memory-Augmented Non-Local Attention for Video Super-Resolution

CVPR2022. Memory-Augmented Non-Local Attention for Video Super-Resolution

论文地址


文章提出了一种简单但有效的视频超分辨率方法。以往方法普遍采用时间上近邻的视频帧来帮助当前帧实现超分,但会存在空间帧对齐的问题,另外从附近相似的低分辨率图片中可能无法获得有用信息。文章采用跨帧非局部注意力机制来实现无需帧对齐的超分辨率,并设计了一种最新的记忆增强注意力模块来记住超分辨率训练过程中通用的视频细节,具有更好的精度和更高的泛化性能。

主要问题

视频超分辨率致力于从低分辨率视频中恢复高频细节,但存在两个问题。由于视频是运动的,因此融合相邻帧的信息前视频需要进行对齐,但在跑酷等快速变化的视频很难实现。此外低频视频中往往缺乏帮助视频超分辨率有用的信息,已有工作尝试从高频参考图片中迁移纹理来帮助视频超分,但无法满足时间一致性的问题。也有工作尝试从近邻帧来融合信息。但文章认为近邻帧获得的信息仍然有限,快速运动的视频中相邻帧之间的信息关联性更少,因此更难以挖掘有用信息。文章提出Cross-Frame Non-Local Attention模块来避免视频帧对齐的问题,由于有用信息主要存在于近邻的视频帧,文章提出了可学习的高斯权重来对相关的帧进行加权。为解决近邻帧信息缺失的问题,文章引入了Memory-Augmented Attention模块,维护了一个二维记忆池来总结整个训练集中的细节信息,作为额外的先验知识来帮助当前视频帧的超分。

文章贡献/创新点

  • 引入了高斯加权的跨帧非局部注意力模块,来避免视频超分辨率过程中的帧对齐问题,有效平衡局部和非局部信息源,在面对快速运动的视频时鲁棒性更强。
  • 首次引入额外的记忆增强注意力,通过结合通用的视频先验知识来帮助当前视频超分辨率。
  • 介绍了大型运动视频超分辨率的数据集。

相关工作

单图片超分辨率

早期单张图片超分辨率(Single Image Super-Resolution,SISR)主要使用图像处理算法,近期深度学习方法具有较好的效果。SRCNN使用了卷积神经网络用于SISR,VDSR和DRCN引入了深度残差网络。ESPCN将低分辨率图片编码进多个子像素通道,然后通过将通道打乱回空间维度来上采样得到超分辨率图像。其他方法还包括金字塔结构、递归残差网络、稠密跳跃连接和对抗网络。

视频超分辨率

视频超分辨率(Video Super-Resolution,VSR)可以利用近邻图像的信息,具有更好的效果,许多VSR工作致力于探究如何有效融合近邻帧的辅助信息。有些方法采用光流或单应性来对齐近邻帧,但在高速运动过程中估计变换时非常困难的。为了避免帧对齐的缺陷,Jo等人提出DUF,通过学习动态上采样滤波器来辅助结合帧像素中的整个空间邻域。TDAN和EDVR使用膨胀卷积层来采样周围邻域帧用于辅助当前帧。但这些方法依赖于近邻帧,在快速运动的情况下往往结果不行。

超分辨率中的非局部注意力

一些SISR工作包括CSNLN、RNAN、TTSR设计了许多非局部注意力机制用于图像超分辨率。Wang等人提出非局部神经网络来捕获视频段内部的像素关联性,达到时间和空间的长距离注意力。PFNL使用自注意力作为阶段性近邻帧融合的前处理过程。但长距离的非局部注意力能够找到更多和查询匹配的结果,也因此引入了错误的响应。作者仍然认为和查询相近的区域会比较远的区域具有更相似的匹配,一次使用了可训练的高斯图来加权非局部注意力。

记忆模型

记忆模型引入额外的记忆池来在训练中更新和读取,以便于增强模型的效果。

所提方法

文章所提的图像超分辨率网络结构:

记忆注意力视频超分网络结构

网络输入为当前的低分辨率帧ItR3×H×W\mathbf I_t\in\mathbb R^{3\times H\times W}和时间上近邻的低分辨率帧{Itτ,,It+τ}\{\mathbf I_{t-\tau},\cdots,\mathbf I_{t+\tau}\},近邻帧数目为2τ+12\tau+1,也包含当前帧。网络第一阶段对所有输入帧应用相同的编码网络,得到{Ftτ,,Ft+τ}RC×H×W\{\mathbf F_{t-\tau},\cdots,\mathbf F_{t+\tau}\}\in\mathbb R^{C\times H\times W}。网络第二阶段包括Cross-Frame Non-local Attention和Memory-Augmented Attention。

跨帧非局部注意力

跨帧非局部注意力能够捕获时间上和空间上长距离响应,因此可以避免空间不对齐的问题。

Cross Frame Non-local Attention Module

模块内首先对输入的特征图进行group normalization,得到{Fˉtτ,,Fˉt+τ}\{\bar{\mathbf F}_{t-\tau},\cdots,\bar{\mathbf F}_{t+\tau}\},中心特征Fˉt\bar{\mathbf F}_t作为查询张量。然后使用1×11\times 1卷积得到嵌入的查询、键和值张量,QRC×H×W\mathbf Q\in\mathbb R^{C'\times H\times W}KRC×T×H×W\mathbf K\in\mathbb R^{C'\times T\times H\times W}VRC×T×H×W\mathbf V\in\mathbb R^{C'\times T\times H\times W}。文章没有将张量在空间维度拍平后直接计算注意力权重,那样计算量太大,而是独立地和每一个近邻帧计算注意力。因此注意力权重矩阵的维度是Γ=QKRHW×HW\mathbf\Gamma=\mathbf{QK}\in\mathbb R^{HW\times HW}。为了防止较多注意力响应导致的无关信息,文章引入了高斯权重图GRHW\mathbf G\in\mathbb R^{HW}来对注意力权重的第二个维度做调制。高斯权重图中的标准差是网络可学习的参数,最终该模块输出为:

Xt=(GΓ)V \mathbf X_t=(\mathbf G\otimes \Gamma)\cdot \mathbf V

记忆增强注意力

记忆增强模块的结构为:

memory-augmented-attention

为缓解当前视频局部信息不足的问题,文章引入额外的可学习记忆池MRC×N\mathbf M\in\mathbb R^{C'\times N}来提供额外的指导,使用通用的注意力来计算输出:

Y^t=softmax(ΓM)M \hat{\mathbf Y}_t=\mathrm{softmax}(\Gamma_M)\mathbf M^\top

网络结构

网络中的编码器和解码器分别使用5个残差块和40个残差块构建,残差块和上采样块的结构分别为:

残差块和上采样块

上采样块为2个shuffle blocks,每个block执行2倍特征图上采样,参考ESPCN。

训练包含3个阶段,第一阶段固定memory-augmented attention-module,训练网络其余部分9000次迭代,损失函数为:

L1=OtGt1 L_1=\|\mathbf O_t-\mathbf G_t\|_1

其中Ot\mathbf O_t代表输出的超分辨率结果,Gt\mathbf G_t为对应的真值。

第二阶段固定权重,仅训练memory-augmented attention-module,损失函数为:

L2=YtQ1 L_2=\|\mathbf Y_t-\mathbf Q\|_1

其中Yt\mathbf Y_t是memory-augmented attention module的输出,Q\mathbf Q为当前帧的查询矩阵。由于Yt\mathbf Y_tsoftmax(ΓM)M^\mathrm{softmax}(\mathbf\Gamma_M)\hat{\mathbf M}成正比,因此该损失函数意在使记忆池中的知识可以表达查询矩阵Q\mathbf Q

记忆池需要从历史的经验中获取知识,这里是希望获取的知识可以表达出输入图片的特征(查询矩阵)。在一批样本训练后,记忆池中存在的知识为表达样本特征的通用知识。

仿真实验

记忆增强注意力图像超分效果对比

记忆增强注意力图像超分随记忆尺寸的效果