XVFI: eXtreme Video Frame Interpolation

原文地址:https://arxiv.org/pdf/2103.16206.pdf
Github 地址:https://github.com/JihyongOh/XVFI

Abstract

在这篇文章中,我们首先向研究界展示了一个数据集( X4K1000FPS ),该数据集包含 4K 分辨率、1000 fps 帧率的,具有极端运动情况的视频,将其用于视频插帧( VFI )。我们还提出了一个极端的视频插帧网络,叫做 XVFI-Net,该网络首次处理了大运动 4K 视频的插帧问题。

XVFI-Net 基于一个递归的多尺度共享结构,该结构由两个级联模块所组成,这两个模块分别用于两个输入帧之间的双向光流学习( BiOF-I ),以及目标帧到输入帧的双向光流学习( BiOF-T )。光流通过 BiOF-T 模块中提出的互补流逆转( CFR )实现稳定地近似。模型推理期间, BiOF-I 模块能够以任意尺寸的输入开始,而 BiOF-T 模块则只能在原始输入尺寸下运行,这样就可以在加速推理的同时,保持高度精确的视频插帧性能。

大量实验结果表明,我们的 XVFI-Net 能够成功捕获到具有极端大运动和复杂纹理的物体的重要信息,而目前最先进的方法则展现出了较差的性能。此外,我们的 XVFI-Net 框架还在之前更低分辨率的基准数据集上具有相当的表现,这也体现出了我们算法的鲁棒性。

所有的源码、预训练模型,以及所提出的 X4K1000FPS 数据集,均公开发布于 https://github.com/JihyongOh/XVFI。

1. Introduction

视频插帧技术通过在给定的两个连续帧之间合成一至多个中间帧,将低帧率( LFR ) 内容转换为高帧率( HFR ) 视频,然后,高速运动的视频就能够在增加的帧率中平滑渲染,从而缓解运动抖动。因此,它被广泛用于各种实际应用中,例如自适应流媒体,新视图插值合成,帧率提升与转换,慢动作生成,以及视频修复。然而,视频插帧具有很大的挑战性,它由多种因素所导致,如遮挡,大运动,光线变化。最近,对基于深度学习的视频插帧领域的研究呈现积极态势,表现卓越。然而,他们通常只为那些现有的低帧率基准数据集做优化,这可能会导致较差的插帧性能,特别是对于那些 4K 分辨率( 4096×2160 )或是拥有更大运动、更高分辨率的视频来说。这样的 4K 视频通常包含具有极大像素位移的快速运动的帧,对于此类情况,传统的卷积神经网络无法在有限大小的感受野中有效地进行工作。

为了解决基于深度学习的视频插帧方法所拥有的上述问题,我们直接拍摄了 4K 视频来构建一个高质量的高分辨率、高帧率数据集 X4K1000FPS。图 1 展示了我们数据集中的一些示例。如图所示,我们的 4K 分辨率视频包含了极大运动和遮挡的情况。

我们还首次提出了一个极端的视频插帧模型 XVFI-Net,改模型设计旨在有效地处理如此具有挑战性的 4K 1000fps 数据集。我们的 XVFI-Net 是简单而有效的,它基于一个递归多尺度共享结构,而不是像最近视频修复的趋势那样,用可变形卷积的连续特征空间直接捕获极端运动,或是采用含有如上下文,深度,流,边缘等额外信息的大尺寸预训练网络。这个 XVFI-Net 包含两个级联模块:一个用于两个输入帧之间的双向光流学习( BiOF-I ),另一个用于目标帧到输入帧的双向光流估计( BiOF-T )。这两个模块结合多尺度损失进行训练。然而,一旦经过训练, BiOF-I 模块能从任意缩小的输入向上启动,而推理过程中, BiOF-T 模块则只能在原始输入尺寸下运行,这样计算是很有效的,并且有助于在任意目标时刻生成中间帧。从结构方面来看, 即使训练已经结束了,XVFI-Net 也可以根据输入的分辨率或是运动大小,对推理的尺度数量进行调整。我们还提出了一个新的从时间 t 到那些输入的光流估计算法,叫做互补流逆转( CFR ),它能通过互补流有效地填补空洞。为了公平比较,我们进行了大量实验,结果证明,在 X4K1000FPS 数据集上,我们的 XVFI-Net 拥有相对较小的复杂度,表现优于先前的视频插帧算法 SOTA,尤其是对于如图 2 所示的极端运动情况而言。我们还在先前的 LR-LFR 基准数据集上做了进一步实验,这也证明了 XVFI-Net 的鲁棒性。

我们的贡献可以总结为:

  • 我们首次提出了一个高质量的 4K 高帧率视频数据集 X4K1000FPS,该数据集包含各种纹理,极大运动,缩放和遮挡。

  • 我们提出了 CFR 互补流逆转法,从时间 t 到输入帧生成稳定的光流估计结果,提高定性和定量的性能。

  • 我们所提出的 XVFI-Net 可以从任意缩放尺寸的输入向上启动,它能根据输入的分辨率或运动幅度对推理的尺度数量进行调整。

  • 与先前的 SOTA 算法相比,我们的 XVFI-Net 在 X4K1000FPS 测试集上实现了最先进的性能,并且与之拉开了很大的差距,同时具有少量过滤器参数的计算效率。所有源码和提出的 X4K1000FPS 数据集均公开发布于 https://github.com/JihyongOh/XVFI。

2. Related Work

2.1. Video Frame Interpolation

大多数的视频插帧方法可以分为基于光流或内核的以及基于像素幻觉的方法。

