在日常生活中, 我们早已习惯用视频纪录生活点滴;视频影像在案件侦破等方面产生突出作用。
但是, 由于多样因素的影响, 导致视频质量下降。例如, 低质量的镜头只能输出低清视频, 手持相机会引致运动模糊, 传输中可能产生的视频压缩等等。那么, 是否有后处理的方法能够把低质量的视频变成高质量的视频呢?
这不得不提——视频复原任务 (Video Restoration) 。它除了可以提高用户体验外, 还可以提高检测和分割等任务的准确度。其难点在于需要从高度相关但未对齐的视频帧中收集补充信息以进行恢复,在循环模型中跨帧传输长时信息和对齐特征的问题仍然是一个很艰巨的任务。
我们在 CVPR 2021 提出的 BasicVSR 有效提高了识别精度,但仍存在难以恢复有遮挡的复杂区域细节问题。因此,我们提出了 BasicVSR++,并在 NTIRE 2021 视频超分和压缩视频增强两个任务中收获了三个冠军以及一个亚军。
我们这次的工作, 是针对 BasicVSR 和现有方法的不足提出改进, 从而达到更好的效果。我们提出了二阶网格传播(second-order grid propagation)和光流引导可变形对齐(flow-guided deformable alignment), 在大约相同参数量下大幅度超过现有方法。
本文将详细解读BasicVSR++的部分, 对BasicVSR 有兴趣的同学可以看看以前的文章
本文内容
1. BasicVSR++ 方法
2. 实验结果与总结
3. 使用MMEditing 开发
1. BasicVSR++ 方法
BasicVSR++ 的整体思路跟 BasicVSR 类似, 都是利用了双向传播和特征对齐, 但它们在细节上截然不同。我们接下来会重点介绍两个最重要的部分:
1) Second-Order Grid Propagation
2) Flow-Guided Deformable Alignment
改进 1
Second-Order Grid Propagation
二阶网格传播解决了 BasicVSR 中的两个局限性:
1)利用如上图所示的网格传播方式进行更有效的双向信息聚合;
2)放松了在 BasicVSR 中一阶马尔可夫性质的假设,并将二阶连接整合到网络中,以便可以从不同的时空位置聚合信息。以上两方面的修改都改善了网络中的信息聚合能力,并提高了网络对遮挡区域和精细区域的鲁棒性。
为了计算特征,我们首先使用我们提出的的光流引导可变形对齐进行特征对齐:
然后把这些特征连接起来并输进残差模块中:
改进 2
Flow-Guided Deformable Alignment
由于在可变形卷积(DCN)中引入了多样的偏移量,可变形对齐跟光流对齐相比有着显著改善。然而,可变形对齐模块可能很难训练。训练的不稳定性通常会导致偏移量溢出(overflow),从而使最终性能下降。
为了利用DCN偏移量的多样性且保证其训练的稳定性,我们提出了光流引导的可变形模块。这是由可变形对准和基于流的对准之间的紧密关系所激发的。
我们先讨论一阶设定,结构如下图所示:
给定从 LR 图像计算出的特征,为先前时间步计算出的特征以及到前一帧的光流,我们首先使用光流大致对齐特征:
然后将预对齐的功能用于计算DCN offsets和modulation masks。这里值得留意的是, 我们不直接计算offsets, 而是计算光流的残差。
然后把 DCN 应用于未对齐的特征:
以上公式仅设计用于对齐单个特征,因此不适用于我们的二阶传播。适应二阶设置的最直观方法是将上述过程分别应用于两个特征。但是,这需要加倍的计算,从而导致效率降低。此外,单独的对齐方式可能会忽略来自特征的补充信息。因此,我们需要允许同时对齐两个特征。更具体地说,我们将扭曲的特征和光流连接起来来同时计算一阶和二阶的偏移量:
然后同样地把DCN应用于未对齐的特征:
与直接计算 DCN offsets 的现有方法不同,我们提出的光流引导可变形对齐采用光流作为初始偏移量。
这个设计有两个好处。首先,由于 CNN 只具有局部感受野,因此可以通过使用光流对特征进行预对齐来辅助偏移量的学习。其次,通过仅学习残差,网络仅需要学习与光流的微小偏差,从而减少了之前可变形对齐模块的负担。此外,DCN 中的 modulation mask 可以用作一个注意机制以自适应地调节不同像素的权重,从而提供额外的灵活性。
2. 实验结果
上图的定量实验可以证实 BasicVSR++ 的有效性。跟 sliding-window 方法相比, BasicVSR++ 能在更少参数量下达到更优秀的效果。
例如, BasicVSR++ 只需要EDVR 35%的参数量便能大幅度超越 EDVR。另外, 在大致相同的参数量下,BasicVSR++ 大幅超越 BasicVSR 和 IconVSR。这些都能证明 BasicVSR++ 的优越性。
从下图例子我们可以看出, 通过我们提出的改进模块, BasicVSR++ 能更有效的把视频的信息利用起来, 相对之前的方法,可以恢复出更多的纹理细节。
别看它的名字有 VSR , 我们的模型是可以拓展到不同的视频复原任务当中。今年, 我们就在 NTIRE 2021 中视频超分和压缩视频增强比赛中收获了三个冠军和一个亚军。大家也可以尝试一下应用到其他任务中, 说不定也能带来提升。
总结
1. Second-order grid propagation 改进了网络的信息聚合能力;
2. Flow-guided deformable alignment 提升对齐表现, 并解决现有方法中 DCN 不稳定的问题;
3. 可以拓展到不同任务当中, 在 NTIRE 2021 收获三冠一亚。
3. 使用MMEditing 开发
重点来了, 那究竟哪里可以找到 BasicVSR++ 呢?
那当然就是 MMEditing 了。在 MMEditing 里面, 我们已经为你提供了 paper 和比赛的预训练模型, 让你可以快速上手。
除了 BasicVSR++, BasicVSR 在 NTIRE 2021 中也受到不少关注, 在比赛中不同队伍中都可以找到它的踪影。作为先驱, 我们当然也提供了 BasicVSR 的代码和模型让大家“享用”。偷偷告诉大家,这次的冠军团队就是基于 MMEditing 开发了现有的 BasicVSR++。
所以,还在等什么?
现在赶紧把实验跑起来的话,
说不定下一个冠军就是你哦!
文章来源:公众号【OpenMMLab】
2021-08-13 19:03