【论文精读】2023 AAAI--FastRealVSR现实世界视频超分辨率(RealWorld VSR)
文章目录
- 一、摘要
- 二、Method
- 2.1 现象(问题)--对应文中隐状态的分析(Analysis of Hidden State)
- 2.2 怎么解决 --对应文中Framework
- 2.2.1 整体流程:
- 2.2.2 HSA模块怎么工作?
- 2.2.2.1 隐藏状态池
- 2.2.2.2 选择性交叉注意力
- 三、实验设置
- 3.1 数据
- 3.2 训练设置
- 总结贡献
一、摘要
循环结构是视频超分辨率任务中一种普遍使用的框架,它通过隐状态对帧之间的时间依赖进行建模。当应用于具有未知和复杂退化的现实场景时,隐含状态往往包含不愉快的伪影,并将其传播到恢复的帧中。在这种情况下,我们的分析表明,当隐状态被更干净的对应物替代时,这些伪影可以大大减轻。基于这些观察,我们提出了一种隐状态注意力(HSA)模块,以减轻真实世界视频超分辨率中的伪影。具体而言,我们首先采用各种廉价滤波器来生成一个隐状态池(pool)。例如,高斯模糊滤波器用于平滑伪影,而锐化滤波器用于增强细节。为了汇聚一个包含较少伪影的新隐状态,我们设计了一种选择性交叉注意力(SCA)模块,在该模块中,输入特征与每个隐状态之间的注意力被计算。配备HSA,我们提出的方法,即FastRealVSR,能够实现2倍的速度提升,同时获得比Real-BasicVSR更好的表现。代码将会在 https://github.com/TencentARC/FastRealVSR
上提供。
更多RealWolrd VSR整理在https://github.com/qianx77/Video_Super_Resolution_Ref
二、Method
2.1 现象(问题)–对应文中隐状态的分析(Analysis of Hidden State)
(1) 隐状态在循环方法中传播伪影。
隐状态在单项循环结构中有两个目的,一个是参与当前帧的重建,另外一个是将当前帧的信息传递到下一帧。
存在一个矛盾的关系:
如果使用了上一帧的隐状态,而上一帧没有恢复好,存在伪影,实际上这些伪影信息会通过隐状态传递到当前帧,放大这种异常,如图第一行和第三行,
如果抛弃了上一帧的因状态,那么会造成细节和边缘的丢失。
(2)将GAN模型中的隐状态替换为MSE模型中对应的隐状态可以减轻伪影。
具体的操作如下,在同一段视频序列中推理MSE模型和GAN模型,然后存下每一个隐状态,最后组成一个组合模型(combine model),
这个模型的隐状态有MSE模型提供,backbone是GAN模型。
作者发现通过这种操作可以减轻整体的伪影(图4(a)),但是同时也会造成一些细节的丢失(图4(b)),所以作者觉得还是需要在GAN的隐状态直接操作比较好,让它既有平滑的部分,又能保留细节。
2.2 怎么解决 --对应文中Framework
提出了一种隐状态注意力(HSA)模块,以直接操控隐状态并减轻伪影。图6中展示了一个概览。
2.2.1 整体流程:
1、几个ResBlock提取浅层特征
2、使用SpyNet计算光流,上一帧隐状态warp到当前帧,使用concat拼接当前帧浅层特征,并通过几个ResBlock提取深层特征
3、将深层特征送入上采样模块UP,然后加上原始图像的bilinear上采样结果
4、特殊点: 这篇论文针对上一帧的隐藏状态做了特殊处理,经过了HSA模块
2.2.2 HSA模块怎么工作?
2.2.2.1 隐藏状态池
隐藏状态池是一个容器,包含多个模糊和清晰版本(blurry and sharp version),其实就是使用多个固定卷积核的卷积获得相应版本的状态。
例如公式5是一个模糊版本的k是一个模糊核,通过卷积,处理后的隐藏状态就会减少伪影
公式6是一个锐化版本,通过原始状态-模糊状态的残差再加上原始状态,获得锐化版本,原理和USM其实是一样的。
2.2.2.2 选择性交叉注意力
已经或许多个版本的隐藏状态了,怎么选择?使用交叉注意力
通过图2可以发现,仅仅使用当前帧的特征其实是可以去除伪影的,这个时候当前帧的特征和上一帧的问题状态(state)其实是有很大的距离的。
那么整体的目标就是让模型能够区分这些不同的状态,让有伪影的部分使用当前帧特征,让没有伪影的特征和当前特征融合,突出细节,所以使用了交叉注意力。
具体操作: 卷积提取当前帧特征作为Q,卷积提取上一帧状态的多个K和V,softmax得到最后结果
三、实验设置
3.1 数据
GT采用REDS,LQ类似RealBasicVSR,尺寸64*64
序列长度和RealBasicVSR也一样,15帧+flip,
3.2 训练设置
1、训练没有HSA的单项循环网络 Unidirectional Recurrent Network (URN) 300k次,仅使用L1 loss
2、原有基础加上HSA模块,训练70k L1 loss, perceptual loss 、 GAN loss
3、采用Real-ESRGAN相同的鉴别器
4、隐状态池采用3个模糊滤波器和2个锐化滤波器
总结贡献
1、分析时序伪影的来源
2、使用HSA模块来减少伪影