视频帧插学习(一):RIFE:Real-Time Intermediate Flow Estimation for Video Frame Interpolation

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

最近正在看视频帧插论文。其中《Real-Time Intermediate Flow Estimation for Video Frame Interpolation》我认为思路较好。为什么好?因为摒弃了之前计计算光流的带来的halo弊端:求t 帧 和 1-t帧的光流,本文是直接估计中间帧光流,因此没有了这样的弊端,因此从方法论上就是赢过了此论文之前的论文。还有一点是本论文在训练方面提供的细节很多,是个货真价实的论文。


论文地址:https://arxiv.org/pdf/2011.06294.pdf
代码地址:https://github.com/megvii-research/ECCV2022-RIFE
训练数据地址:链接: https://pan.baidu.com/s/1RS110AI5ZjklHzI29X1Tcg?pwd=dtzu 提取码: dtzu

一 摘要

实时视频帧插值(VFI)在视频处理、媒体播放器和显示设备中非常有用。我们提出了RIFE,一种用于VFI的实时中间流估计算法。为了实现高质量的基于流的VFI方法,RIFE使用了名为IFNet的神经网络,该网络可以端到端地估计中间光流,并具有更快的速度。我们设计了一种特权蒸馏方案,用于稳定IFNet的训练并提高整体性能。RIFE不依赖预训练的光流模型,并且可以支持用时域视频帧作为输入的任意时间步长帧插。实验表明,RIFE在几个公共基准测试中达到了最先进的性能。与流行的SuperSlomo和DAIN方法相比,RIFE的速度提高了4-27倍,并且产生了更好的结果。此外,RIFE因为支持时域输入,因此可以扩展到更广泛的应用中。
注意:这里论文中的 temporal encoding 我通篇读下来就是指可以用视频生成视频,其实没什么,不是transform那种encoding。

二 引论

视频帧插值(VFI)旨在在两个连续视频帧之间合成中间帧。VFI支持各种应用,如慢动作生成、视频压缩[57]和视频帧预测[58]。此外,运行在高分辨率视频上的实时VFI方法具有许多潜在应用,例如减少直播视频流的带宽需求、为计算资源有限的用户提供视频编辑服务,以及在显示设备上调整视频帧率。
其实行业内在暗场景模式下要有一定的曝光时间,因此帧率不会太低:

由于现实世界视频中复杂的非线性运动和光照变化,VFI具有挑战性。最近,基于流的VFI算法提供了一个框架来解决这些挑战,并取得了令人印象深刻的结果[30,22,40,62,3,61,28]。这些方法的常见方法包括两个步骤:
1)根据近似的光流对输入帧进行变形(warping),
2)使用卷积神经网络(CNNs)融合变形(warped)的帧

计算光流模型不能直接用于到VFI。给定输入帧 I 0 I_0 I0 I 1 I_1 I1,基于流的方法[30,22,3]需要从我们期望合成的帧It的角度来近似中间流 F t → 0 F_{t→0} Ft0 F t → 1 F_{t→1} Ft1。中间光流和视频帧之间存在一个“鸡生蛋蛋生鸡”的问题,因为 F t F_t Ft事先不可用,而其估计是一个困难的问题[22,44]。许多实践[22,3,61,28]首先从光流模型计算双向光流,然后将其反向并细化以生成中间流。然而,这样的流在运动边界可能存在缺陷(一般以halo为主),因为物体位置从一帧到另一帧会发生变化(“物体移位”问题)。外表流(appearance flow)[66],是视图合成中的开创性工作,提出使用CNN从目标视图开始估计流。DVF [30]将其扩展到动态场景的体素流,以联合建模中间流和混合掩模来端到端地估计它们。AdaCoF [27]进一步将中间流扩展为自适应协作流。BMBC [44]设计了一个双边成本体积运算符,用于获取更精确的中间流(双边运动)。

在本文中,我们的目标是构建一个轻量级的流水线,既能达到最先进的性能(SOTA),又能保持直接中间流估计的简洁性。我们的流水线具有以下主要设计概念:

1 不需要额外的组件,如图像深度模型[3]、流细化模型[22]和流反转层[61],这些组件是为了弥补中间流估计的缺陷而引入的。我们还希望消除对预先训练的最先进光流模型的依赖,因为这些模型并不是为VFI任务量身定制的。(superslomo就是这样)。
2 端到端可学习的运动估计:我们通过实验证明,与引入一些不准确的运动建模相比,让CNN端到端地学习中间流更为有效。这一方法已经被提出[30]。然而,后续的研究并没有完全继承这一思想。
3 为近似的中间流提供直接监督:大多数VFI模型只使用最终的重建损失进行训练。直觉上,通过传播像素级损失的梯度来进行流估计并不高效[11,37,35]。缺乏专门设计用于流估计的显式监督会降低VFI模型的性能。

三 本文方法

