SpeedNet: Learning the Speediness in Videos

Abstract

用于预测视频中物体运动的速度—移动快或慢

以一种无监督的方式训练

证明了模型学会了一种强大的,具有意义的空间-时间表示,可以用于提升无监督动作识别,以及用于视频retrieval(检索;修复)。

可以用于加速视频的播放,减少抖动,不自然的动作。

 

Introduction

       一个模型要学会预测视频是否发生加速,它学习到的究竟是什么;它究竟能在学习这个概念上表现的多好,究竟能学到多少物体运动的先验知识。

       这种模型一旦得到,可以用于支撑下游的许多有意义的应用

       训练部分是难点,我们希望寻求一种语义方式,而非人工的表示,学习并理解速度,通过检测真正的运动,而不是依赖加速视频的生成方法的人工痕迹。

       训练的另一个难点是模型需要超越平凡的使用动作幅度作为检测器的模型。只依赖运动物体的速度和只使用运动幅度都可以区分加速和非加速。我们在5.1节解决了光流的速度预测能力,同时说明了SpeedNet清楚预测的优势(与一般的基于流的方法相比)。但速度和运动幅度的关系对我们来说确实是一个挑战,尤其是极端的相机或物体运动。

       在一系列的复杂视频上验证模型的能力,包括舞蹈视频和运动视频。

       SpeedNet可以用于无监督动作识别和视频的retrieval。在多个benchmark上表现SOTA。

 

SpeedNet

       方法的核心是SpeedNet,一个深度神经网络。在正常速度和两倍速上训练。输入L帧,给出结果(常速or加速)

       值得注意的是2x播放的视频,通常不总包括不寻常的运动。例如慢走快放后看起来也十分正常,或镜头中没有物体运动时,慢放快放结果相同。因此我们也不期望我们的模型是完美的,可以正确区分它们。并且网络的这种特性可以用于下游应用优雅地生成加速视频。

       在不同速度播放的视频上说明我们是如何使用这种模型预测物体的速度的。没有将其作为回归模型处理,因为这是不必要的(人也不会)并且难度更大。

 

.1数据,监督,避免人工提示

       模型使用非监督学习,不需要人工标注。训练集和测试集都由同一个视频的两个版本构成:加速版和常速版。其中加速版是在时序上下采样得到的。

       之前的算法都存在人工提示的问题,我们采用如下方法用于避免模型采用人工提示:

空间增强(spatial augment)网络是全卷积的,因此对输入大小没有要求。在输入时,将输入数据随机resize到64-366之间,在resize的过程中产生的blurring可以弱化视频中潜在的抖动。在卷积后,连入最大池化层,因为输入不同,因此结果也不同,这将迫使网络不再依赖空间尺度给出的提示(如运动幅度等)。

时间增强(temporary augment)为了引入不同速度的视频,在视频上进行采样。具体的,设定f,常速时f取1-1.2,挑帧每1-1/f,当加速时,取f在1.7-2.2之间,保证多样性。然后再剩余的帧中选T帧作为一个样例。

相同批训练(same batch training)我们在每次训练的batch中,同时包含了加速视频和常速视频。我们发现这种方法可以极大减弱模型对人工痕迹的依赖,我们在其他无监督任务中也发现这种方法是重要的。

.2SpeedNet网络结构


       网络结构图,首先经过base network,输入为TxNxN,输出为TxN/32xN/32x1024。Base network采用S3D-G结构(SOTA动作识别模型)。区别1)在时间维度上的stride被设置为1;2)在空间上使用了max pooling,在时间上使用了average pooling,对比原模型只使用了average pooling。

       在base network之后,我们将时间维度和空间维度压缩到单一channel。直观地,我们希望预测是根据最主要的空间移动物体,而对于时间,我们希望考虑整个视频而非某个凸起。因此在空间上使用了max pooling,在时间上使用了average pooling。结果是1024维,再使用1x1卷积得到最终的logit。使用binary cross entropy loss训练。

 

Adaptive video speedup

       使用模型对测试视频v加速。只要网络认为结果没有加速就可以进一步继续加速。

.1From predictions to speedup scores

       首先给出一个视频v,根据指数因子Xiik=0下采样得到一系列视频v0,v1,……vk,其中v0=v。在实验中,我们使用X=1.25,k=10。将每个视频按照窗口输入的方式输入到网络中(也即每次输入T帧,每次向前移动一步),将得出的结果复制给中间位置对应的帧中。然后每个视频就可以得到一串结果Pvit对应整个v的结果(实际应该有L-T/2个结果,假定视频共L帧)。当Pvit≈1表示为常速视频,当Pvit≈0表示为加速视频。(自己根据理解画的图)


       得到的集合Pvi首先使用线性插值,补充长度到和Pv0相同的长度。然后使用一个阈值对加速和非加速进行分类,用Pv表示。每个向量乘对应的指数因子Xi得到集合vit,然后按照对应的timestep做max pooling,得到一个向量Vt,保证即便是取得的最大值仍能够被分类为非加速。这样就保证了整个视频看起来仍是自然的。

.2Optimizing for adaptive speedup

       主要想法是根据视频内容,非统一的改变视频的播放速度。受可变比特率编码(VBR)启发,数据分片的局部带宽根据复杂程度的不同而不同。这里,希望可以加速那些较为平滑缓慢的运动,而不会让视频看起来不自然。

       如何选择阈值ρ?如何保证实现的最终的加速是形变最小的?测试了9个阈值{0.1,0.2,…,0.9},然后选择了最优的。

       给定一个每帧加速向量V(t),如上述,目标是估计一个平缓的变化加速曲线S(t),满足用于给定的目标加速比。该过程的想法是对于发生较小运动的分片的加速分数会比较高,意味着人类不容易在这些分片中观察到播放速度的不同。我们将其建模为

