Real-Time Intermediate Flow Estimation for Video Frame Interpolation

作者介绍了一种实时VFI方法RIFE,利用IFNet神经网络高效估计中间流,通过特权蒸馏提高性能。RIFE无需预训练光流模型,适用于各种帧插值和时间编码,实验显示其在多个基准上超越了Supersomo和DAIN。
摘要由CSDN通过智能技术生成

摘要

    实时视频帧插值(VFI)在视频处理、媒体播放器和显示设备中非常有用。作者提出了一种实时VFI中间流量估计算法RIFE,为了实现高质量的基于流的VFI方法,RIFE使用了一个名为IFNet的神经网络,该网络可以以更快的速度估计端到端的中间流。为了稳定IFNet训练,提高整体性能,设计了一种特权蒸馏方案。RIFE不依赖于预训练的光流模型,可以支持任意时间步长帧插值与时间编码输入。实验表明,RIFE在几个公共基准测试中达到了最先进的性能。与流行的Supersomo和DAIN方法相比,RIFE速度快4-27倍,效果更好。此外,由于时间编码,RIFE可以扩展到更广泛的应用程序。

该方法意在构建一个轻量的pipeline来实现SOTA的表现同时保持直接中间流估计的简洁性,主要包含以下几点:

1)不需要额外的组件,如图像深度估计模型,流优化模型和流反转层,这些都是为了弥补中间流量估计的缺陷而引入的。作者还希望消除对不适合VFI任务的预训练SOTA光流模型的依赖。

2)端到端可学习的运动估计:通过实验证明,与其引入一些不准确的运动建模,不如让CNN端到端学习中间流。这种方法已经被提出,然而,后续作品并没有完全继承这一理念。

3)为近似的中间流提供直接监督:大多数VFI模型仅用最终重建损失进行训练。直观地说,通过warp算子传播逐像素损失梯度对于流估计并不有效,缺乏明确设计用于流估计的监督会降低VFI模型的性能。

    作者提出了IFNet,它直接估计来自相邻帧和时间编码输入的中间流。IFNet采用一种从粗到精的策略,其分辨率逐步提高:它通过连续的ifblock迭代更新中间流和软融合掩码。直观地,根据迭代更新的流场,我们可以将两个输入帧中对应的像素移动到潜在中间帧中的相同位置,并使用融合掩模将两个输入帧中的像素组合起来。为了使模型更有效,不像大多数以前的光流模型,IFBlocks不包含成本体积等昂贵的运算符,只使用3 × 3卷积和反卷积作为构建块,这适用于资源受限的设备。采用中间监督是非常重要的。当使用最终重建损失对IFNet进行端到端训练时,由于光流估计不准确,该方法产生的结果比SOTA方法差。在设计了一个特权蒸馏方案后,这种情况发生了巨大的变化,该方案采用了一个具有访问中间框架的教师模型来指导学生学习。

    总结来说,该工作的主要贡献包括:

    -设计了一个有效的IFNet来近似中间流,并引入了一个特权蒸馏方案来提高性能。实验表明,RIFE在几个公共基准测试中实现了SOTA性能,特别是在任意时间帧插值场景中。

    -显示RIFE可以扩展到应用程序,如深度图插值和动态场景拼接,由于其灵活的时间编码。

方法

给定一对连续帧I0和I1还有一个目标时间步t(0-1之间),目标是生成一个中间帧It。通过将输入帧以及t一同输入IFNet来预估中间流Ft->0和Ft->1,使用下式来重建It’:

It’ = M * It<-0 + (1-M) * It<-1,

It<-0=W(I0,Ft->0), It<-1=W(I1,Ft->1),W表示图像warp操作,M表示融合mask。

使用另外一个称为优化网络的编解码结构的CNN网络来优化It’的高频区域,减少学生网络产生的artifacts,优化网络的计算量和IFNet近似,其最终产生一个重建的残差Δ(-1≤Δ≤1),最终得到一个优化的重建图像It’+Δ。

中间流预测

