1. 引言:从模糊到清晰,视频超分的挑战与BasicVSR++的登场

你有没有试过翻出一些老视频,想重温过去的时光,却发现画面模糊不清,细节全无,只能看到一个个人影在晃动?或者,在手机上看网络视频时,一旦选择高清模式就疯狂缓冲,被迫忍受满屏的“马赛克”?这些困扰,都指向了计算机视觉中一个既经典又充满挑战的任务——视频超分辨率。

简单来说,视频超分的目标,就是让一段低分辨率、模糊的视频,变身为高分辨率、清晰锐利的视觉盛宴。这听起来像是魔法,但背后是复杂的算法在支撑。早期的视频超分方法,比如简单地逐帧进行图片超分,效果往往很差,画面会闪烁、不连贯。这是因为视频是连续的,每一帧都包含着宝贵的时间信息,忽略帧与帧之间的关联,就等于丢掉了最重要的线索。

近年来,一个名为 BasicVSR 的模型横空出世,它采用了一种巧妙的双向循环传播结构,像有两个记忆库一样,一个从前向后,一个从后向前,遍历整个视频序列,尽可能地把所有帧的信息都利用起来。这个方法一出现就成了新的标杆,效果非常好。但是,做研究的人总是追求极致。BasicVSR的作者团队发现,它还有两个核心问题可以做得更好:一是信息传播的方式还不够高效,二是帧与帧之间的对齐还不够精准。尤其是在处理快速运动、物体遮挡(比如一个人从树后走过)或者画面边缘区域时,瑕疵就会暴露出来。

于是,BasicVSR++ 应运而生。作为BasicVSR的“威力加强版”,它在2021年的NTIRE视频超分挑战赛中一举拿下三项冠军,并入选了CVPR 2022。它的核心贡献,正是精准地击中了上述两个痛点,提出了两大革新性技术:光流引导的可变形对齐 和 二阶网格传播。我实测下来,正是这两项技术协同工作,让模型在复杂场景下的表现稳得不行,重建出的细节常常让人惊叹。接下来,我就带你深入这两项技术,看看它们是如何让视频超分效果再上一个台阶的。

2. 技术基石:先搞懂BasicVSR,才知道++在哪里

在拆解BasicVSR++的黑科技之前,我们有必要快速回顾一下它的前身BasicVSR是怎么工作的。这能帮你更清楚地理解“++”的价值所在。

你可以把BasicVSR想象成一个拥有两个独立“流水线”的工厂。给定一段视频,它按顺序处理每一帧:

  1. 特征提取:先用一个卷积神经网络(CNN)从当前模糊的低分辨率帧中,抽取出一个特征图(可以理解为图片的“精华版”)。
  2. 传播与对齐(核心):这是最关键的一步。BasicVSR有两条流水线:
    • 前向传播分支:处理当前帧时,它会去参考之前所有帧已经处理好的“记忆”(称为隐藏状态)。但它不能直接使用,因为物体会动,所以需要先根据估计的光流(一种描述像素如何从上一帧运动到当前帧的矢量场),把上一帧的记忆“扭曲”对齐到当前帧的位置上。
    • 后向传播分支:同理,它去参考之后所有帧的记忆,同样进行光流对齐。
    • 简单说,就是让当前帧同时向前看和向后看,借用前后邻居的信息来丰富自己。
  3. 融合与重建:将前向和后向对齐好的特征,与当前帧自己的特征融合在一起,最后通过上采样模块,生成高清帧。

BasicVSR的设计非常简洁有效,但它有几个天生的局限,这也是BasicVSR++要攻克的目标:

  • 对齐的脆弱性:它严重依赖光流估计的准确性。光流一旦算错,对齐就会出错,导致重建画面出现伪影(比如奇怪的拖影或扭曲)。而且,光流法本质上是从一个固定位置“拿”像素,在物体被遮挡时(比如手挡住了脸),它可能拿到的是错误的、不相关的像素。
  • 传播的“健忘症”:它的传播机制是“一阶马尔可夫”的,即当前帧只能直接接收到相邻前一帧(或后一帧)的记忆。虽然这个记忆里包含了更早的信息,但经过长距离的传递和对齐误差的累积,很久以前的信息就衰减得非常厉害,几乎被“遗忘”了。
  • 分支间的隔阂:前向和后向两个分支在传播时是独立的,只在最后才融合。如果其中一个分支对齐错了,融合也救不回来。