基于流的视频插帧. Super-SloMo 首次对两个输入帧之间的预测光流进行线性组合,以近似于从目标中间帧到输入帧的流。二次视频插帧利用四个输入帧,通过二次近似来应对非线性运动的建模,当只给定两个输入帧时,视频插帧的一般化情形就受到了限制。它还提出了流逆转(投影)以实现更精准的图像变形。另一方面,DAIN 通过流投影层,根据场景的物体深度,给予重叠流向量不同的权重。然而,DAIN 同时采用了 PWC-Net 和 MegaDepth 并对它们进行了微调,这对于推导中间的高分辨率帧来说,计算量是很大的。AdaCoF 提出了一种通用的变形模块来处理复杂运动。然而,一旦训练完成,由于固定的膨胀度,它便无法自适应地去处理更高分辨率的帧。

基于像素幻觉的视频插帧. FeFlow 受益于中间帧生成器的可变形卷积,采用偏移向量来替代光流。Zooming Slow-Mo 也通过特征域可变形卷积的帮助进行插帧。然而,这些方法与基于流的视频插帧方法不同,由于它们直接幻化了像素,因此当快速运动的物体出现时,预测帧往往会变得模糊。

最重要的是,由于计算复杂度很高,上述视频插帧方法很难一次性对整个 HR 帧进行操作。另一方面,我们对 XVFI-Net 的设计,旨在用更少的参数,高效地对完整的 4K 输入帧一次性完成操作,并且能够有效地捕获大运动。

2.2. Networks for Large Pixel Displacements

PWC-Net 是一种最先进的光流估计手段,它已经被一些视频插帧算法采纳,用于预训练光流估计器。由于 PWC-Net 拥有 6 层特征金字塔结构和更大尺寸的感受野,因此它能有效预测大运动。IM-Net 也采用了多尺度结构来覆盖相邻帧中物体的大幅度位移,但覆盖范围受限于自适应滤波器的尺寸。尽管有多尺度金字塔结构,但上述方法缺乏自适应性,因为每个网络中最粗略的层在训练后是固定的,即每个尺度层都由其自身的(而非共享的)参数组成。RRPN 在一个灵活的循环金字塔结构中,跨越不同尺度层共享权重参数。然而,它只能推导中间时刻的帧,而不能在任意时刻进行推导。所以它只能在以2为幂的时间点递归地合成中间帧。因此,中间帧在两个输入帧之间进行递归合成的过程中,预测所产生的误差就会被不断累积。因此, 对于在任意目标时刻 t 进行的视频插帧任务来说,RRPN 受限于时间上的灵活性。

与上述方法不同的是,我们所提出的 XVFI-Net 拥有一个可扩展的结构,对于各种输入分辨率都有可共享的参数。不同于 RRPN,XVFI-Net 在结构上分为 BiOF-I 和 BiOF-T 模块,它能借助互补流逆转的方式,有效地预测任意时刻 t 的中间帧。也就是说,BiOF-T 模块可以在推导过程中跳过缩小层级,这样我们的模型就可以一次性推导出 4K 的中间帧,而无需像所有其他之前的方法那样进行任何的块迭代,使其可以被用于现实世界的应用当中。

3. Proposed X4K1000FPS Dataset

尽管许多视频插帧方法已经在不同的基准数据集上得到了训练和评估,例如 Adobe240fps,DAVIS,UCF101,Middlebury 和 Vimeo90K,但没有一个数据集包含大量的 4K 高帧率视频。这限制了某些复杂插帧算法的研究,这些算法服务于针对高分辨率视频的插帧应用。

为了解决这一具有挑战性的极端 VFI 任务,我们提供了一组丰富的 4K@1000fps 视频,视频由 Phantom Flex4KTM 相机所拍摄,其 4K 空间分辨率为 4096×2160,帧率为 1000fps,共生产了 175 个视频场景,其中每个场景均由 5000 帧组成,拍摄时长为 5 秒。

为了能为 VFI 任务选择有价值的数据样本,我们使用 IRR-PWC 估计了每 32 帧场景的双向遮挡图和光流。遮挡图预示着在下一帧中将要被遮挡的物体部分。遮挡使得光流估计和插帧变得很有挑战性。因此,综合考量遮挡程度,光流大小和场景多样性,我们人工选择了 15 个场景作为测试集 X-TEST。X-TEST 中的的每个场景都仅包含一个测试样本,该样本由时间距离为 32 帧中的两个输入帧组成,近似对应于 30fps 的帧率。测试评估被设定为插入 7 个中间帧,从而得到 240fps 连续帧的结果。对于训练集 X-TRAIN,通过考虑遮挡的数量,我们裁剪并选择了 4408 个 768×768 大小的片段,片段长度为 65 个连续帧。更多细节将在 补充材料 中进行描述说明。

表 1 比较了几个数据集的统计结果:Vimeo90K,Adobe240fps,X-TEST 和 X-TRAIN。我们在 [0,255] 的范围内对遮挡进行了估计,还估计了输入对之间的光流大小,并计算了每个数据集的百分比。如表1所示,与先前的 VFI 数据集相比,我们的数据集包含与之相当的遮挡,但运动幅度明显更大。

4. Proposed Method : XVFI-Net Framework

4.1. Design Considerations

我们的 XVFI-Net 旨在两个连续的输入帧 I0 和 I1 之间的任意时间点 t 插入一个包含极端运动的高分辨率中间帧 It

