CVPR21 - BasicVSR:简单有效的视频超分辨率Baseline

2023-11-11

原文信息

在这里插入图片描述
原文链接

初识

相比于图像超分,视频超分(VSR,Video Super-Resolution)显然是一件更具挑战性的任务。视频超分比图像超分多了时间维度的信息、更为复杂,而在当时,现有的SOTA方法都基于各种各样的复杂设计,对于各组件也缺乏详细的分析。

所以这篇文章的核心贡献点就是:对目前VSR(vedio super-resolution)方法中的不同组件进行解耦+分析,并对部分组件经过细微修改,搭建了一套简单清晰的方案(Basic VSR),在效果和性能上都超越了当前的SOTA。BasicVSR也容易扩展成更强大的模型,文章在进行扩展后,也得到了更强的IconVSR。

在这里插入图片描述

从上图也可以看出来本文提出的方案在当时所有方法中的优越性

相知

组件分析

论文分析了当下的VSR方法,所其用到的技术分为四种组件:Propagation(传播)、Alignment(对齐)、Aggregation(聚合)以及Upsampling(上采样)。

其中,Propagation表示在时间维度上进行特征传播,Alignment表示对非对齐的图像/特征进行的空间变换操作,Aggregation进行对齐特征的进一步融合,Upsamping表示对聚合后的特征进行转换得到最终的高清视频(上采样)。作者认为影响最大的两个组件主要是Propagation和Alignment。

在这里插入图片描述

列举了当前VSR方法的各组件组成情况,其中最优的策略已加粗.

Propagation:这是对VSR方法影响最大的组件,目前的传播策略大致可以分为三类:local(局部)、unidirectional(单向)和bidirectional(双向)。

  • local局部策略:其直接忽略了长距离信息的建模(时间维度上帧间距离),即不采用任何时序上的特征传播策略,这显然限制了其表现。作者也做了一个实验来验证这个说法,如下图所示,将测试序列分为K段用BasicVSR进行超分,报告每帧的PSNR指标,其中黑色的虚线表示K=1(全局传播)作为对比基准。可以发现,当K越大其整体效果越差,并且每一段在两段会出现较大的波动,这说明时序信息,特别是长距离时序信息对于VSR是非常重要的。
    在这里插入图片描述
  • unidirectional单向策略:顾名思义,其做法是将特征是从第一帧逐步传播最后一帧。这会导致不同阵帧之间获取信息不平衡(早期帧获取信息少,后期帧获取信息多),从而导致早期的视频帧超分效果较差。作者也同样做实验对比了单向帧和双向帧的效果差异,如下图所示,黑线表示双向策略作为基准。可以看到单向策略中,早期帧的超分效果较差,并且整体效果弱于双向策略。(只有最后一帧超过了双向策略,这是因为双向策略的初始化特征为0导致的)
    在这里插入图片描述
  • bidirectional双向策略:不是单向的特征传播,包括了正向时序(forward)和逆向时序(backward)的特征传播,避免上述两种方式的缺点。对于图像帧数学公式: x i x_i xi,给定相邻的两帧数学公式: x i − 1 , x i + 1 x_{i-1},x_{i+1} xi1,xi+1,其前向和反向特征分别为:
    在这里插入图片描述

Alignment也非常重要,将高度相关但是未对齐的特征进行空间变换,从而使其对齐,用于后续的聚合操作。其主要也分为三类:without alignment(无对齐)、image alignment(图像对齐)和feature alignment(特征对齐)。

  • Without alignment无对齐:未对齐的特征/图像会导致性能欠佳(suboptimality),作者进行实验,取消BasicVSR中的对齐操作,直接对特征进行concate,导致1.19dB的PSNR下降.
  • Image alignment图像对齐:基于图像进行光流估计和变换(warping)进行图像对齐,但是由于光流估计得不准确,导致变换后的图像存在模糊、不准确的问题,导致效果欠佳。作者实验发现图像级对齐会导致0.17dB的PSNR下降.
  • Feature alignment特征对齐:基于图像进行光流估计,再对特征图进行变换,从而对齐特征。此外,对齐后的特征还会送入后续的残差Blocks进行进一步的细化:
    在这里插入图片描述

其中,S表示光流估计,W为空间变换,R为残差模块

Aggregation and Upsampling:BasicVSR采用最基础的组件,聚合操作是直接concate中间特征,上采样模块包括了几层卷积+pixel-shuffle操作。最后输出每一帧对应的高清图像:
在这里插入图片描述

pixel-shuffle是一种低计算量的上采样方式,可参考https://zhuanlan.zhihu.com/p/523432126

BasicVSR

