0. 前言
1. 要解决什么问题
- 预测视频中移动物体的速度。
- 在现实世界中,一个人很容易就能分辨出视频是在快进还是普通速度还是慢放,因为我们都有一些先验知识,即稳重提到的 typical dynamics and natural rate of motion。
- 预测的是一个相对速度(正常速度播放还是快进还是慢放),而不是绝对速度。
- 这比"直接预测视频的回放速度"更好,因为:我们的根本目标是视频中的动作是否是自然的;这更符合人的习惯。
- SpeedNet 期望解决问题:
- 从一个FPS为L的视频中提取L帧图片作为输入,我们判断这L帧图片相当于真实世界中1s还是2s,即normal speed还是sped up。
2. 用了什么方法
- motivation(为什么要研究)
- 是否有可能训练一个模型来判断物体移动是 normal speed of sped up,这类模型能够学到怎样的特征。
- 这类模型有什么样的应用。
- 预测的 speediness 与 motion magnitude 有较大区别。
- motion magnitude 我猜测意思就是每一帧的pixels变化。这个性能指标意义不是很大,如下图的例子中,一个人按普通速度行走,距离摄像头远则 motion magnitude 小,距离摄像头近则 motion magnitude 大。
- 是不是光流的意思?说来惭愧,光流的没仔细查过。
- 训练细节:
- 用了 self-supervised 的方法训练,即不需要提供额外标签。(但又不完全是无监督学习)
- 训练参数构建:
- 使用二分类训练,包括normal速度(即1x)以及sped up速度(即2x)
- Spatial augmentations:输入图片的尺寸不固定,在
[64, 336]
之间随机选择。 - Temporal augmentations:即normal/sped up数据不是固定的sample rate。
- 假设sample rate为f,则每一帧的skip rate为
1-1/f
。 - normal的f取值范围为
[1, 1.2]
- sped up的f取值范围是
[1.7, 2.2]
- 假设sample rate为f,则每一帧的skip rate为
- Same-batch training:每次取3T的视频帧,分别构建一个normal样本和一个sped up样本。
- 之前也有方法可以用模型来得到视频的速度,但效果很差,猜测原因是存在 artificial cues。
- SpeedNet 整体结构
- 使用了 S3D-G 结构,主要修改在于 temporal 纬度的 maxpooling 均为一。
- 最后在spatial 和 temporal 纬度进行 global avg,得到1024维的特征。
- Adaptive video speedup
- 大概意思就是,根据speednet的结果自动调整视频的speed。
- 作用:自动调整速度, 看一个视频中的内容,无用的地方直接跳过,有用的地方慢点播放。
- 得到的 spatio-temporal features 的作用:
- 作为其他任务训练的 pre-trained weights,替代 kinetics 预训练权重或随机初始化权重。
- 用于视频检索。
3. 效果如何
- SpeedNet 的训练结果
- 即在 Kinetics 上训练,在NFS上预测,效果最好的就是三个都有的情况。
- 三个方法就是在训练细节中提到的 spatial augmentations/temporal augmentations/same-batch training。
- 对不同速率的视频通过speednet计算
- 让别人看看,adaptive video speedup 前后的视频哪个更好(就是人来判断,更喜欢哪个)
- 迁移学习的结果
- 在 self-supervised 特征中性能最好(即中间这些),但是比kinetics和imagenet都差一些。
4. 还存在什么问题&有什么可以借鉴
-
这个 speediness 的概念比较模糊。
-
与oops哪个工作非常类似,切入点不一样,内容感觉差不多。