尺度自适应. 诸如 PWC-Net 那样的具有固定数量尺度层级的架构很难适应输入视频的各种空间分辨率,因为每个尺度层级的结构在不同尺度层级之间是不共享的,所以需要为了一个新增尺度深度的新架构进行重新训练。为了能够拥有尺度自适应性,以应对输入帧的各种空间分辨率,我们的 XVFI-Net 被设计为可以从任意需要的粗糙尺度层级开始进行光流估计,以适应输入帧中的运动幅度。为了做到这一点,我们的 XVFI-Net 在不同的尺度层级之间共享它们的参数。

捕获大运动. 为了有效地捕捉两个输入帧之间的大运动,XVFI-Net 中的特征提取块首先通过跨步卷积,将两个输入帧的空间分辨率按照模块比例系数 M 进行缩减,从而得到空间上被缩小的特征,然后将其转换为两个上下文特征图 C00C^0_0C00​ 和 C10C^0_1C10​。图 3 中的特征提取块是由跨步卷积和两个残差块所组成的。接下来,在每个尺度层级,XVFI-Net 都在以 M 为比例缩小的空间尺寸下,对目标帧 It 到两个输入帧进行光流估计。预测光流将被放大( ×M\times M×M ),从而将每个尺度层级的输入帧变形至时间 t。

4.2. XVFI-Net Architecture

BiOF-I 模块. 图 4 展示了我们的 XVFI-Net 在尺度层级 s 上的架构,其中 Is 表示缩小 1/2s1/2^s1/2s 次幂。首先,上下文金字塔 C={Cs}C = \{C^s\}C={Cs} 是通过步距为 2 的卷积从 C00C^0_0C00​ 和 C10C^0_1C10​ 开始循环提取的,随后,它将被用作 XVFI-Net 每一尺度层级 s ( s = 0, 1, 2, … ) 的输入,其中,s = 0 表示原始输入帧的尺度。FtatbsF^s_{t_at_b}Fta​tb​s​ 表示在尺度 s 下,时间 ta 到 tb 的光流。F01sF^s_{01}F01s​ 和 F10sF^s_{10}F10s​ 是尺度 s 下,输入帧之间的双向光流。Ft0sF^s_{t0}Ft0s​ 和 Ft1sF^s_{t1}Ft1s​ 分别是从 ItsI^s_tIts​ 到 I0sI^s_0I0s​ 和 I1sI^s_1I1s​ 的双向光流。

从前一个尺度 (s + 1) 估计的光流 F01s+1F^{s+1}_{01}F01s+1​,F10s+1F^{s+1}_{10}F10s+1​ 经过 ×2\times2×2 双线性放大后,被设置为当前尺度 s 的初始光流,即,F~01s=F01s+1↑2\widetilde{F}^s_{01} = F^{s+1}_{01} \uparrow_2F01s​=F01s+1​↑2​,F~10s=F10s+1↑2\widetilde{F}^s_{10} = F^{s+1}_{10} \uparrow_2F10s​=F10s+1​↑2​。为了更新当前尺度的初始光流,首先,通过初始光流对 C0sC^s_0C0s​ 和 C1sC^s_1C1s​ 进行变形,也就是说,C~01s=W(F~01s,C1s)\widetilde{C}^s_{01} = W(\widetilde{F}^s_{01}, C^s_1)C01s​=W(F01s​,C1s​),C~10s=W(F~10s,C0s)\widetilde{C}^s_{10} = W(\widetilde{F}^s_{10}, C^s_0)C10s​=W(F10s​,C0s​),其中,W 是一个向后变形操作。接下来,C~01s\widetilde{C}^s_{01}C01s​,C~10s\widetilde{C}^s_{10}C10s​,C0sC^s_0C0s​,C1sC^s_1C1s​,将连同 F~01s\widetilde{F}^s_{01}F01s​,F~10s\widetilde{F}^s_{10}F10s​ 一起被传入一个基于自动编码器的 BiFlownet,如图 4 所示,输出得到初始光流的残余流量和一个可训练的重要性掩码 z。然后得到 F01sF^s_{01}F01s​ 和 F10sF^s_{10}F10s​。他们将作为输入,传入 BiOF-T 模块,同时也用作下一个尺度 s - 1 的初始光流。

BiOF-T 模块. 此后,除非提及,否则我们将省略每个尺度上特征张量概念的上标 s。尽管用光流 F01F_{01}F01​,F10F_{10}F10​ 或 F0tF_{0t}F0t​,F1tF_{1t}F1t​ 的流逆转进行线性近似,可以在任意时刻 t 估计光流 Ft0F_{t0}Ft0​,Ft1F_{t1}Ft1​,但仍有一些不足之处。对于快速移动的物体来说,线性近似所预测的 Ft0F_{t0}Ft0​ 和 Ft1F_{t1}Ft1​ 是不准确的,因为 F01F_{01}F01​ 和 F10F_{10}F10​ 的锚点严重错位。另一方面,流逆转可以对齐锚点,但在估计的 Ft0F_{t0}Ft0​ 和 Ft1F_{t1}Ft1​ 中可能会出现 孔洞 。为了稳定流逆转的性能,我们同时吸取了线性近似和流逆转的互补性优势。因此,一种从时间 t 到 0 或 1 的稳定光流估计法,可以通过负锚流和互补流的归一化线性组合来进行计算,我们将其称之为互补流逆转( CFR )。由此产生的互补逆转光流图,即从时间 t 到 0 和 1 的 F~t0\widetilde{F}_{t0}Ft0​ 和 F~t1\widetilde{F}_{t1}Ft1​,由下式给出,