本文作者提出了 IFNet:
在这里插入图片描述
上图红色部分+黑色部分是老师模型的结构,黑色为学生模型的结构。作者利用特权蒸馏,减小了模型的计算量且保证了较好的效果。

目标:中间帧 (intermediate frame): I t ^ \hat{I_t} It^
需要估计:中间光流 (intermediate flow) 和 融合图(fusion map): F t → 0 F_{t→0} Ft0 F t → 1 F_{t→1} Ft1,M

第一步:计算光流
得到从0时刻到中间帧的warp图: I ^ t ← 0 = W ← ( I 0 , F t → 0 ) \hat{I}_{t←0} = \overleftarrow W(I_0, F_{t→0}) I^t0=W (I0,Ft0)
得到从1时刻(也就是下一帧)到中间帧的warp图: I ^ t ← 1 = W ← ( I 1 , F t → 1 ) \hat{I}_{t←1} = \overleftarrow W(I_1, F_{t→1}) I^t1=W (I1,Ft1)

第二步:构建重建帧(也可以说重建图像,reconstructed image)
重建帧=wrap 0时刻图 ⊙ M + warp 1时刻图 ⊙(1-M): I t ^ = M ⊙ I ^ t ← 0 + ( 1 − M ) ⊙ I ^ t ← 1 \hat{I_t}=M⊙\hat{I}_{t←0}+(1-M)⊙\hat{I}_{t←1} It^=MI^t0+(1M)I^t1

第三步:提升重建帧(refine)
I ^ t + △ \hat{I}_{t} + △ I^t+ = RefineNet( I ^ t \hat{I}_{t} I^t) 其中 △∈[-1,1]

IFNet 特征:
1 直接估计相邻两帧的中间光流,因此接受时域的视频相邻两帧。
在这里插入图片描述
图左边是传统方法,先算0 →t 时刻(t 属于0~1之间)的光流,再算1→t的光流,一个是正向一个是反,向所以叫做双向光流。作者指出,正因为有这样的求解过程,遇到存在漂移的物体就会出halo。

上图中combination是双向光流结果的融合,IFNet 是本文结果(其实笔者在复现作者工作中,当物体基于类似铁丝网的北京前移动时,rife仍然遇到了halo)。
2 可以coarse to fine 的估计,coarse 估计大运动,fine 估计细微运动。
3 IFNet 中没有昂贵的其他操作,只有3*3 卷积和反卷积作为基础block。
4 采用了中间监督,即使用特权蒸馏,该中间教师模型对中间帧的光流进行教学,而没有用

RefineNet特征
1 RefineNet 为Unet(down 4 层 + up 4 层) + contex extractor(4 个conv + 1个 warp)
其中,(frame0+frame1)。
RefineNet 主要解决高频纹理细节的 artifact。
结构比较简单,详细见代码。
在这里插入图片描述

四 实验

1 公共测试集:略
在这里插入图片描述

2 和其他方法进行比较:略
在这里插入图片描述

3 时域编码:在视频帧插值(VFI)任务中,我们的时间编码 t 被用于控制时间步长。为了展示其泛化能力,我们证明我们可以控制这个编码以实现多样化的应用。因此这种能力可以实现丢与FOV这种超广角模式下,rolling shutter出现下图这种时延时,视频帧插可以解决红框和蓝框的问题(我个人理解为解决flicker)
在这里插入图片描述
其实在极夜情况下,rolling shutter时间反而可以忽略,主要是曝光时间不能太短,意味着视频不能高帧率,这才真的需求。

4 消融实验:略
在这里插入图片描述

五 结论:略


  • 16
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用中的描述,该论文提出了一种调整和融合的方式,以降低仿射结果中的伪影问题。这种方式包括使用软融合图 M 和重建残差项 Δ 来融合两个warp。此外,根据引用的说明,该方法使用卷积神经网络(CNN)来融合和完善warp后的。它基于backward warping的方法,通过近似中间流来合成。最后,根据引用,该算法通过将输入输入到IFNet来直接估计中间流,并使用线性运动假设近似另一个中间流。然后,通过backward warping输入得到两个粗略结果,为了消除warp后的伪像,使用编解码器将输入、近似流和warp后的馈入融合过程,以生成最终的图像。 根据引用的描述,该中间流算法的整体流程如下: 1. 输入两图像 I0 和 I1。 2. 使用IFNet来直接估计中间流 Ft->0。 3. 使用线性运动假设近似另一个中间流 Ft->1。 4. 通过backward warping输入得到两个粗略结果 I^0->t 和 I^1->t。 5. 使用融合算法(如FusionNet)将输入、近似流和warp后的馈入融合过程。 6. 生成最终的图像 It^。 综上所述,该算法通过估计中间流和融合多个输入来生成图像,以解决视频中的伪影问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [RIFE-实时视频算法 | RIFEReal-Time Intermediate Flow Estimation for Video Frame Interpolation](https://blog.csdn.net/weixin_42096202/article/details/110386330)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值