理解了这些痛点,我们再来看BasicVSR++的解决方案,就会豁然开朗。

3. 核心革新一:光流引导的可变形对齐——从“指哪打哪”到“方圆搜索”

首先,我们来看BasicVSR++如何解决对齐不准的问题。它用 Flow-Guided Deformable Alignment(光流引导的可变形对齐) 模块,取代了BasicVSR中单纯的光流对齐。

3.1 为什么不用纯光流对齐了?

想象一下你要在一张旧照片里找一个人。纯光流对齐就像有人给你一个精确的坐标:“他上一秒在A点,所以现在应该在B点。”你直接去B点找。这很高效,但前提是坐标必须绝对准确。如果给错了(光流估计误差),或者这个人中途被柱子挡住了(遮挡),你去B点找到的可能是别人,结果就全错了。

而可变形卷积的思路则不同。它更像告诉你:“他大概在B点附近,你以B点为中心,在周围这一小片区域里仔细找找看。”这样,即使初始的B点不太准,你也有机会在附近找到他,容错率大大提升。在技术上,可变形卷积通过让网络自己学习一组“偏移量”,让卷积核的采样点不再死板地落在规则网格上,而是能根据图像内容自适应地偏移到更重要的位置。

3.2 BasicVSR++的巧妙融合:用光流当“向导”

但是,可变形卷积有个麻烦:它学习的那组偏移量非常难训练,容易“学歪”(训练不稳定),导致效果反而变差。BasicVSR++的聪明之处在于,它没有抛弃光流,而是让光流来当“向导”,引导可变形卷积的学习。

具体是怎么做的呢?我们来看单帧对齐的情况(以一阶传播为例):

  1. 粗糙预对齐:首先,还是用光流把上一帧的特征图扭曲到当前帧,得到一个初步对齐的结果。这一步和BasicVSR一样,相当于先给了一个大概的坐标B点。
  2. 学习精细偏移:接下来,关键来了。网络不直接学习完整的偏移量,而是学习一个残差。它把当前帧的特征和上一步预对齐的特征拼接起来,输入一个小型网络,预测出偏移量的“修正值”。最终的偏移量 = 光流 + 修正值。
  3. 执行可变形卷积:用这个融合了光流信息的最终偏移量,对原始的、未扭曲的上一帧特征图进行可变形卷积,得到最终精细对齐的特征。

提示:这个过程可以打个比方:光流给你指了个大方向(B点),然后可变形卷积网络在这个大方向的基础上,进行微调(“往左一点,再往上一点”),找到更精确的位置。这样,网络只需要学习一个很小的修正值,训练起来稳定多了,同时又保留了可变形卷积在局部灵活搜索的能力。

3.3 扩展到二阶对齐

在BasicVSR++的二阶传播中,当前帧需要同时对齐前两帧的特征。一个笨办法是分别对两帧做两次上述过程,但计算量太大。BasicVSR++采用了更高效的联合学习方式:它把当前帧特征、以及分别用光流预对齐的前一帧、前两帧的特征,三份信息一起输入网络,一次性学习出对齐这两帧所需要的所有偏移量。这样,网络在对齐时能同时看到更丰富的上下文信息,对齐效果更好。

这种光流引导的设计带来了三大好处:一是用光流做初始化,让偏移量学习从一个好的起点开始;二是只学残差,降低了学习难度,训练更稳定;三是可变形卷积自带的调制机制(可以理解为对每个采样点加个权重),能自适应地关注更重要的区域。实测在遮挡严重的区域,这个方法恢复出的细节远比纯光流法要清晰和准确。