F~t0x=(1−t)∑N0ω0⋅(−F0ty)+t∑N1ω1⋅F1⋅(1−t)y(1−t)∑N0ω0+t∑N1ω1(1)\widetilde{F}^x_{t0} = \frac{(1 - t)\sum_{N_0}\omega_0·(-F^y_{0t}) + t \sum_{N_1}\omega_1·F^y_{1·(1-t)}}{(1 - t)\sum_{N_0}\omega_0 + t\sum_{N_1}\omega_1}\quad(1)Ft0x​=(1−t)∑N0​​ω0​+t∑N1​​ω1​(1−t)∑N0​​ω0​⋅(−F0ty​)+t∑N1​​ω1​⋅F1⋅(1−t)y​​(1)

F~t1x=(1−t)∑N0ω0⋅F0⋅(1−t)y+t∑N1ω1⋅(−F1ty)(1−t)∑N0ω0+t∑N1ω1(2)\widetilde{F}^x_{t1} = \frac{(1 - t)\sum_{N_0}\omega_0·F^y_{0·(1-t)} + t \sum_{N_1}\omega_1·(-F^y_{1t})}{(1 - t)\sum_{N_0}\omega_0 + t\sum_{N_1}\omega_1}\quad(2)Ft1x​=(1−t)∑N0​​ω0​+t∑N1​​ω1​(1−t)∑N0​​ω0​⋅F0⋅(1−t)y​+t∑N1​​ω1​⋅(−F1ty​)​(2)

其中,x 表示时刻 t 时的像素位置,y 指在时刻 0 或 1 时的像素位置。ωi=ziy⋅G(∣x−(y+Fity)∣)\omega_i = z^y_i · G(\vert x - (y + F^y_{it})\vert)ωi​=ziy​⋅G(∣x−(y+Fity​)∣) 是一个高斯权重,它取决于 x 在 t 时刻和 y + FityF^y_{it}Fity​ 在 i (= 0 或 1) 时刻之间的距离,同时还通过 ziyz^y_iziy​ 考虑每个光流可学习的重要性掩码。并且,公式 1(或公式 2)中的 −F0ty-F^y_{0t}−F0ty​ ( −F1ty-F^y_{1t}−F1ty​ ) 以及 F1⋅(1−t)yF^y_{1·(1-t)}F1⋅(1−t)y​ ( F0⋅(1−t)yF^y_{0·(1-t)}F0⋅(1−t)y​ ) 分别被定义为负锚流和互补流。除此之外,锚流是归一化的流,其到中间时刻 t 可以被计算为 F0t=tF01F_{0t} = tF_{01}F0t​=tF01​,F1t=(1−t)F10F_{1t} = (1 - t)F_{10}F1t​=(1−t)F10​。在公式 1 和 公式 2 中需要注意的是,互补流也被归一化为 F1⋅(1−t)=tF10F_{1·(1-t)} = tF_{10}F1⋅(1−t)​=tF10​,F0⋅(1−t)=(1−t)F01F_{0·(1-t)} = (1 - t)F_{01}F0⋅(1−t)​=(1−t)F01​,它们能补充性地填补逆转流中出现的孔洞。通过这样做,我们就能充分利用时间密集型捕获的 X4K1000FPS 数据集来训练我们的 XVFI-Net 在任意时刻 t 的进行视频插帧。x 的邻域被定义为,

N0={y∣round(y+F0ty)=x}(3)N_0 = \{y \mid round(y + F^y_{0t}) = x\}\quad (3)N0​={y∣round(y+F0ty​)=x}(3)

N1={y∣round(y+F1ty)=x}(4)N_1 = \{y \mid round(y + F^y_{1t}) = x\}\quad (4)N1​={y∣round(y+F1ty​)=x}(4)

为了细化双向光流的近似结果 F~t0\widetilde F_{t0}Ft0​,F~t1\widetilde F_{t1}Ft1​,我们将特征图( C0C_0C0​, C1C_1C1​ )分别通过 F~t0\widetilde F_{t0}Ft0​ 和 F~t1\widetilde F_{t1}Ft1​ 重新变形为 C~t0\widetilde C_{t0}Ct0​ 和 C~t1\widetilde C_{t1}Ct1​ 。我们将 C0C_0C0​,C1C_1C1​,C~t0\widetilde C_{t0}Ct0​,C~t1\widetilde C_{t1}Ct1​,以及 F~t0\widetilde F_{t0}Ft0​,F~t1\widetilde F_{t1}Ft1​ 连接起来,传入基于自动编码器的 TFlownet,如图 4 所示(类似于细化 F~01\widetilde F_{01}F01​,F~10\widetilde F_{10}F10​)。TFlownet 的输出用于组成细化的光流 Ft0F_{t0}Ft0​,Ft1F_{t1}Ft1​,随后它们将被双线性放大( ×M\times M×M )回 ItsI^s_tIts​ 的大小。以 M 为系数在空间缩小的尺寸进行光流估计有三个优点:(i) 扩展了感受野,(ii) 降低了计算开销,(iii) 平滑光流。该策略将基于流的 VFI 优势最大化,它可以通过光流估计对原始输入帧进行变形,使得原始输入帧的纹理信息能够得到充分利用,而基于幻觉的方法则在恢复缩小的特征图时缺乏清晰度。上述放大的光流分别被用来将输入帧 I0sI^s_0I0s​ 和 I1sI^s_1I1s​ 变形至 I~t0s\widetilde I^s_{t0}It0s​ 和 I~t1s\widetilde I^s_{t1}It1s​。C0sC^s_0C0s​,C1sC^s_1C1s​,C~t0s\widetilde C^s_{t0}Ct0s​,C~t1s\widetilde C^s_{t1}Ct1s​,Ft0sF^s_{t0}Ft0s​,Ft1sF^s_{t1}Ft1s​,I0sI^s_0I0s​,I1sI^s_1I1s​,I~t0s\widetilde I^s_{t0}It0s​ 和 I~t1s\widetilde I^s_{t1}It1s​ 都被汇总传入至基于 U-Net 的细化块中。而后,生成的遮挡掩码 msm^sms 和残差图像 I~sr\widetilde I^r_sIsr​ 最终都被用来混合变形帧 I~t0s\widetilde I^s_{t0}It0s​ 和 I~t1s\widetilde I^s_{t1}It1s​,公式如下,