BasicVSR的整体框架如下图所示,根据上述的分析,Propagation采用双向策略,Alignment采用基于feature-level的光流估计,Aggregation和Upsampling使用concate加pixel-shuffle操作.
在这里插入图片描述
BasicVSR简单但有效,在效果和性能上都不输现有的VSR方法,并且容易扩展。

IconVSR

作者基于BasicVSR,新增信息重填机制(Information-refill mechanism)和耦合传播(coupled propagation)得到IconVSR,这能进一步避免传播过程中的错误累积以及促进信息融合,从而提升模型表现。
在这里插入图片描述
Information-Refill:在图像边界以及遮挡区域通常存在不准确的对齐,在长距离信息传播时会导致误差的进一步累积。为了减缓这个问题的影响,作者提出了信息重填机制(information-reffil)来进行特征细化(refinement)。如上图(a)所示,作者额外采用了一个特征提取器对关键帧及其相邻帧提取深层特征,并且将提取出来的特征与传播链路中的对齐特征进行融合。具体融合过程如下式所示:
在这里插入图片描述
在这里插入图片描述

其中E表示特征提取器,C为卷积操作,R是与之前一样的残差Blocks.

简单地理解这个过程,就是在特征传播过程中,对于关键帧,在进行特征对齐之后(即经过之前的S和W操作],额外引入一个深度特征进行融合。因为这个深度特征只考虑了当前帧与相邻帧,有利于矫正长期累积的对齐错误。并且,由于关键帧只是所有图像集中一个很小的子集,所以这个机制带来的额外计算量也比较小。

Coupled Propagation:在BasicVSR中采用的双向传播机制是独立地在两个方向上进行的(backward与forward),每条分支只能捕获到单向过来的信息。作者为了更好地利用序列中的信息,将两条分支进行相互联系,如图(b)所示,在进行forward传播时,额外引入backward分支中累积的信息(先backward再forward)。具体过程如下式所示:
在这里插入图片描述
引入这种操作使得在forward分支中的每一步都可以考虑到整个序列的信息,使得输出质量更高,并且没有带来额外的计算负担。

部分实验

这里只列举部分实验结果和可视化对比效果,更多的消融实验与分析参照原文

下表展示了本文提出的方法与当前SOTA方案的对比(包括参数量、推理速度、效果等).
在这里插入图片描述

下面两张图展示了不同数据集上BasicVSR,IconVSR与其他方法的可视化对比结果。
在这里插入图片描述

回顾

本文发表于CVPR2021,是VSR领域一篇比较有代表性的论文,也开启了BasicVSR系列(包括后面的BasicVSR++、RealVSR等)。本文一作Kelvin C.K. Chan来自南洋理工大学,在图像超分和视频超分任务上都做了一些不错的工作,贴上其Google Scholar个人主页

这篇文章没有涉及到太多网络模块的设计,更像是一篇梳理当前VSR的报告,通过对现有组件的结合搭建了一个简单有效的baseline,并基于其进行扩展,得到了IconVSR。它们在效果和性能上都表现得非常好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CVPR21 - BasicVSR:简单有效的视频超分辨率Baseline 的相关文章

