阅读笔记5:董超底层视觉之美|时空的交错与融合——论视频超分辨率

news2024/11/15 21:51:50

原文链接:https://mp.weixin.qq.com/s/pmJ56Y0-dbIlYbHbJyrfAA

1. 多帧超分和时空超分

视频超分的本质就是多帧超分,多帧超分的历史远早于视频超分。
在早期,Super Resolution专指多帧超分,因为只有多帧超分才能补充进入真实的信息,而单帧超分主要是指插值算法。
早期的一些工作:
首篇单帧超分:《Super-resolution from a single image》
Bicubic 发表于1981年
首片多帧超分:1984年Thomas Huang《Multi-frame Image Restoration and Registration》
现在的单帧超分由于加入了生成的成分,也被叫作hallucination,我们现在仍然用face hallucination来形容人脸超分。
但是现在已经不区分这些名词了,统一称为超分。

时空超分,代表作:《Space-Time Super-Resolution》

时空耦合:

  • 运动模糊

    由于相机都有曝光时间,物体在曝光时间内产生了运动,光线经过时间的积累,就产生了轨迹(如图4左)。从某种程度上讲,运动模糊带来的是空间分辨率的缺失,而弥补它的办法,恰恰是增加时间分辨率。也就是说,如果我们可以用高速相机拍摄,缩短曝光时间,增加快门速度,就能有效的减少运动模糊(如图4右)。
    在这里插入图片描述

  • 运动混叠

第二个现象是运动混叠,当运动速度超过了帧率,那么运动轨迹的高频部分就会与低频部分混叠,产生出虚假的幻觉。比如车轮逆转效应(wagon wheel effect),我们看快速转动的车轮会感觉它好像在倒转,这就是运动混叠带来的假象。也就是说,没有正确的帧率,就没有正确的画面,时空又一次耦合在一起了。

  • 建模时空分辨率

假设真实的运动场景在时间和空间上都是连续的,那么视频就是在连续时空场景下的采样,时间降采样形成时间分辨率(帧率),空间降采样形成空间分辨率(像素)。时间采样用的是时间模糊函数(temporal blur),代表曝光时间,空间采样用的是点扩散函数(point-spread-function),代表光圈大小。当我们选出一个三维时空块(如图5所示)时,就可以对它进行时空两个维度上的降采样,在信息量不变的情况下,时空分辨率可以进行置换。
在这里插入图片描述
当空间分辨率不足时,可以通过时间分辨率来弥补,反之亦然。如此一来,我们要想进行视频超分,增加空间分辨率,就必须要有足够的时间分辨率(帧率)做支撑,帧率越高,动作越慢,就越容易恢复。相反的,如果帧率不够,动作很快,那就很难进行视频超分。

2 基于深度学习的视频超分

视频超分的基本框架如下图所示:包括多帧对齐模块、特征融合模块和图像重建模块。
在这里插入图片描述

  • 与多帧超分的区别
    视频超分的帧数更多,帧间关系更加复杂,帧间相对位移较大,且存在运动、遮挡、转场等问题。

  • 与时空超分的区别
    视频超分是从单一视频重建出高空间分辨率的视频,中间无须进行插帧,也不用考虑时空补偿。

  • 视频超分最关键的就是多帧信息的利用,成功的标准就是恢复出了单帧图像中没有的信息。

2.0 数据集

  • Vimeo-90k
    • 6万段
  • REDS
    • 270段视频
    • REDS是用手持设备拍摄的外景数据,帧率很高,相邻帧有切实有用的互补信息,而且同一场景可以利用的帧数长达100帧,能够充分验证算法的优劣。

2.1 基于CNN的方法

2.1.1 VSRnet

发表于2016年,是第一篇借鉴了SRCNN的视频超分网络。
核心贡献就是探索了多种对齐和融合的可能性:
多帧对齐:光流估计和运动补偿,其中光流估计用的是传统的光流估计算法 Druleas ,以及根据像素相似度来调节的自适应运动补偿算法
多帧信息融合:早期融合,中间融合和最后融合,中间融合的效果最好,因为它让每张图像的特征都提取的更充分,也融合的更充分。