argminSEspeedS,VErateS,R0Esmooth(S')

其中Espeed用于鼓励根据加速分数V加速,Erate用于限制视频的整体加速比R0Esmooth是平滑正则项,S'S的第一个衍生项。

       图5是一个例子,红色用于表示对应的1-加速分数,也即不怎么动的分数低,动的大的分数高,蓝色对应加速比。

 

Experiments

       实验使用Kinetics数据集,包含246K训练视频和50K测试视频,25fps。使用无监督训练。同时使用Need for Speed dataset作为测试集,包含100个视频,240fps(共380K帧)。数据集中包含了多种不同的物体运动,如运动的球等。用于评估模型的泛化能力。

      

.1 SpeedNet performance

       在Kinetics和NFS数据集上做测试。NSF统一加速10x或20x以给出有效的帧率24fps(常速)和12fps(sped-up)。Kinectics25fps。使用1x或2x加速。微小的帧速变化对评价模型在与训练集不同的帧速上是重要的。在测试时,我们将帧resize到224x224,center crop。

       在表1中展示了不同数据增强结合训练后的表现。结论,当没有使用数据增强时,模型将依赖人工提示,这将导致很大的错误率。在Kinetics和NFS上的准确率的微小差异表现了模型的良好的泛化能力。

 

.1.1 Prediction Curves

       图4给出了常速和加速播放同一段视频的推断。1x结果由蓝色线给出,2x结果由红色线给出。越微小的运动值越低。结论……

 

.1.2 Comparison to optical flow

       我们考虑训练一个baseline,输入是每帧的平均光流大小。也即每个视频段的大小为T的向量。使用两个全连接层,ReLU激活单元和batch normalization。准确率只有55%,主要是由于均值光流与物体和相机的距离相关。我们的模型是有绝对优势的,但对极端的相机距离和剧烈运动无法识别,我们认为这是由于数据集中没有足够多的类似数据。

 

.2 Generalization to arbitrary speediness rates任意速度泛化

       在网络上下载各种视频,包括复杂动作,可以对视频的播放速度进行判断。尽管模型在常速和2x速上训练,但也可用于判断慢速视频,当模型认为输入视频的加速版本是常速时,该视频为慢速。

 

.3 自适应加速real-world 视频

       为了评估自适应加速与统一加速。找到具有不同运动速度的视频,分别对其进行自适应加速和统一加速,选取5段,使用用户研究得出客观表现结论。

       在30个人上进行了测试,得出的结果是我们生成的视频具有明显优势。

 

.4 SpeedNet for self-supervised tasks

       解决速度问题要求很高的自然运动推理能力,以及了解低级一些的运动提示。由于我们的模型是无监督的,我们在一些预训练的动作识别和视频retrieval任务上评估它的内在表达能力。

.4.1 action recognition

       使用自监督预训练初始化动作识别模型是一个有效的方式用于评估模型通过自学习任务学到的内在表示。

       对小数据集的动作识别而言(如UCF和HMDB51),预训练是非常重要的,因为具备泛化能力的网络可以很容易地在训练集上过拟合。

       预训练的SpeedNet模型在UCF101和HMDB51上微调后,可以显著提升动作识别的准确率,这表示速度任务可以给出非常有用的泛化的内在表示。

       即便是在最差的网络上进行预训练,也可以对识别有非常显著的提升。

 

.4.2 Nearest neighbor retrieval最近邻检索

       另一种可以评价SpeedNet学习到的表示能力的方法是从模型中出抽取的视频段的embedding,并在embedding 空间下搜索最近邻。具体的,随机给定一个任意空间维度和时间维度的视频,分别在空间和时间维度上使用最大池化和平均池化,得到1024D的特征表示。本实验说明了抽取的特征压缩了运动模式,可以方便的检索其他具有类似行为的视频段。

       在本实验中,我们从给定的视频中抽取16帧,并试图从相同的视频中(更长)或不同的视频中检索相同的视频段。对于前者,我们首先从SpeedNet中抽取查询的特征向量,然后计算目标视频的特征向量以滑动窗口的方式。随后,计算余弦相似度。对后者,查询视频是从UCF101测试集中抽取的,查询则在训练集中进行,也是用余弦相似度。

       结论,SpeedNet主要关注对象行为的类型和速度,因此可能不总是属于同一个类的视频。但是为了得出结论,我们进行了另一个实验,计算召回率。经过比较只比【40】的结果稍差一点。

 

.5 Visualizing salient space-time regions可视化静态空间-时间域

       为了可以更好的理解空间-时间域对判断的贡献,使用了Class-Activation Map(CAM)技术可视化最后一个3D层,在最大池化-平均池化之前。具体的,我们抽取了TxNxNx1024特征向量,T表示时间维度,N表示空间维度。首先使用W(前面提到的1x1)处理特征向量得到TxNxN,然后去激活层的绝对值并将其归一化到0,1之间。

       结论,模型可以选出静态的运动者即便是在剧烈运动的相机条件下。

       另一个实验来自Memory Eleven,只有部分内容是慢速播放的,其余内容是常速播放的。模型可以准确将这两部分内容区分开来。

 

6结论

       我们的工作在于研究一种可以学习速度的机制,模型是否可以判断出视频是否加速播放了。因此,提出了SpeedNet,一种自监督模型。我们说明模型可以很好的学习到高维物体运动优势,比幅度更为复杂。并且在几个任务上说明了模型的有效性:自适应加速视频;无监督预训练用于动作识别;用于视频段检索的特征提取。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值