I^ts=(1−t)⋅ms⋅I~t0s+t⋅(1−ms)⋅I~t1s(1−t)⋅ms+t⋅(1−ms)+I~sr(5)\hat I^s_t = \frac{(1 - t)·m^s·\widetilde I^s_{t0} + t·(1 - m^s)·\widetilde I^s_{t1}}{(1 - t)·m^s + t·(1 - m^s)} + \widetilde I^r_s\quad (5)I^ts​=(1−t)⋅ms+t⋅(1−ms)(1−t)⋅ms⋅It0s​+t⋅(1−ms)⋅It1s​​+Isr​(5)

其中,I^ts\hat I^s_tI^ts​ 是每个尺度层级 s 的最终结果。

4.3. Adjustable and Efficient Scalability

可调节的可扩展性. 图 3 展示了 XVFI-Net 的 VFI 框架,它能通过 ×1/2s\times1/2^s×1/2s 循环缩小上下文特征图 C00C^0_0C00​ 和 C10C^0_1C10​,进而从任意尺度层级开始工作,并且还能预测最粗糙的光流以有效地捕获极端运动。然后,估计的光流 F01sF^s_{01}F01s​,F10sF^s_{10}F10s​ 被传送到下一尺度 s - 1,光流逐渐更新至原始尺度 s = 0。我们的目标是,即使模型已经经过了训练,仍然可以根据输入帧的空间分辨率和运动幅度来决定推导的尺度数量。为了使 XVFI-Net 学习过程适用于任意尺度层级的输入,我们在公式 7 中提出了一个多尺度重构损失,该损失应用于训练过程中选定尺度深度 StrnS_{trn}Strn​ 的每一个输出 I^ts\hat I^s_tI^ts​。

高效的可扩展性. 如图 3 所示,无论 BiOF-I 从哪个尺度层级开始,推理过程中,BiOF-T 模块的计算总是在原始尺度( s = 0 )进行的,就像图中浅橙色的箭头所指示的那样。由于 F01sF^s_{01}F01s​ 和 F10sF^s_{10}F10s​ 是唯一经由 BiOF-I 模块跨越不同尺度层级的信息(从上一尺度层级到下一尺度层级),如图 3 所示,我们只递归地传递这两个光流,直到到达原始尺度层级。然后,BiOF-T 模块只在原始尺度层级处理 F10s=0F^{s=0}_{10}F10s=0​ 和 F01s=0F^{s=0}_{01}F01s=0​,来估计 Ft1s=0F^{s=0}_{t1}Ft1s=0​ 和 Ft0s=0F^{s=0}_{t0}Ft0s=0​。从结构上来讲,这是非常有益的,因为 (i) BiOF-I 模块负责通过递归地学习输入时刻 0 和 1 之间的双向光流,在多尺度层级间稳定地捕获极端运动,(ii) 与 RRPN 不同,BiOF-T 模块基于稳定估计的光流 F10s=0F^{s=0}_{10}F10s=0​ 和 F01s=0F^{s=0}_{01}F01s=0​,仅从任意目标时刻 t 到时刻 0 和 1,在原始尺度精细地预测双向光流。

损失函数. 我们采用了一种多尺度重构损失来训练 XVFI-Net 的共享参数。为了进一步促进所获得光流的平滑度,我在原始尺度上,对 Ft00F^0_{t0}Ft00​ 和 Ft10F^0_{t1}Ft10​ 使用了一阶边缘感知的平滑度损失。总损失函数是这两种损失函数的加权,如下所示:

Ltotal=Lr+λs⋅Ls(6)L _{total} = L_r + \lambda _s · L_s\quad(6)Ltotal​=Lr​+λs​⋅Ls​(6)

Lr=∑s=0Strn∥I^ts−Its∥1(7)L _r = \sum^{S_{trn}}_{s=0}\Vert\hat I^s_t - I^s_ t\Vert_1\quad(7)Lr​=s=0∑Strn​​∥I^ts​−Its​∥1​(7)

Ls=∑i=0,1exp(−e2∑c∣∇XItc0∣)T⋅∣∇XFti0∣(8)L _s = \sum_{i=0,1}exp(-e^2\sum_c\vert\nabla_\Chi I^0_{tc}\vert)^\Tau · \vert\nabla_\Chi F^0_ {ti}\vert\quad(8)Ls​=i=0,1∑​exp(−e2c∑​∣∇X​Itc0​∣)T⋅∣∇X​Fti0​∣(8)

其中,ccc,e2e^2e2 和 xxx 分别指颜色通道索引,边缘权重因子和空间坐标。

5. Experiment Results

