旷视研究院 · 9月30日 · 北京市

ECCV 2022 | 视频插帧中的实时中间流估计

image.png

概述

视频插帧算法旨在视频的相邻帧之间生成若干个中间帧。它被广泛用于视频处理,多媒体播放器和显示设备上。

本文提出了一种基于实时中间流估计的视频插帧算法 RIFE,包括一个端到端的高效的中间流估计网络 IFNet,以及基于特权蒸馏的光流监督框架。RIFE 支持在两帧之间的任意时刻点插帧,在多个数据集上达到了最先进的性能且不依赖于任何的预训练模型。

相比目前流行的 SuperSlomo 和 DAIN 技术,RIFE 实现了 4 至 27 倍的加速且取得更好的视觉效果。通过调制 IFNet 的时间编码输入,RIFE 还能支持包括动态场景图像拼接等应用。

RIFE 相关代码已开源在GitHub上(点击文末“阅读原文”可以直达链接),也已经被 Flowframes,SVFI,SVP 等视频处理软件应用。

介绍

视频插帧的目标是在两个相邻的视频帧 I0 和 I1 之间,生成中间时刻的视频帧 It (0 < t < 1)。在模型训练阶段,我们有 It 的数据。
image.png
近年来,基于深度学习的视频插帧算法获得了越来越多计算机视觉研究者和视频创作者的关注。然而,现有方法离满足一般用户需求还很远,特别是在处理速度上。在一般的消费级显卡上,现有方法通常需要视频原时长的十数倍甚至数百倍的处理时间。

我们的论文通过研究光流插帧方法中的几个关键组件,最终得到了一个比现有方法有显著速度优势的方案 RIFE。可以看到,在单帧插帧和多帧插帧的场景上,我们的算法(RIFE,红色五角星)都有比较明显的性能优势。

image.png
中间帧光流估计

传统的光流估计算法,一般研究的是如何估计两帧之间的物体运动,即对于 I0 和 I1,估计“双向光流” F0→1 和 F1→0。对于大多数光流插帧方法而言,最重要的一步是估计 It (中间帧) 和 I0/I1 (原始帧) 之间的“中间帧光流”,记作 Ft→0 和 Ft→1。有了光流,我们就能通过移动图片上的像素来生成插帧结果。

这里就有一个“鸡生蛋,蛋生鸡”的悖论,我们如何凭空估计一个尚不存在的目标帧 It 到原始帧 I0/I1 的光流呢?

从下图左侧可以看到,大多数先前的方法寄希望于先估计“双向光流” F0→1 和 F1→0,再通过一个光流逆转步骤来得到“中间帧光流”。例如,Ft→0=逆转(F0→t)~t*F(0→1)。

我们通过实验发现,光流逆转其实很难高效实现,理论上还会碰到物体漂移 (Object Shift) 带来的不精确估计问题。

image.png

因此我们提出,对于不同的目标时刻 t,将其作为一个额外的通道送入卷积神经网络,直接让模型端到端地学习“中间帧光流”估计。这样做不仅提高了最终的精度,还能省去估计“双向光流”本身带来的额外开销。
image.png
在模型设计上,我们借鉴了 FlowNet2.0 多层级光流模型的设计理念,并且尽量使用各硬件平台友好的 3x3 卷积算子,设计了一个名为 IFNet 的模型结构。它由三个结构相似的光流估计 Block 构成,每个 Bock 会根据当前的光流和图片映射结果更新光流场。三个 Block 会依次先在小图上估计光流,再在大图上细化光流。标红的部分是接来下要介绍的特权蒸馏框架。
image.png
特权蒸馏方法

一开始训练 IFNet 的时候,我们发现模型并不容易收敛。我们推测从最终插帧结果的损失函数来引导光流学习存在困难。因此我们尝试了用预先训练好的光流网络(比如 RAFT)来生成 Ft→0 和 Ft→1 的光流伪标签,对中间帧光流进行监督学习,确实起到了不错的效果。

进一步思考,这个做法的本质可能是在对抗“鸡生蛋,蛋生鸡”的悖论:在模型训练的时候,通过中间帧 It 的来生成光流监督。

