原文链接: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的视频超分目前存在的问题
视频的连续性并没有完全解决,而多帧约束的加入也限制了基模型的发挥。同时,不同的基模型也有完全不同的特点,相同的方法未必适用于所有基模型。而且,生成式视频超分缺乏公开的大规模高清数据集和统一的评测标准,难以支持算法的训练和公平对比。我们前面所提到的各种发现也都还没有被沿用过来,因此生成式视频超分还有很大发展空间。
-
展望
文生视频是时空生成,而不是多帧图像生成。视频超分也不应该只在图像超分的基础上进行对齐、融合、约束的讨论。
这对视频超分也是一样的,前面讲的再多,也都是在图像的基础上谈对齐、谈融合、谈约束,什么时候视频可以被当成一个整体被处理、被放大、被输出,那前面的很多问题就都不再是问题了,我想这一天并不遥远,让我们拭目以待。