4. 核心革新二:二阶网格传播——构建信息的高速公路网

解决了对齐问题,再来看看BasicVSR++如何让信息传播得更充分、更有效。这就是 Second-Order Grid Propagation(二阶网格传播) 的功劳。它其实包含两个子概念:网格传播和二阶传播。

4.1 网格传播:让前后分支“手拉手”

还记得BasicVSR里前向和后向分支老死不相往来吗?网格传播打破了这堵墙。BasicVSR++在结构上增加了一对额外的传播分支(可以理解为又开了一条流水线),并且更重要的是,它在前后向分支之间建立了直接的连接。

这是什么意思呢?在传播过程中,前向分支在计算时,不仅能拿到自己分支上一帧的信息,还能拿到后向分支传递过来的信息,反之亦然。这就形成了一个“网格”状的信息流动网络。

  • 解决边界问题:比如,画面边缘的物体在某一帧只出现了一半。后向分支在处理时,由于它“看”不到这个物体更早出现的部分,对齐就会困难。但此时,前向分支已经处理过这个物体更完整的部分,它通过网格连接把信息传给后向分支,后向分支就能更好地完成对齐。
  • 实现从粗到精的优化:多对分支的迭代传播,相当于对特征进行了多次“精修”。第一遍传播可能对齐得比较粗糙,第二遍传播时,结合了更多来自另一分支的信息,可以对特征进行再次优化对齐,从而减少长距离传播带来的误差累积。

4.2 二阶传播:拥有“更长的记忆”

网格传播解决了空间(分支间)的信息流通,二阶传播则解决了时间上的“健忘症”。BasicVSR只能看相邻一帧的记忆(一阶),而BasicVSR++放宽限制,允许当前帧同时接收前两帧(或后两帧)的记忆(二阶)。

这就像你回忆一件事,不仅想起了昨天发生的(前一帧),还直接想起了前天的一些细节(前两帧),而不是通过昨天的记忆间接地、模糊地回忆前天。通过这种跳跃连接,更早(或更晚)的、尚未被严重衰减的特征信息可以直接被利用起来。

  • 丰富位置信息:对于复杂纹理区域(如草地、头发),不同帧提供了物体略微不同的视角和位置信息。二阶传播能同时聚合这些多样化的位置信息,帮助重建出更丰富的细节。
  • 应对特殊遮挡:在某些遮挡情况下,相邻帧可能都看不到被挡住的物体,但隔了一帧的帧里,物体可能刚好露出来。二阶连接使得这个“关键证人”的信息能被直接调用。

将网格传播和二阶传播结合起来,就构成了强大的二阶网格传播机制。信息在时间(前后帧)和空间(前后分支)两个维度上高效、充分地流动和聚合,使得网络对于遮挡、边界和细节区域的重建鲁棒性大大增强。我在一些测试视频中发现,对于快速旋转的物体或者复杂背景,BasicVSR++重建的边缘连续性明显更好,闪烁伪影也少得多。

5. 实战与效果:BasicVSR++到底强在哪里?

理论说得再好,不如实际效果有说服力。BasicVSR++在论文中进行了大量的实验对比和消融研究,结果非常亮眼。

5.1 与SOTA模型的全面对比

作者在REDS4、Vid4、UDM10等多个标准测试集上,将BasicVSR++与包括EDVR、TOF、RSDN等在内的16种先进方法进行了比较。在所有数据集和两种常见的降质模型(双三次下采样和模糊下采样)下,BasicVSR++的PSNR和SSIM指标均取得了最佳成绩。

有几个关键数据值得关注:

  • 相比著名的滑动窗口方法EDVR,BasicVSR++在参数量减少约65%的情况下,性能反超了1.3dB之多。这凸显了循环结构在视频任务上的效率优势。
  • 相比其前身BasicVSR,在参数量基本持平的情况下,BasicVSR++带来了高达0.82dB的PSNR提升。这是一个巨大的进步,在超分领域,0.1dB的提升往往已属不易。
  • 即使是轻量版的BasicVSR++ (S),其性能也全面超越了BasicVSR和IconVSR。