随机推荐

  • NCRE——网络工程师——网络技术

    对计算机发展具有重要影响的广域网 ARPANET 第一个运营的封包交换网络 IP电话系统有4个原件 网关 终端 网守 多点控制单元 通过MCU实现多点通信 网关可以看作H 323设备 IP电话中 网关的功能包括 A 号码查询 B 信号调制
  • 时序预测

    时序预测 MATLAB实现BP神经网络未来多步预测 目录 时序预测 MATLAB实现BP神经网络未来多步预测 预测效果 基本介绍 模型描述 程序设计 参考资料 致谢 预测效果 基本介绍 本次MATLAB实现BP神经网络时间序列未来多步预测
  • cmake生成动态链接库

    使用CMake生成动态链接库的步骤如下 1 在CMakeLists txt文件中指定要编译的源文件 例如使用add library命令 2 使用CMake生成Makefile文件 3 在终端中进入到CMake生成的Makefile文件所在的
  • 二、nginx server基础配置[root、alias、index]

    一 root 解释 root与alias类似 root其寻找文件是root地址 location 如下例子会去 var www html work下面寻找文件 如http localhost 80 work ab html其会寻找 var
  • STM32学习笔记:adc采样得到的电压值用485发送给pc

    采用adc1的通道10 将采集到的电压值用485发送给PC显示 先上原理图 源代码见附件 这里想说的是几个要注意的问题 1 ad输入的电压经过了R42和R44进行分压 所以pc显示的电压值将会减半 2 采用这个函数进行发送数据的时候 每次都
  • react中使用markdown组件——react-md-editor

    react中使用markdown组件 组件推荐 react md editor https github com uiwjs react md editor 在项目中使用过后是这样的 左侧内容可以默认 可以手动回填 简单介绍 下载依赖 np
  • 利用python自定义图片大小

    from PIL import Image import os 生成图片 并使用二进制方式打卡 读取图片中的内容 读取图片中的内容 img Image name RGB 1024 1024 255 160 255 img sane pyim
  • word怎么改一张纸的方向_word怎样单独改变一张纸的方向

    现在 您想要实现这样的效果 想设置其中的某一页为横向的 而其它页则统一为纵向的 如何设置呢 方法如下 相当简单 单独设置Word某页为横向 纸张大小 页边距等 均使用如下方法 比如 您的Word文档总的有十页 现在 您要将第二页的纸型方向设
  • servlet的基本使用

    目录 一 servlet的概念 二 servlet的生命周期 三 servlet实现登录的案例 登录界面 实现式开发 继承式开发 servlet的配置 配置式开发 注解式开发 一 servlet的概念 狭义的 Servlet 是指 Java
  • 密码学基础系列之(2.1传统对称密钥密码之三)

    多码代换密码 多码代换中 明文字符与密文字符的关系是一对多 密文C除了与明文P有关外 还与P的位置有关 自动密钥密码 autokey cipher P P1P2P3 C C1C2C3 k k1 P1 P2 加密 Ci Pi ki mod N
  • c语言 adt实验报告,Android实验报告

    Android实验报告 由会员分享 可在线阅读 更多相关 Android实验报告 90页珍藏版 请在人人文库网上搜索 1 Android 实验报告 专业 计算机科学与技术 班级 13419011 学号 1341901124 姓名 武易 精品
  • 已经上架的app(可供销售)在AppStore上搜不到的解决办法

    能搜索到但是是旧版本的情况 把你的app价格调为6元RMB 然后地区只选择中国 保存 这样你的app状态就会变成pending contract 然后把你的app调整成免费 地区全选 保存 再等半小时左右 AppStore就可以搜到了 亲测
  • 【机器学习项目实战】Python基于协同过滤算法进行电子商务网站用户行为分析及服务智能推荐

    说明 这是一个机器学习实战项目 附带数据 代码 文档 代码讲解 如需数据 代码 文档 代码讲解可以直接到文章最后获取 1 项目背景 电子商务网站数量迅速上升 将电子商务网站浏览者变为实际消费者 满足消费者需求 通过不同形式提升消费者忠诚度是
  • 兼容性测试方案

    目的 快速覆盖用户的各种操作环境 进行快速验证 1 常规项目测试策略 提高重视度 在需求分析 测试设计 测试执行 收尾阶段都要加大兼容性测试的比重 1 1 需求阶段 在需求阶段要获取兼容性测试环境的来源 来源为产品经理和用户现场使用情况 更
  • java动态规划,求最大子段和,并且求出开始位置,结束位置

    public static void main String args int x 1 3 2 11 8 4 13 5 4 8 5 System out println 最大子段和为 MaxAdd x private static int
  • 基础设计一——FPGA学习笔记<2>

    目录 零 设计流程 一 按键点亮LED灯 1 硬件资源 2 项目设计 3 波形设计 4 创建Vivado工程 编辑 lt 1 gt 添加设计文件 lt 2 gt 添加仿真文件 5 引脚约束 6 生成比特流文件 7 下载验证 8 程序固化 二
  • for-loop 与 json.Unmarshal 性能分析概要

    原文地址 for loop 与 json Unmarshal 性能分析概要 前言 在项目中 常常会遇到循环交换赋值的数据处理场景 尤其是 RPC 数据交互格式要转为 Protobuf 赋值是无法避免的 一般会有如下几种做法 for for
  • Spring入门概述及基本知识点

    Spring是什么 我们常说的Spring 其实在官网中全称是SpringFrameWork Spring是一个轻量级 非入侵式的Java开发框架 主要用于业务层 和整合其他层 解决了业务层和表现层 持久层的耦合问题 将面向接口编程贯穿整个
  • boost介绍

    boost是一个准标准库 相当于STL的延续和扩充 它的设计理念和STL比较接近 都是利用泛型让复用达到最大化 不过对比STL boost更加实用 STL集中在算法部分 而boost包含了不少工具类 可以完成比较具体的工作 boost主要包
  • CVPR21 - BasicVSR:简单有效的视频超分辨率Baseline

    文章目录 原文信息 初识 相知 组件分析 BasicVSR IconVSR 部分实验 回顾 原文信息 原文链接 初识 相比于图像超分 视频超分 VSR Video Super Resolution 显然是一件更具挑战性的任务 视频超分比图像