FLAVR: Flow-Agnostic Video Representations for Fast Frame Interpolation
CVPR 2021
原文地址:https://arxiv.org/abs/2012.08512
术语
occlusion 遮蔽
K 插值系数, kx-video frame interpolation表示在两个原始帧之间产生 (k-1)个中间帧
评价指标
PSNR (Peak Signal-to-Noise Ratio) 峰值信噪比
SSIM (Structural SIMilarity) 结构相似性
1 介绍
先前的大多插帧方法使用预训练的流预测网络来估计光流映射(optical flow maps),可能附带额外的单眼深度映射和遮罩信息。这些基于光流的方法会面临计算成本大,无法应对复杂运动,表示方法不够灵活的问题。本文方法旨在达到视觉质量与预测速度的平衡,同时解决上述问题。
本文提出的模型不需要使用外部的流和深度图,仅依赖于RGB图。
能在前向传递中实现端到端的多帧预测。通过大规模的视频数据学习,解决复杂的运动和遮蔽问题,相比于之前的方法大大提高了预测速度,使部署更为便利。
2 相关工作
视频插帧
视频插帧是一个传统的计算机视觉问题,近期主要有三种方式,基于相位(phase based),基于核心(kernel based),和基于流(flow based),其中基于流是最成功的的方法。
基于流的方法的关键是使用一个流预测网络(flow prediction network),比如PWC—Net,来计算输入帧之间的双向光流,以此来指导帧合成以及预测遮罩层或单眼深度图。虽然能生成真是的中间帧,但是它们的性能被潜在流估计的真确率限制,在复杂的遮罩中会产生明显的噪声。它们还假设帧之间是一致的线性运动,这对于真实的视频来说远不是很理想。最重要的是,流预测和随后的warping使帧预测变得缓慢,从而不能进行快速插值。
最近的工作以增加模型复杂性和推理时间为代价,使用二次扭曲(quadratic warping)放松了线性运动假设。CAIN使用信道注意力作为内插帧的适当成分,但未能明确捕获输入帧之间复杂的时空相关性。
此外,许多最近的方法仅针对单帧插值[19,57,63]。在这项工作中,我们通过设计一种端到端架构来解决所有这些问题,该架构通过学习3D时空卷积来推理运动轨迹和属性,同时同时优化输出质量和推断时间,从而直接预测给定视频中的任意数量的中间帧。
时空滤波(Spatio-temporal Filtering)
3D space-time convolutions 三维时空卷积
三维时空卷积在捕捉复杂的时空依赖上很成功,它通常被用再视频理解的任务中,像是动作识别,动作检测,标字幕等。我们探讨了3D卷积在时间帧插值问题中的应用,该问题需要对输入之间的复杂时间约束进行建模,以生成准确和清晰的预测
视频自监督表示学习
Video Self-Supervised Representation Learning
自监督学习处理在人工前置任务(代理任务)上训练未标记的视频[10],以提取语义表示,这对于稀疏标记的下游任务有前置帮助。视频以时间一致性和帧顺序的形式包含丰富的信息源,先前的工作利用这些线索来构建代理任务,如预测帧顺序[12、28、40、69、73]、跨时间的响应[22、67]或对比预测编码。与这些方法相比,我们探索使用视频帧插值作为低级和高级下游任务(如动作识别和光流)的统一代理任务。
方法架构
本文提出的框架是为了实现一次性的多帧预测,不需要多次推断。因为训练和产生长视频超出了现有的硬件能力,本文也提出了一个简单的样本处理方法。
FLAVR是一个3D U-Net,通过拓展2D U-net,替换在编解码器中的所有的2D卷积为3D卷积得到,这样能够更准确地对输入帧之间的时间动态建模,获得更好的插值质量。
每个3D fifilter is a 5-dimensional fifilter of size c i ∗ c o ∗ t ∗ h ∗ w c_i*c_o*t*h*w ci∗co∗t∗h∗w,其中t是时间大小(temporal size), c i 和 c o c_i和c_o ci和co是输入和输出的通道数。
使用 ResNet-3D(R3D)作为我们的基础骨架,它有18层。我们移除了R3D-18最后的classification layer,得到5个conv blocks从conv1到conv5,每个由3D卷积层和一个skip connection。
我们也移除了所有的时间步长(temporal striding),因为下采样操作像是striding和pooling会移除一些对于生成锐利图像的关键细节。
我们在conv1, conv3和conv4块中使用值为2的空间步长(spatial stride),来保持计算的可管理性。
解码器从深层潜在表示中构建输出帧。
使用3D transpose convolution layers进行上采样。在3DTransConv layer后添加了一个3DConv layer来解决常见的 observed checkerboard artefacts。我们也包含了 skip connections来直接结合编码器特征和对应的解码器,以此来融合和低层和高层的的必要信息,产生准确、锐利的插值。
解码器的输出是一个3D特征图,被传入一个由2D conv实现的时间融合层,在其中时间维度的特征图在通道上进行连接,融合层一个2D空间特征图。这有助于合计和融合在多帧中出现的为了实现预测的信息。
最终,这个输出通过一个 7×7的 2D 卷积核,它预测出大小是H×W×3(k−1)的输出,再沿着通道维度分解成 (k-1)个输出帧。
使用了Feature gating来作为一种自注意力机制。在该架构中我们在每一个层后面都加上了Feature gating。
架构概览
采样处理
讨论
不足点:
对于每个不同的插值系数k需要重新训练,
作为一个端到端和数据驱动的方法,FLAVR与其他基于深度学习的方法一样,对于训练集之外的数据,泛化能力是有限的。
U-Net
参考博客:
https://blog.csdn.net/qq_33924470/article/details/106891015
光流简介
光流的概念是Gibson在1950年首先提出来的。它是空间运动物体在观察成像平面上的像素运动的瞬时速度,是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。一般而言,光流是由于场景中前景目标本身的移动、相机的运动,或者两者的共同运动所产生的。其计算方法可以分为三类:
(1)基于区域或者基于特征的匹配方法;
(2)基于频域的方法;
(3)基于梯度的方法;
简单来说,光流是空间运动物体在观测成像平面上的像素运动的“瞬时速度”。光流的研究是利用图像序列中的像素强度数据的时域变化和相关性来确定各自像素位置的“运动”。研究光流场的目的就是为了从图片序列中近似得到不能直接得到的运动场。
光流法的前提假设:
(1)相邻帧之间的亮度恒定;
(2)相邻视频帧的取帧时间连续,或者,相邻帧之间物体的运动比较“微小”;
参考原文链接:
https://blog.csdn.net/qq_27789527/article/details/50393442
得到不能直接得到的运动场。
光流法的前提假设:
(1)相邻帧之间的亮度恒定;
(2)相邻视频帧的取帧时间连续,或者,相邻帧之间物体的运动比较“微小”;
参考原文链接:
https://blog.csdn.net/qq_27789527/article/details/50393442