5.2 消融实验:看看每个部件多有用

为了验证两个核心改进点的有效性,作者做了细致的消融实验。

首先是二阶网格传播的贡献。在包含精细纹理(如建筑立面、织物)的视频片段上,分别关闭网格连接或二阶连接,输出的画面会变得模糊,细节丢失。而完整的BasicVSR++则能清晰地恢复出这些纹理。这证明,更丰富的信息聚合对于细节重建至关重要。

其次是光流引导可变形对齐的贡献。作者比较了三种对齐方式:

  1. 纯可变形对齐(无光流引导):训练不稳定,效果很差。
  2. 使用光流作为损失函数的监督(Offset-Fidelity Loss):效果尚可,但比BasicVSR++差2.17dB。
  3. BasicVSR++的光流引导可变形对齐:效果最佳。

可视化结果更直观:纯光流对齐的特征图在边缘处是模糊的;而BasicVSR++对齐出的特征图边缘锐利,细节保持得更好。同时,可视化学习到的偏移量图可以发现,它们与光流图形状相似但又不完全相同,体现了可变形卷积在局部进行多位置探索的特性。

5.3 超越超分:在更广领域的应用

BasicVSR++的设计是通用的,不仅限于视频超分。后续的研究将其成功应用到了视频去模糊和视频降噪任务中,并再次刷新了这些领域的性能纪录。

例如,在GoPro视频去模糊数据集上,BasicVSR++比之前最好的方法高出近2dB;在视频降噪任务上,其性能也显著优于其他方案,且推理速度更快。这证明了其核心的传播与对齐机制,对于利用时间信息进行视频复原这一大类问题,都具有强大的普适性。

6. 总结与展望:BasicVSR++带来的启示

BasicVSR++的成功并非偶然,它通过对BasicVSR两个核心模块的深刻反思和精巧重构,将视频超分的性能推向了新的高度。光流引导的可变形对齐,巧妙地结合了光流的全局运动提示和可变形卷积的局部自适应能力,在提升对齐鲁棒性的同时保证了训练稳定性。二阶网格传播,则通过构建密集的时空信息交换网络,极大地增强了特征传播的效率和有效性。

在实际项目里尝试复现和使用BasicVSR++时,我确实感受到了它带来的提升。尤其是在处理我们自己采集的、带有复杂运动和部分遮挡的工业检测视频时,BasicVSR++重建出的清晰度确实更胜一筹,为后续的分析步骤提供了更好的基础。当然,它作为一个研究型模型,计算量依然不小,在实时性要求极高的场景下还需要进一步的优化和压缩。

从BasicVSR到BasicVSR++的演进,也给我们带来了更深的启示:在视频处理任务中,如何更高效、更鲁棒地利用跨帧的时间信息,始终是核心课题。BasicVSR++给出的答案是更精准的对齐和更充分的传播。这个思路不仅影响着后续的视频超分研究(如VRT、VSR-Transformer等模型都借鉴或发展了其思想),也为其他视频增强任务(如去雨、去雾)提供了宝贵的参考。未来,随着硬件算力的提升和算法设计的进一步创新,我们有理由期待更强大、更高效的视频复原技术走进日常生活,让每一段记忆都清晰如新。

Logo

火山引擎视频云技术社区,是面向 AI 音视频开发者的技术交流平台。这里汇聚源自抖音、豆包等亿级 DAU 产品的 RTC、直播、点播、AI 媒体处理、音视频互动技术,提供接入指南、最佳实践、性能调优、场景案例、Demo 代码、开源项目、白皮书和 API 文档。社区汇聚官方工程师与一线开发者,为 AI 视频通话、数字人、AI 视频处理等应用的开发与落地提供技术支持。

更多推荐