当前位置: 首页 > news >正文

【论文精读】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模块来减少伪影

http://www.xdnf.cn/news/601345.html

相关文章:

  • 学习黑客TTryHackMe — Tcpdump基础 | 网络安全入门(THM)
  • 【AS32X601驱动系列教程】SMU_系统时钟详解
  • Flume的大概简单介绍
  • 微信小程序:列表项上同样的css样式在IOS上字体大小不一样
  • 原创|查询大数据级数据表的AI实现思路(Excel2SQL,Text2SQL)
  • POI模板生成EXCEL 64000 style in a .xlsx Workbook
  • 数字信号处理大实验2 利用FFT估计信号的频率
  • QML与C++联合编程
  • OpenSSL详解
  • 【数据架构06】可信数据空间架构篇
  • MySQL 8.0 OCP 1Z0-908 题目解析(13)
  • MySQL 8.0 OCP 英文题库解析(八)
  • MySQL 8.0 OCP 1Z0-908 题目解析(12)
  • debian搭建ceph记录(接入libvirt)
  • 打破双亲委派模型的实践:JDBC与Tomcat的深度解析
  • RISC-V 开发板 MUSE Pi Pro OpenCV结合Gstreamer实时显示CSI摄像头
  • 03 基于 java udp 做一个dns服务器 和 一个dns代理服务器
  • Android Raspberry 请求 api 失败 iOS 请求成功【ssl 证书配置问题】
  • Android计算机网络学习总结
  • 【KWDB 创作者计划】_玩转数据库——纯硬核的工业级KWDB数据库产品评测报告(附测试代码)
  • Linux火墙管理及优化
  • 力扣-将x减到0的最小操作数
  • 【Hadoop】大数据技术之 HDFS
  • 对接钉钉消息样例:DING消息、机器人
  • vue3前端开发过程中,解决跨域
  • 如何管理固定资产
  • w~大模型~合集4
  • JAVA05基本数据类型和包装类的转换,转换成其他数据类型,包装类与字符串的转换+学生类的定义实例
  • [数据集]无人机视角检测分割数据集合集
  • 内容中台智能推荐系统实践路径