【论文精读】2023 AAAI--FastRealVSR现实世界视频超分辨率(RealWorld VSR)

文章目录

  • 一、摘要
  • 二、Method
    • [2.1 现象(问题)--对应文中隐状态的分析(Analysis of Hidden State)](#2.1 现象(问题)--对应文中隐状态的分析(Analysis of Hidden State))
    • [2.2 怎么解决 --对应文中Framework](#2.2 怎么解决 --对应文中Framework)
      • [2.2.1 整体流程:](#2.2.1 整体流程:)
      • [2.2.2 HSA模块怎么工作?](#2.2.2 HSA模块怎么工作?)
        • [2.2.2.1 隐藏状态池](#2.2.2.1 隐藏状态池)
        • [2.2.2.2 选择性交叉注意力](#2.2.2.2 选择性交叉注意力)
  • 三、实验设置
    • [3.1 数据](#3.1 数据)
    • [3.2 训练设置](#3.2 训练设置)
  • 总结贡献

论文全称:Mitigating Artifacts in Real-World Video Super-Resolution Models
代码路径: https://github.com/TencentARC/FastRealVSR 未发布代码
更多RealWolrd VSR整理在 https://github.com/qianx77/Video_Super_Resolution_Ref

一、摘要

循环结构是视频超分辨率任务中一种普遍使用的框架,它通过隐状态对帧之间的时间依赖进行建模。当应用于具有未知和复杂退化的现实场景时,隐含状态往往包含不愉快的伪影,并将其传播到恢复的帧中。在这种情况下,我们的分析表明,当隐状态被更干净的对应物替代时,这些伪影可以大大减轻。基于这些观察,我们提出了一种隐状态注意力(HSA)模块,以减轻真实世界视频超分辨率中的伪影。具体而言,我们首先采用各种廉价滤波器来生成一个隐状态池(pool)。例如,高斯模糊滤波器用于平滑伪影,而锐化滤波器用于增强细节。为了汇聚一个包含较少伪影的新隐状态,我们设计了一种选择性交叉注意力(SCA)模块,在该模块中,输入特征与每个隐状态之间的注意力被计算。配备HSA,我们提出的方法,即FastRealVSR,能够实现2倍的速度提升,同时获得比Real-BasicVSR更好的表现。代码将会在 https://github.com/TencentARC/FastRealVSR 上提供。

二、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模块来减少伪影

相关推荐
Rocky Ding*6 小时前
深入浅出完整解析FLUX.2、Seedream(即梦)、Z-image、Qwen-Image、GLM-Image核心基础知识
论文阅读·人工智能·深度学习·机器学习·aigc·扩散模型·ai-native
w_zero_one6 小时前
链表(4)
java·数据结构·算法
吠品6 小时前
GitHub 周榜拆解:决策小模型扎堆上位
c语言·开发语言·算法
Ivanqhz6 小时前
MLA、DSA、CSA、HCA
人工智能·算法·机器学习
嘎嘎风7 小时前
MiniMind 学习笔记之 07 模型怎么学会猜词(旋钮是怎么被拧动的)
算法·源码阅读
m4Rk_7 小时前
【论文阅读】Agent 记忆机制(91):THEANINE——不删除过时记忆,让 Agent 记住事情是如何变化的
论文阅读·人工智能·学习·开源·github
和裕7 小时前
定制纸箱刀模费全解析:费用定义与可减免合作场景
大数据·运维·网络·人工智能·算法
白山编程大哥7 小时前
C语言篇:语法进阶
c语言·数据结构·算法
Doubbbbbbble云8 小时前
基于流处理框架的实时算法实现策略4
算法
2601_962885728 小时前
如何用 Python 计算 ROC 变动率指标做动量分析?
开发语言·python·算法