为了解除预训练模型的依赖,我们引入了特权蒸馏的学习框架。简单来说,教师网络会额外获取一个中间帧(特权信息)输入,这个额外输入使得教师网络的学习过程变得简单。换句话说,学生网络是凭空估计中间帧光流,而教师网络则“偷看”了中间帧“参考答案”再来估计光流。教师网络通过中间帧光流 Ft→0 和 Ft→1 的结果把知识传递给学生网络,实现蒸馏学习。
image.png
模型的损失函数最终包括学生网络和教师网络对于插帧的学习,以及学生网络向教师网络的蒸馏学习。模型的训练在 8 块 GPU 上花费约 10 小时。

我们做了一个简单实验来验证这样做的合理性,我们在对一个比较早的 DVF 插帧算法,输入一个额外的中间帧的图片边缘 (Canny Edge) 作为提示信息(特权信息)。可以发现,这个操作使得模型性能显著提高。这个实验只是作为一个原理验证,在部署插帧算法的时候,一般我们无法获得中间帧的信息。

image.png

模型评测

image.png

在多帧插帧的场景上,我们可以看到 RIFE 产生了合理且优于先前方法的效果。特别是 RIFE 支持插帧时刻 t 在 (0, 1) 之间任意取值。
image.png
在更流行的单帧插帧的数据集上,RIFE 也取得了很不错的结果。其中在小模型一栏,RIFE 比 EDSC 方法提高约 0.8dB (Vimeo90K)。在大模型一栏,RIFE-Large(通过简单的模型放缩方法获得的大模型)比起先前的 ABME 方法有 4 倍提速。

image.png

消融实验

image.png

我们从多个角度对模型进行了消融分析。

第一部分是中间帧光流估计的设计,我们对比了多种方案,以此说明通过双向光流估计加上光流逆转的方案效果不够好,而且速度还比较慢。这部分的影响是最大的,不精细的中间帧光流估计会使得模型有 1~2dB 的性能损失。

第二部分是蒸馏框架,虽然使用伪标签的方法也达到了比较相近的效果,但伪标签的生成需要额外的开销和预训练模型。

第三部分是关于 IFNet 的设计,多个 Block 的堆叠带来 0.4dB 的提升。

扩展应用

在研究视频插帧的过程中,我们还发现了一些有趣的扩展应用。为了让模型能估计 t 时刻的光流,我们将 t 编码成输入的一个额外通道。我们发现,在模型推理的时候,这个通道可以不是常值,我们甚至可以给不同区域指定不同的时刻 t。

image.png

比如上图,我们将图片左部区域指定为时刻 0,右部区域指定为时刻 1,中间均匀过度,生成图就实现了一种比较神奇的 I0 和 I1 的拼接效果。我们称其为动态场景拼接。

我们还希望插帧方法不仅能被运用在图片上,也可以被用在其它的一些表征上,比如深度图的插帧。

image.png

总结

  1. 我们提出了用 IFNet 端到端地估计中间帧光流,并且采用特权蒸馏框架帮助模型训练。
  2. 我们关注于提出推理速度更高的插帧模型,在多个数据集上取得了先进的效果。
  3. 我们展示了 RIFE 在更多场景下的应用潜力。

未来展望

为了把 RIFE 推向实际应用,我们在提升模型处理大分辨率视频的表现,提升主观视觉效果,模型加速等方面继续进行了优化。截至目前, RIFE 项目在 Github 上获得了近3000个 stars,并且被应用于多个视频处理软件中,在各视频平台支持了累计千万播放量的视频。

未来工作会着眼于让插帧算法适配更多的场景,处理各种边界情况,部署在不同的硬件平台。这些新的挑战也不断刷新着我们的认知。

祝愿社区繁荣进步!

来源:ReadPaper论文阅读平台
作者:R

专栏文章推荐

欢迎关注旷视研究院极术社区专栏,定期更新最新旷视研究院成果。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
加入旷视:career@megvii.com
推荐阅读
关注数
7652
内容数
154
专注旷视研究院学术论文解读推送,涵盖计算机视觉,文字识别等
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息