2.1.2 EDVR

  • 对齐操作
    (1)采用可形变卷积进行多帧对齐(1x1的可形变卷积可以等同于光流对齐操作);
    (2)为了解决对齐精度不高的问题,将对齐操作放到了特征空间,而不是像素空间,特征不仅可以保留更多的图像信息,而且对精度高低不敏感;
    (3)为了解决卷积核的大小限制了它能覆盖的运动范围的问题,采用由粗到细的金字塔式对齐策略,仿照了光流估计算法的做法,可以在多个尺度上捕获运动,进行对齐;

  • 融合操作
    提供了一种时空注意力融合机制,但是效果提升其实不是特别明显;

2.1.3 BasicVSR

除了对齐和融合外,提出了一个新的关键因素:信息传递;

  • 信息传递
    每一帧提取的特征都被传递到了下一帧,通过与下一帧的融合产生出新的特征,而这个特征也会被传递到下一帧,直到整个视频流结束。也就是说,每一帧都只需要提取一次特征,也只需要与相邻帧进行对齐,但却可以将这些信息传递到最远的帧。
    BasicVSR采用的是双向传播

  • 对齐操作
    SpyNet光流对齐

2.2 基于Transformer的方法

  • Transformer与CNN相比有什么不同?
    (1)卷积具有参数共享和平移不变的特性,在所有位置的权重都是一样的,而Transformer采用的是自注意力机制(self-attention),让输入的每一个样本点都与其他位置的样本点进行对比,然后根据相似性来配比权重,再融合所有样本点的信息来获得下一层的结果。模型的拟合能力更强;
    (2)卷积具有局部性,而Transformer具有全局性,能够解决远距离和长程的信息传递问题。

  • Transformer来做视频超分有什么优势?
    Transformer具有全局性,这正是视频超分中最重要的对齐操作所需要的;

  • 相比于经典的对齐操作,Transformer做对齐有什么优势?
    光流对齐受限于光流估计的精度,而可变形卷积对齐仍然受制于卷积核大小,不能与更远的像素产生关联。但Transformer就有可能突破这个限制,让对齐操作在自注意力机制中自动完成。

通过基于swin transformer的网络来做实验,发现Transformer有对齐相邻帧的能力,而且比光流估计做的更好,只要相对运动在自注意力的窗口范围内,就不需要进行额外的对齐操作。

对于运动较大的视频超分,可以对齐图像块,而不对齐像素,用patch alignment取代pixel alignment。

2.3 基于生成模型的方法

在生成模型之前,视频超分的目标是复原:通过多帧图像来复原隐藏的亚像素信息;而生成模型可以无中生有,弱化了复原的目标。

  • 生成式视频超分的最大问题:帧间不一致性
    细节闪烁、局部噪声、色彩失调、身份改变

  • 解决帧间不一致性的思路
    为了保持帧间一致性,就需要再次对齐多帧图像,让相邻帧之间可以通信,以此来统一生成的范式

生成式复原有两种类型:对抗生成网络(Generative Adversarial Networks)和扩散模型(Diffusion Model)两个主要范式。

  • 基于gan的视频超分

    将对抗生成网络引入视频超分是比较直接的,我们可以在原有的模型上加入对抗损失函数(GAN loss),并通过帧间的特征距离来约束一致性,就可以得到生成式视频超分模型,比如BasicVSR的升级版RealBasicVSR。这样的改进不需要更换模型结构,也不用增加模型规模,因此相对简单。但也因为简单,它能够得到的效果提升也很有限。

  • 基于diffusion的视频超分

    (1)模型结构必须要依赖基模型,不能完全从零开始训练,否则就会失去强大的先验知识;
    (2)多帧对齐和约束方案都要根据基模型进行调整,不能随意改动;
    (3)训练策略和损失函数会变得更加复杂,需要参数初始化、迭代优化、修改噪声采样策略等技巧的加入。
    (4)基模型的参数量都很大,往往在十亿级别以上,这就大幅提升了训练和测试成本;

  • 基于diffusion的视频超分目前存在的问题

    视频的连续性并没有完全解决,而多帧约束的加入也限制了基模型的发挥。同时,不同的基模型也有完全不同的特点,相同的方法未必适用于所有基模型。而且,生成式视频超分缺乏公开的大规模高清数据集和统一的评测标准,难以支持算法的训练和公平对比。我们前面所提到的各种发现也都还没有被沿用过来,因此生成式视频超分还有很大发展空间。

  • 展望

    文生视频是时空生成,而不是多帧图像生成。视频超分也不应该只在图像超分的基础上进行对齐、融合、约束的讨论。

    这对视频超分也是一样的,前面讲的再多,也都是在图像的基础上谈对齐、谈融合、谈约束,什么时候视频可以被当成一个整体被处理、被放大、被输出,那前面的很多问题就都不再是问题了,我想这一天并不遥远,让我们拭目以待。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2071959.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Golang | Leetcode Golang题解之第368题最大整除子集