所提出的 X-TRAIN 数据集包含 4408 个片段,它们的尺寸为 768x768,长度为 65 个连续帧。每个训练样本都是即时从各片段中随机抽取的。一个训练样本被定义为含有两个输入帧( I0,I1 )和一个目标帧( It, 0 < t < 1 )的三元组。I0 和 I1 之间的时间距离是在 [2, 32] 范围内随机选取的,It 也是在 I0 和 I1 之间随机确定的。这样做,我们的训练样本是完全随机获取的,充分利用了由时间密集型视频片段所组成的 X-TRAIN 数据集,相应地学习了各种 t。

XVFI-Net 的权重是用 Xavier 初始化的,批的大小被设置为 8。XVFI-Net 使用 Adam 优化器进行训练,迭代总次数 110200 次(200批),初始学习率为 10−410^{-4}10−4,在第 [100, 150, 180] 批以 4 为因子缩减。超参数 M,λs\lambda _sλs​ 和 e 分别被设定为 4,0.5 和 150。我们还将 X-TRAIN 的原始尺寸随机裁剪为 384×384 的块,并从空间和时间角度都对其进行了随机翻转,以实现数据增强。使用 PyTorch 在一块 NVIDIA TITAN RTX™ GPU 上进行训练,耗时大约半天。

5.1. Comparison to the Previous Methods

我们将 XVFI-Net 与之前的三种 VFI 方法进行比较,分别是 DAIN,FeFlow 和 AdaCoF,它们的训练代码都是公开的。其中,DAIN 可以一次性在任意时刻 t 生成插帧,而后两种方法只能在推导过程中以迭代的方式在 2 次幂时刻生成中间帧。

为了进行公平的比较,我们重新在 X-TRAIN 数据集上对之前的三种方法进行了训练,除了块大小为 384×384,总迭代次数为 110200 之外,其余超参数均为原始设置。为进一步比较,我们还使用了这三种方法的原始预训练模型,用下标 o 来表示,区别于它们在 X-TRAIN 上重新训练的模型,用下标 f 来表示。用于训练时,XVFI-Net 的最低尺度深度被设定为 3 ( StrnS_{trn}Strn​ ),用于测试时则被设定为 3 或 5 ( StstS_{tst}Stst​ )。我们在 X-TEST 上对每个场景的 7 个插帧结果(多帧插值 ×8)进行性能评估,依照三个评估指标:PSNR,SSIM 和 tOF,其中 tOF 用以测量运动的像素级差异的时间一致性,(越低越好)。我们还在 Adobe240fps 数据集上对每个片段的 7 个插帧结果进行了评估,其中 200 个不完整的片段是随机提取的,具有 1280×720 ( HD ),240fps。

