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

本文主要是介绍阅读笔记5:董超底层视觉之美|时空的交错与融合——论视频超分辨率,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文链接: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的视频超分目前存在的问题

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

  • 展望

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

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

这篇关于阅读笔记5:董超底层视觉之美|时空的交错与融合——论视频超分辨率的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1103246

相关文章

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

韦季李输入法_输入法和鼠标的深度融合

在数字化输入的新纪元,传统键盘输入方式正悄然进化。以往,面对实体键盘,我们常需目光游离于屏幕与键盘之间,以确认指尖下的精准位置。而屏幕键盘虽直观可见,却常因占据屏幕空间,迫使我们在操作与视野间做出妥协,频繁调整布局以兼顾输入与界面浏览。 幸而,韦季李输入法的横空出世,彻底颠覆了这一现状。它不仅对输入界面进行了革命性的重构,更巧妙地将鼠标这一传统外设融入其中,开创了一种前所未有的交互体验。 想象

【编程底层思考】垃圾收集机制,GC算法,垃圾收集器类型概述

Java的垃圾收集(Garbage Collection,GC)机制是Java语言的一大特色,它负责自动管理内存的回收,释放不再使用的对象所占用的内存。以下是对Java垃圾收集机制的详细介绍: 一、垃圾收集机制概述: 对象存活判断:垃圾收集器定期检查堆内存中的对象,判断哪些对象是“垃圾”,即不再被任何引用链直接或间接引用的对象。内存回收:将判断为垃圾的对象占用的内存进行回收,以便重新使用。

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个