以前的一些VFI方法对双向流进行了反向和细化,由于处理物体位置变化困难,反向流计算过程通常是麻烦的。直观上来讲之前的流反演方法希望对光流场进行空间插值,由于存在“物体移动”问题,这一点并不简单,IFNet的作用是在给定两个连续输入帧I0、I1和时间步长t的情况下,直接有效预测Ft->0,Ft->1和融合掩膜M,当t=0或t=1时,IFNet类似于经典光流模型。

为了处理在中间流量估计中遇到的大运动,本文采用了一种逐渐增加分辨率的从粗到精策略,如图4所示。具体来说,首先计算低分辨率下的流场的粗略预测,这被认为更容易捕获大的运动,然后迭代地细化流场,逐渐增加分辨率。按照这种设计,IFNet具有堆叠沙漏结构,其中流场通过连续的ifblock迭代改进:

其中Fi-1和Mi-1表示第i-1个中间流和融合mask的预测,IFBi表示第i个IF Block。一共使用3个IFBlocks,每一个都有一个分辨率参数(K0,K1,K2)=(4,2,1),在推理阶段的最终预测Fn和Mn(n=2)。每一个IFBlock都有一个前馈结构包含几个卷积层和一个上采样操作,除了输出光流残差和融合mask的层,使用PReLU作为激活。

cost value操作是计算费时的并且通常将光流的起始点与输入图像联系起来,所以它不能直接转换。作者比较了SOTA光流模型和IFNet的运行耗时,现有的基于光流的视频插帧模型总是需要将他们的流模型跑两次然后再处理双向光流,因此本文中的中间流估计可以跑在一个更快的速度上,尽管这些光流模型可以准确预测中间帧运动,但是他们并不适用于直接迁移到视频插帧任务。

本文用一个实验表明,在没有中间帧的情况下,直接逼近中间流是具有挑战性的。在Vimeo90K[62]数据集上训练DVF模型来估计中间流量。作为比较,在DVF模型中添加了一个额外的输入通道,其中包含中间帧的边缘映射(表示为“特权DVF”)。图5显示,特权DVF的量化结果高得惊人,而DVF估计的流量却很模糊。在延迟渲染中也得到了类似的结论,表明VFI在加入一些中间信息后会变得更简单。这表明该模型估计两幅图像之间的光流比估计中间流更容易,启发本文设计一个特权模式来教授原有的模式。

本文为IFNet设计了一个特权蒸馏损失,堆叠一个额外的IFBlock来根据目标帧优化IFNet的结果,有了目标帧作为额外信息,教师模型可以产生更准确的流:

作者将蒸馏损失应用于学生模型中迭代更新过程生成的完整预测序列,这个损失的梯度不会反向传播到教师模型。在训练阶段之后,教师块将被丢弃,因此这不会产生额外的推理成本。这使得训练更稳定,收敛更快。

执行细节

损失使用下式,其中损失包含三项,重建损失、教师网络得重建损失以及蒸馏损失,其中蒸馏损失项得系数为0.01,重建损失项使用图像的5层拉普拉斯金字塔的L1损失来构建。

训练数据集

本文使用Vimeo90K数据集来进行训练,该数据集有51312个三元组,其中每个三元组包含三个连续的视频帧,分辨率为448x256,训练中使用水平、垂直翻转、时序翻转、旋转90°等操作来进行增强。

训练策略

训练中将t固定为0.5,使用AdamW来进行优化,权重衰减设置为10-4,训练图像设置为224x224,batch size设置为64。在整个训练过程中,使用余弦退火将学习率从10−4逐渐降低到10−5,训练在8个TITAN X (Pascal) gpu上训练RIFE在10小时内进行300次epoch。

使用Vimeo90K-Septuplet数据集扩展RIFE以支持任意时间步长的帧插值。该数据集有91,701个序列,分辨率为448 × 256,每个序列包含7个连续帧。对于每个训练样本,随机选择3帧(In0, In1, In2),计算目标时间步长t = (n1 - n0)/(n2 - n0),其中0≤n0 < n1 < n2 < 7,所以可以编写RIFE的时间编码来扩展它。保持其他训练设置不变,将在Vimeo90K-Septuplet上训练的模型记为RIFEm。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值