定量比较. 表 2 展示了在 X-TEST 和 Adobe240fps 上对 VFI 方法所作的定量比较结果。请注意,表 2 中的所有运行时间( RtR_tRt​ )都是针对 1024×1024 大小的帧来测量的,这是因为 DAIN 和 FeFlow 这两个模型过于笨重,无法一次性运行一个 4K 输入帧( 4096×2160 )。如表 2 所示,将 StstS_{tst}Stst​ 设置为 3 和 5,不管在 X-TEST 还是 Adobe240fps 上,我们所提出的 XVFI-Net 表现都明显大幅领先于之前所有方法,即使我们的模型的参数数量( #P )明显少于其他那些模型。此外,值得注意的是,我们的模型可以一次性推导 4K 中间帧,无需任何块级迭代。特别是,对于 X-TEST 数据集,在 PSNR,SSIM 和 tOF 的表现上,XVFI-Net ( Stst=5S_{tst}=5Stst​=5 ) 比 DAINf 分别高出了 2.6dB,0.049 和 1.32,且仅使用了 DAIN 22.9% 的参数。

特别是对于 X-TEST 来说,它包含了具有明显极端运动的 4K 帧,我们的 XVFI-Net 可以在早期有效地捕获大运动,进而准确地对 4K 输入帧进行插值,效果比以前的方法更好。需要指出,FeFlow 不适用于在特征域内进行大运动对齐,这会导致输出模糊,并且对于 4K 输入帧来说计算量很大。另外,中间帧插值法,例如 AdaCoF,FeFlow 等,它们所合成的中间帧通常会比 DAIN, XVFI-Net 等任意时间的 VFI 方法更差,如图 5 所示。由于不准确的预测,中间帧插值法的误差往往会被迭代式地累积。另一方面,我们的模型可以在任意时刻 t 精确地合成中间帧。

定性比较. 图 6 从视觉角度展示了 VFI 性能的比较结果。图 6 中的第一列图像是两个 4K 输入帧的重叠图像。如图所示,在两个输入帧之间观察到了巨大的像素位移,对于 VFI 来说这是非常具有挑战性的。图 6 中的插值结果对应于两个输入帧的中心时刻( t = 0.5 ),这是最具挑战性的插帧。如图 6 所示,我们的 XVFI-Net ( Stst=5S_{tst} = 5Stst​=5 ) 意外地捕捉到了极快运动物体的非常复杂的结构,而所有之前的方法都失败了。

5.2. Ablation Studies

光流近似. 我们比较了三种能够在任意时刻 t 产生中间帧的光流近似法:(a) 利用 F01F_{01}F01​,F10F_{10}F10​ 作线性近似,(b) 对 F0tF_{0t}F0t​ 和 F1tF_{1t}F1t​ 作流逆转,(c) 我们提出的互补流逆转( CFR )。在比较中,我们l利用 IRR-PWC 获取到输入帧 I0 和 I1 之间的估计光流 F01F_{01}F01​,F10F_{10}F10​,在此基础上使用三种方法对 Ft0F_{t0}Ft0​ 作了近似。公式 1 和 2 中所提到的重要性掩码 z 被排除在此次比较之外。图 7 展示了三种方法所得到的近似光流的例子,以及 IRR-PWC 在 It 和 I0 之间估计的伪真实值。为了定量地评估光流近似法,我们在测试集 Vimeo90K 上计算了三种方法的近似光流与伪真实值之间的平均端点误差( EPEs ),如表 3 所示。线性近似法揭示出了由于不同的锚定框架而产生的错位,如图 7 中黄色箭头所示。流逆转法解决了错位问题,但比线性近似法要差,因为它导致了孔洞的出现,这并非是从任何流向量中投射出来的,如第二张光流图所示(红色箭头)。并且,流逆转法得出的 EPE 值是三种方法中最差的。另一方面,我们提出的 CFR 能够恰当地填补孔洞,这是因为双向光流彼此互补,如图 7 所示,这与表 3 中 CFR 所拥有的最低 EPE 值一致。

为了调查 CFR 对 VFI 的功效,我们在 BiOF-T 模块分别采用三种光流近似法,从头开始训练了三个 VFI 模型,没有借助于任何预训练网络。训练( StrnS_{trn}Strn​ )和测试( StstS_{tst}Stst​ )的最低尺度深度都设定为 3。三个模型在 X-TEST 上的 VFI 性能( PSNR/SSIM/tOF )见表 3,结果显示出了 CFR 的优越性。

可调节的可扩展性. 如图 3 所示,即使经过训练,推导的最低尺度深度 StstS_{tst}Stst​ 也能自适应输入帧的运动幅度和空间分辨率。我们用 Strn=1,3,5S_{trn} = 1,3,5Strn​=1,3,5 对应于 Stst=1,3,5S_{tst} = 1,3,5Stst​=1,3,5 ,展示了框架可调节的可扩展性。为此,我们充分利用 512×512 大小的块来训练 XVFI-Net 变体,因为对于 Strn=5S_{trn} = 5Strn​=5 来说,训练输入的空间分辨率应该是 512 的倍数,其中 512 是 2Strn=5×M(=4)×42^{S_{trn}=5}\times M(= 4)\times42Strn​=5×M(=4)×4(通过自动编码器的瓶颈)。表 4 比较了 XVFI-Net 变体的性能。如表 4 所示,通过增加 StstS_{tst}Stst​ 的值,借助于有效扩大感受野尺寸及精心完善光流结果,性能会普遍得到提高,特别是在捕获极端大运动和细节结构时。表 2 中,用 384×384 大小的块,Strn=3S_{trn} = 3Strn​=3 来训练 XVFI-Net 时,也观察到了这一趋势。除此之外,如图 6 中最右侧四列所示,物体的细节,字母和纹理在 Stst=5S_{tst} = 5Stst​=5 时的合成质量比 3 要更精确。定量和定性的结果都明确显示出 XVFI-Net 可调节可扩展性的有效性。另一方面,Adobe240fps 数据集的遮挡情况和光流大小都比 X-TEST 中的要小很多,如表 1 所示。表 2 中指出,在分辨率小于 X-TEST 的 Adobe240fps 数据集上,Stst=3S_{tst} = 3Stst​=3 时的 XVFI-Net 比 Stst=5S_{tst} = 5Stst​=5 时表现更好,这也明确地支持了我们的可调节可扩展性的功效。

XVFI-Net 框架的鲁棒性. 为了显示 XVFI-Net 框架在 LR-LFR 基准数据集上的鲁棒性,我们构建了 XVFI-Net 的变体 XVFI-Netv,针对具有较低分辨率帧的数据集,将该变体设置为 M = 2。进而,XVFI-Netv 在标准 VFI 数据集 Vimeo90K 训练集上进行训练,该训练集有 51313 个大小为 448×256 的三元组( t = 0.5 )。训练经历了 200 轮,随机裁剪成 256×256 大小的块,批大小为 16,其中 StrnS_{trn}Strn​ 和 StstS_{tst}Stst​ 均设置为 1。我们将 XVFI-Netv 与四种 SOTA 方法进行比较:DAIN,FeFlow,AdaCoF 和 BMBC,它们的预训练模型和测试代码都是公开的。图 8 展示了我们的模型和 SOTA 方法在 Vimeo90K 测试集上的评估结果,包括 PSNR/SSIM 和运行时间( s )性能,以及它们的模型大小( M )。如图所示,我们的 XVFI-Netv 模型规模明显更小(5.5 万个参数),表现优于 BMBC,DAIN 和 AdaCoF,这要得益于迭代式多尺度和共享结构。然而,相比于 FeFlow,XVFI-Netv 的性能较差,但它的模型规模要小很多,仅占 FeFlow 参数总量的 5.4%,因而其运行时间快了约 7 倍。因此,XVFI-Net 框架是为了具有极大运动的高分辨率 VFI 任务所设计的,它能简单地通过调节模块尺度因子 M,StrnS_{trn}Strn​ 和 StstS_{tst}Stst​,呈现出在 LR-LFR 基准数据集上的鲁棒性。

6. Conclusion

我们首先提出了一个高质量的高帧率高分辨率数据集 X4K1000FPS,它包含大幅度运动。所提出的 XVFI-Net 能处理大像素位移,具有可调节的可扩展性,以应对各种输入分辨率或运动大小,即使训练已经完成。与之前的方法相比,XVFI-Net 在 HR 数据集上展现出了最先进的性能,并且在 LR-LFR 基准数据集上具有鲁棒性。

尽管我们所提出的 X4K1000FPS 数据集是由一台摄像机拍摄得到的,但这样一个极端的 HFR 4K 数据集对于 VFI 研究学界来说是非常有价值的,因为这样的摄像机很少。此外,综合考量遮挡情况及光流大小,我们精心挑选片段用作公开发布的 X-TRAIN/X-TEST,以针对 VFI 任务的全新挑战,eXtreme Video Frame Interpolation ( XVFI )。我们希望这项研究能够成为一个有价值的里程碑,以扩展当前的 VFI 任务,使其适用于更多最近那些具有 HR 视频的现实世界应用。

【视频插帧】XVFI: eXtreme Video Frame Interpolation相关推荐

  1. 【无标题】XVFI: eXtreme Video Frame Interpolation (ICCV oral)

    XVFI: eXtreme Video Frame Interpolation (ICCV oral) 这篇文章做了什么? 出发点 贡献点 XVFI 模型 BiOF-I BiOF-T 这篇文章做了什么 ...

  2. 视频插帧(Video Frame interpolation)论文及源码

    视频插帧论文列表(含Code) 蓝色突出表示热门方法 CCF A AAAI 2019 CyclicGen:Deep Video Frame Interpolation Using Cyclic Fra ...

  3. 视频插帧--Video Frame Interpolation via Adaptive Convolution

    Video Frame Interpolation via Adaptive Convolution CVPR2017 http://web.cecs.pdx.edu/~fliu/project/ad ...

  4. 详解插帧算法DAIN论文和代码(Depth-Aware Video Frame Interpolation)

    Project : https://sites.google.com/view/wenbobao/dain Paper: https://arxiv.org/abs/1904.00830 Code: ...

  5. 论文阅读笔记(1)Beyond Natural Motion: Exploring Discontinuity for Video Frame Interpolation——超越自然运动: 探索视频帧

    论文:Beyond Natural Motion: Exploring Discontinuity for Video Frame Interpolation 会议:2022CVPR February ...

  6. 视频插值--Video Frame Interpolation via Adaptive Separable Convolution

    Video Frame Interpolation via Adaptive Separable Convolution ICCV2017 https://github.com/sniklaus/py ...

  7. 丝滑!CVPR 2021 视频插帧论文+开源代码汇总

    点击上方"AI算法与图像处理",选择加"星标"或"置顶"重磅干货,第一时间送达 从事算法岗经常需要查看最新的研究成果,希望从中能借鉴一些别人 ...

  8. 2019-CVPR-上交-(DAIN)Depth-Aware Video Frame Interpolation

    可以把30fps的进一步插帧到480fps(16倍插帧) 英伟达的Super SloMo只用在了真实拍摄的视频上,而这项研究却可以扩展到常见的任何类型视频:电影.定格动画. 动画卡通等等. DAIN的 ...

  9. 视频插帧—学习笔记(算法+配置+云服务+Google-Colab)

    恰好碰到同学项目需要,了解了一下关于利用深度学习视频插帧的相关知识,在这里做一个简单的记录. 目录 一.方法+论文 1.DAIN (Depth-Aware Video Frame Interpolat ...

  10. CVPR2019|Depth-Aware Video Frame Interpolation【论文阅读笔记】

    CVPR2019|Depth-Aware Video Frame Interpolation[论文阅读笔记] 作者 相关链接 1.前言 2.介绍 3.算法 4.实验 作者 Wenbo Bao, Wei ...

最新文章

  1. [PHP] Phalcon操作示范
  2. 数据分析显示,疫情下数据科学家的薪水几乎未受影响
  3. sudo apt-get update
  4. 开发人员不得不知的MySQL索引和查询优化
  5. django-admin
  6. Pr常见问题,如何找回不小心删除的视频音频
  7. Oracle项目管理系统之供应商筛选及资格预审
  8. Visio自定义连接线,连接点位置
  9. 有关不平衡学习与SMOTE算法
  10. pdf照片显示正常打印时被翻转_2020年二级建造师执业资格考试打印准考证的10点注意事项!...
  11. c语言switch问候语,C语言switch语句用法详解
  12. Arduino ESP8266利用AJAX局部动态更新网页内容
  13. 刘强东都想明白了,你们却还在讨论流量焦虑
  14. 虚拟机怎么架设dns服务器,虚拟机centos7 DNS服务器搭建
  15. Python蓝桥杯练习16——芯片测试
  16. POE 供电设备原理详解
  17. 浙江大学计算机科学博士生导师名单,浙江大学计算机科学技术学院博士研究生导师简介:孙建伶...
  18. 聊天机器人 2020
  19. Net-Worm.Win32.Kido.ih蠕虫病毒分析+专杀工具源代码+手工清除全过程
  20. 【我的Android进阶之旅】Android自定义View来实现解析lrc歌词并同步滚动、上下拖动、缩放歌词、卡拉OK高亮的功能

热门文章

  1. ts错误:由于函数不具有返回类型批注并且在它的一个返回表达式中得到直接或间接引用,因此它隐式具有返回类型 “any“。
  2. python算法之罗马数字转换阿拉伯数字
  3. hhkb mac设置_HHKB 键盘 使用攻略 Karabiner
  4. 学生个人网页设计作品 学生个人网页模板 简单个人主页成品 个人网页制作 HTML学生个人网站作业设计
  5. 【学习笔记】认识张量
  6. 如何使用移动硬盘安装系统?
  7. 视频文件加密的方法浅析
  8. API 库的文档体系支持:主流编程语言的文档设计
  9. linux指定网卡走流量,Linux实时输出指定网卡流量
  10. 使用bat脚本创建快捷方式