题目: 题解: func largestDivisibleSubset(nums []int) (res []int) {sort.Ints(nums)// 第 1 步:动态规划找出最大子集的个数、最大子集中的最大整数n : len(nums)dp : make([]int, n)for i : range dp {dp[i] 1}maxSize, maxVal : 1, 1fo…

对讲模块升级的重要性-OTA空中升级与串口升级

在现代通信设备的设计中,灵活的升级能力已成为评估模块性能的重要标准。无论是在开发过程中,还是在产品的生命周期内,支持OTA和串口升级的模块可以极大地提高设备的可维护性和适应性。 SA618F30,作为一款高性价比、高集成度的大功…

SSRF 302跳转攻击redis写入ssh公钥实现远程登录

目录 SSRF漏洞 SSRF攻击Redis 302跳转 漏洞复现: index.html: index.php: 攻击步骤: 1.生成ssh公钥数据: 2.用SSH公钥数据伪造Redis数据: 3.在自己的服务器上写302跳转: 4.最后尝试在.ssh目录下登录&#…

Golang | Leetcode Golang题解之第371题两整数之和

题目&#xff1a; 题解&#xff1a; func getSum(a, b int) int {for b ! 0 {carry : uint(a&b) << 1a ^ bb int(carry)}return a }

MySQL主从复制之GTID模式

目录 1 MySQL 主从复制 GTID 模式介绍 2 传统复制模式与GTID复制模式的区别 3 GTID模式核心参数 4 GTID 实现自动复制原理 4.1 GTID基本概念 4.2 GTID复制流程 5 GTID 实现自动定位 5.1 配置 my.cnf 5.2 配置 SLAVE 实现自动定位 5.3 测试 6 GTID 模式 故障转移的方法流程 6.1…

如何使用ssm实现宠物领养系统+vue

TOC ssm103宠物领养系统vue 课题背景 在当今的社会&#xff0c;可以说是信息技术的发展时代&#xff0c;在社会的方方面面无不涉及到各种信息的处理。信息是人们对客观世界的具体描述&#xff0c;是人们进行交流与联系的重要途径。人类社会就处在一个对信息进行有效合理的加…

mysql数据库----简单认识库的操作

目录 1.区分概念 2.什么是数据库 3.数据库的创建和销毁 4.数据库编码初识 5.查询系统默认编码配置 6.两个查询编码表的指令 7.创建指定编码的数据库 8.不同编码的区别 第一个编码方式&#xff1a; 第二个编码方式&#xff1a; 查询结果说明&#xff1a; 9.数据库的增…

QT Quick QML 网络助手——TCP客户端

GitHub 源码: QmlLearningPro &#xff0c;选择子工程 Nettools.pro QML 其它文章请点击这里: QT QUICK QML 学习笔记 ● 运行效果&#xff1a; 左侧为常用的网络调试工具&#xff0c;右侧为本项目 UI 效果&#xff0c;前端使用 QML &#xff0c;后端使用C &#xff…

ArkTs之:数据懒加载——LazyForEach的用法

官方描述 LazyForEach从提供的数据源中按需迭代数据&#xff0c;并在每次迭代过程中创建相应的组件。当在滚动容器中使用了LazyForEach&#xff0c;框架会根据滚动容器可视区域按需创建组件&#xff0c;当组件滑出可视区域外时&#xff0c;框架会进行组件销毁回收以降低内存占…

我在某日重新下载了idea

# 1 Maven设置 2 字体样式,字体颜色 3 插件 1,fitten code和通义灵码 2,one dark theme主题 3,mybatisX 4,Rainbow Brackets 5,Key Promoter X 设置 自动导入包

Ps:首选项 - 常规

Ps菜单&#xff1a;编辑/首选项 Edit/Preferences 快捷键&#xff1a;Ctrl K Photoshop 首选项中的“常规” General选项卡主要用于调整 Photoshop 的整体工作行为和用户体验。这些设置让用户可以根据个人习惯和工作流程定制软件的响应方式和界面布局&#xff0c;从而提高工作…

下载的word中的mathtype公式双击无法打开编辑器

原因分析&#xff1a; 该word中的此公式不是通过word内置的mathtype插入公式的&#xff0c;而是从mathtype编辑器中复制粘贴到word中的。 后者的方式当被其他人下载接收后&#xff0c;无法修改此公式&#xff0c;而且该公式也不能被其他人复制&#xff0c;会报错如下&#xff…

GPT-4o System Card is released

GPT-4o System Card is released, including red teaming, frontier risk evaluations, and other key practices for industrial-strength Large Language Models. https://openai.com/index/gpt-4o-system-card/ 报告链接 企业级生成式人工智能LLM大模型技术、算法及案例实战…

5G毫米波测试助力突破高频段设备局限,实现高效外场测试

作者介绍 一、方案背景 随着业务对带宽需求的不断增加&#xff0c;通信频谱不断向更高频谱延伸&#xff0c;5G毫米波具有丰富的频率资源&#xff0c;是移动通信技术演进的必然方向。下图是ITU的WRC-19会议发布的目前5G所占用频段。 从图中可以看出&#xff0c;在5G毫米波测试中…

AgentQ,超越人类的人工智能代理

MultiOn 宣布推出一款新代理AgentQ&#xff0c;这是一款令人惊叹的产品&#xff0c;它整合了我最近一直在讨论的大部分内容&#xff1a;将 LLM 与搜索相结合。 但这个经纪人很特殊。 与其他代理不同的是&#xff0c;由于巧妙地使用了对齐技术&#xff0c;该代理可以从好的和坏的…

redis | 认识非关系数据库Redis的位图数据类型

Redis 非关 kv型 位图常用命令应用场景python操作位图 位图 位图不是真正的数据类型&#xff0c;它是定义在字符串类型中 01100001 97 61 a 01100010 98 62 b 一个字符串类型的值最多能存储512M字节的内容 位上限&#xff1a;2^32 常用命令 SETBIT \x : 16进制 没有key值 GE…

npm 设置代理

目录 前言 一、查看npm配置 二、设置代理 三、删除代理 四、代理认证 往期回顾 前言 在使用npm时&#xff0c;如果您处于需要使用代理的网络环境中&#xff0c;您可以通过配置npm来设置代理。 一、查看npm配置 npm config list或者单独查看 npm config get proxynpm co…

Using Azure openAI key rotation automation

题意&#xff1a;使用 Azure OpenAI 密钥轮换自动化 问题背景&#xff1a; We are planning to do the Azure OpenAI key rotation automatically. How can we achieve this? Do we have terraform resource for this. 我们计划自动执行 Azure OpenAI 密钥轮换。我们如何实现…

垃圾分类笔记YOLOV5(一)-pip换源-口罩识别-训练自己的数据集

pip换源网址 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple不进行配置的是临时换源 1、从github上下载YOLOV5的代码 翻墙软件clash 数据集地址roboflow clash配置一键导入 哔哩哔哩视频地址 数据集的下载格式&#xff1a; 2、修改自己的数据…

HarmonyOS NEXT 地图服务中‘我的位置’功能全解析

1 前言 “我的位置”功能在表象上或许给人以简单之感&#xff0c;但从专业角度深入剖析&#xff0c;其蕴含着极为可观的信息量与巨大潜力。此功能绝非仅仅局限于作为一个单纯显示用户当前所处地点的标识&#xff0c;而确切地说是连接用户与周边世界、实现个性化服务的关键纽带…