具有可变帧速率的训练网络?

数据挖掘 深度学习 时间序列 美国有线电视新闻网
2021-09-24 21:53:21

我想训练一个时间网络,但可用的视频数据具有不同的帧速率(例如 7、12、15、30)。我应该如何训练这个网络,而不对更高帧速率的视频进行下采样。

我尝试对所有内容进行上采样,但是会生成一些伪像。

什么是合适的方法?

1个回答

我不相信有一种众所周知的方法来处理这个问题。

简单的预处理

虽然我没有对图像/视频进行此操作,但我从一般时间序列分析中知道,您基本上必须对较低频率进行插值,或者您需要对较高频率进行下采样。如果你想,还有什么可做的……?

建模解决方案

Nvidia 发布了一篇研究论文并附有一段视频,展示了他们如何训练模型,该模型可以估计帧之间的帧- 有效地插值视频并提高其帧速率。这基本上相当于帧之间的插值,并允许您放大低频视频以匹配高频视频。论文名为:

Super SloMo:用于视频插值的多个中间帧的高质量估计

...听起来像是值得一读的东西。

有一些较旧的算法试图做同样的事情(例如“twixtor”),但我读到它们在旋转物体等问题上存在问题。要记住的另一件事是通常的 GIGO:垃圾进垃圾出。Nvidia 视频中仍然存在一些插值伪影,但这可能来自训练期间使用的模糊输入图像,例如对象移动的速度超过了记录帧速率可以处理的速度。

他们似乎训练了两个模型:第一个模型对帧之间的光流进行编码,第二个模型使用它以及基础图像来执行插值。请阅读论文以获取更多详细信息。它还概述了他们如何训练模型(学习率、时期数、增强步骤等)。

这是他们的流量计算/插值模型的草图:

在此处输入图像描述

我们可以看到它是一个类似于编码器/解码器的模型,在再次上采样之前引入了一个浓缩信息的瓶颈。这是基于U-net 模型架构:一个编码器/解码器,它还引入了不同尺度层之间的跳跃连接。