《Qua Vadis, Action Recognition? A New Model and the Kinetics Dataset》论文解读之Two-Stream I3D

本文是CVPR 2017的一篇文章

Paper:Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset

github: kenetics-i3d

 

  • 在一个规模更大的新video数据集Kinetics上,重新评估了当下state-of-the-art的模型结构,并和在小数据集上训练的结构进行比较
  • 提出一个新模型I3D,在Kinetics上预训练后,在HMDB-51数据集上取得了80.2%的准确率,在UCF-101上取得了97.9%的准确率

图片来自电影'Quo Vadis'(拉丁语, 何去何从)(1951)。

在发生什么? 这些演员正要亲吻对方,还是已经这样做了?

《你往何处去?Quo Vadis?》, 这部完成于一八九六年的著作,史诗般的重现了使徒时期罗马皇帝尼禄残害基督徒,基督教经过殉道后而兴起的历史。大师显克维奇也因此书在历史小说中的卓越贡献,1905年力挫大文豪托尔斯泰获得诺贝尔文学奖。

 

本文的idea*

  • 根据之前3D-ConvNets的缺点(1. 参数多;2. 无法利用在ImageNet上预训练过的2D网络),提出一种benefit from ImageNet 2D ConvNet design and their learned parameters的方法,并探究了在时间维度上的感受野要如何设置
  • 吸收了之前state-of-the-art的模型,把双流的思想加到3D-ConvNet当中来,取得优异的效果(作者认为既然现在有了大数据集,那么3D ConvNet原先因为参数多而难训练的缺陷可以被大幅度改进。因此作者使用了3D ConvNet,同时双流这个思想还是很有用,因此这个新模型使用双流+3D ConvNet)
  • 验证了视频模型的迁移学习同样有效,即在Kinetics上进行预训练能够提升模型效果

 

Abstract

  • 在一个规模更大的新video数据集Kinetics Human Action Video dataset(包含大量数据,有400个动作分类,每个分类有超过400个实例,来源于YouTube,更有挑战性)上,重新评估了当下state-of-the-art的模型结构,并在该数据集上预训练后查看在小数据集上训练的结果提升
  • 提出一个新的模型Two-Stream Inflated 3D ConvNet (I3D)。该模型在Kinetics上预训练后,在HMDB-51数据集上取得了80.2%的准确率,在UCF-101上取得了97.9%的准确率

Introduction

  • 有大量成功的事实证明:在ImageNet上训练过的架构可以有效地用在其他地方(即迁移学习)。但在视频领域,不知道是否在一个量较大的数据集上进行训练也可以有助于提升性能
  • 本篇论文就是基于这个目的,重新实现了各种代表性的模型,并发现在大数据集上进行预训练确实能够提升性能,但提升幅度取决于具体模型类型
  • 基于上述发现,提出一个新模型I3D,能够充分发挥预训练的效果。它是基于当下最先进的图像分类模型,但把其中的卷积核以及pooling核都扩张成3D的形式
  • 一个基于Inception v1的I3D模型效果远超之前最好的方法
  • 本文没有把传统方法一起纳入比较,如bag-of-visual-words

 

Action Classification Architectures

  • 目前针对于video的模型架构还不明确,主要集中于以下几个问题

    卷积核是2D还是3D
    输入网络的是原始RGB视频还是预计算得到的光流
    对于2D的ConvNets来说,不同帧之间的信息是使用LSTM还是feature aggregation

  • 比较的范围有三类对象

    2D ConvNets with LSTM on top
    Two-stream networks
    3D ConvNets

  • 下列是本文重新实现的5种代表性模型结构

  • 之前由于缺乏数据,所使用的3D ConvNets模型都比较浅,最多只有8层。本文使用了如VGG、Inception等非常的网络,并导入这些预训练网络的参数(除了C3D,因为没法导入,卷积核之类的都少一维),将这些网络扩展成时空特征描述子。同时,作者发现,这样的情况下,双流(two-stream)依然有用

  • 本文使用的CNN结构是Inception v1加上BN

ConvNet + LSTM

  • 由于图像分类网络效果特别好,因此人们总想尽可能原封不动地把模型应用到视频上,如Karpathy做的那篇early/late/slow fusion的文章,但这样就会导致模型忽视了时序结构(如不能分辨开门与关门)
  • 因此,可以在模型后面加上LSTM来处理时序问题
  • 模型细节:把LSTM和BN加在Inception v1的最后一个average pooling层后面(即分类器之前),有512个节点。在模型最顶部加一个全连接层用于分类;The model is trained using cross-entropy losses on the outputs at all time steps. During testing we consider only the output on the last frame;输入帧是在25帧/s的视频流中每5帧取1帧,根据表1给出的信息,作者应该是从数据集的video中选取了5s的视频片段,所以总共是5s * 25帧/s * 1/5 = 25张rgb图像

3D ConvNet

  • 3D ConvNet看上去是一种很自然的方法,能够直接对于时空数据创建高层表征
  • 但这个模型有两个问题:

    相比于2D,参数更多,也就更难训练(因为数据量不足),所以之前3D ConvNet用的都是浅层的架构
    由于都是三维的核,无法直接用在ImageNet上预训练过的网络,因此只能在video数据集上train from scratch。由于之前的数据集量都太小,因此效果不是太有竞争力。但这种方法可能会比较适用于大数据集

  • 模型细节:是原论文中C3D的变种。8层卷积、5层pooling、2层全连接。与C3D的区别在于这里的卷积和全连接层后面加BN;且在第一个pooling层使用stride=2,这样使得batch_size可以更大。输入是16帧,每帧112*112。

Two-Stream Networks

  • LSTM缺点:能model高层变化却不能捕捉低层运动(因为在低层,每个帧都是独立地被CNN提取特征),有些低层运动可能是重要的;训练很昂贵
  • Two-Stream Networks: 将单独的一张RGB图片和一叠计算得到的光流帧分别送入在ImageNet上预训练的ConvNet中,再把两个通道的score取平均

    这种方法在现在的数据集上效果很好
    训练和测试都十分经济

  • 一个改进(Fused Two-Stream): 在最后一层卷积层之后,使用3D ConvNet把空间流和时间流融合(相比于传统双流是在softmax后才做fusion,把softmax输出的score进行平均)

    在HMDB数据集上提升了效果,测试时间也更短

  • 模型细节:输入是每隔10帧取连续的5帧以及相应的光流。在Inception v1之后,是一个3*3*3的3D卷积层,输出是512个channel,随后是一个3*3*3的3D max-pooling层以及全连接层。这个新的网络是用高斯随机初始化

  • 对于双流网络有两种实现,一种实现是训练时把两个流分开训练,测试的时候在最后把两个流的预测结果做平均;第二种是直接端到端进行训练。在c)和d)的实现中使用的是端到端;而在e)的实现中使用了第一种实现

New*: Two-Stream Inflated 3D ConvNets

  • 结论:3D ConvNets可以受益于在ImageNet上训练过的2D ConvNet模型,并有选择性的使用相应的预训练参数;虽然3D ConvNets可以直接从RGB流中学习到时序信息,但是使用光流还是可以提升效率
  • 区别于之前的几种双流,光流数是RGB帧数的2L倍,这里光流和RGB帧都使用了64帧

Inflating 2D ConvNets into 3D

  • 把一些很成功的2D模型转移成3D,通过把所有卷积核以及pooling核增加时间的一维

Bootstrapping 3D filters from 2D filters

  • 想要利用在ImageNet上预训练好的2D模型的参数:
  • Idea*: 若是把ImageNet中的同一张图片反复复制生成一个序列,那么这个序列就可以当作是一个video来训练3D模型了

    具体实现:把2D模型中的核参数在时间维上不断复制,形成3D核的参数,同时除以N,保证输出和2D上一样;别的非线性层结构都与原来的2D模型一样

Pacing receptive field growth in space, time and network depth (在时间维度上的感受野要如何变化,即conv和pooling的stride怎么选)

  • 在Image模型中,对待水平和垂直两个空间维度往往是一致的,也就是两个维度上pooling核大小以及stride都一样
  • 在时间维度上这样的对称对待未必是最优的(也就是时间维度上的pooling核大小选与空间上的一致是不可取的),因为这取决于帧率和图像大小之间的相对值
  • 具体实现:在Inception v1中,涉及到感受野变化的就是第一个卷积核(stride=2)以及后续4个max-pooling(stride=2),还有最后的一个7*7的average-pooling层。在本文的实验中,作者发现:在前两个max-pooling层上,时间维度上的stride取1;而在别的max-pooling层上使用对称的stride(即时间维度上的stride和空间上的一致);最后的average pooling使用2*7*7的核

Two 3D Streams

  • 作者发现双流还是有价值的,可能因为3D ConvNet只有纯前馈计算,而光流提供了迭代的思想在里面
  • 训练时,分别训练这两个网络,测试的时候在最后把两个流的预测结果做平均

Implementation Details

  • 见原文
  • 注:在训练时都是从原始video采样的,而test的时候是把全部的帧都送入网络。实现细节也可以看代码

The Kinetics Human Action Video Dataset

Experimental Comparison of Architectures (模型本身的比较)

  • 在UCF-101和HMDB-51上,I3D取得的效果也要好于之前的。这十分有趣,因为UCF-101和HMDB-51数据集本身比较小,而I3D模型参数非常多,按道理来说训练效果应该不会太好。这说明在ImageNet上预训练的效果可以扩展到3D
  • 在UCF-101上效果最好,miniKinetics次之,HMDB-51最差,这和数据本身的难度、数据量大小都有关系
  • LSTM和3D-ConvNet在miniKinetics上表现的更有竞争力,这是因为这两种方法对数据量的需求比较大
  • 在miniKinetics上,光流要比RGB流效果差,而在其他两个数据集上则相反,这是由于miniKinetics数据集本身有许多相机抖动
  • 相比于其他模型,I3D模型似乎从光流中获益最大,这有可能是因为I3D的时间长度更大(有64帧)

Experimental Evaluation of Features (用在迁移学习中,即把各种模型先在Kinetics数据集上做预训练,预训练得到的网络作为特征提取器,再去别的数据集上训练与测试)

  • 固定预训练的参数,在新数据集上只重新训练一个分类器
  • 整个网络在新数据集上fine-tuning

    固定预训练的参数,在新数据集上只重新训练一个分类器的做法在I3D和3D ConvNet上也有不少提升,但在其他几种方法上几乎没有变化
    整个网络在新数据集上fine-tuning的结果都得到大幅提升,尤其是I3D和3D ConvNet
    迁移学习对于I3D影响最大,这也可能是因为I3D的时间长度更大,在大数据集上预训练就可以学到更好的时间结构
    而迁移学习对于没有使用3D ConvNet结构的影响不大,这可能是因为那些方法的输入都是离散的帧而不是连续的帧,而那些2D方法都用了ImageNet预训练的参数,这些独立的帧其实更像是image而不是video,所以已经在image的数据集上预训练过的结构在video的大数据上进一步pre-train不一定有明显提升

 

实验与结论

4.1 单一数据集

作者最后对比了前述5个模型在不同数据集上进行训练和测试的结果。

 

上图中展示了只利用UCF-101,HMDB-51和Kinetics其中一个数据集进行训练和测试的结果。从中我们可以得出以下结论:

1、I3D模型在所有数据集上都比其他模型更好,不管是RGB流,光流或者RGB流+光流的版本。这个结论很有意思,因为I3D模型有大量的参数,而UCF-101和HMDB-51的数据量都比较小。这说明了利用ImageNet预训练得到的参数可以扩展应用到3D卷积网络中。

2、UCF-101数据集上所有模型的表现都优于Kinetics,这说明两个数据集难度不同。而Kinetics数据集上所有模型的表现又基本上都优于HMDB-51,这一方面是由于HMDB-51数据量比较小,另一方面是因为HMDB-51刻意增加了难度,例如在相同的场景中“拔剑”被标记为“击剑”和“练剑”两种不同的动作。

3、第二点中的排序在所有模型上基本是一致的。

4、双输入流I3D模型在所有数据集上都取得了最好的效果,但RGB流和光流两个单独版本则在Kinetics和其他数据集上的表现有很大不同。在UCF-101上,光流略好于RGB流;在HMDB-51上,光流远好于RGB流;在Kinetics上,光流远低于RGB流。观察发现Kinetics中有很多的相机运动,导致光流难以得到好的结果。I3D模型好像可以更好的利用光流提供的信息,这可能和采用了更长的时域感受野和更整体性的时域特征有关。我们人眼很难从Kinetics数据集上的光流图像中分辨出动作,所以看起来RGB流中含有更多的可供分辨的信息,然而事实上并不是这样。也许将来的研究可以向上述框架中添加一些运动稳定处理

 

上图中显示的是利用Kinetics数据集,从零训练和利用ImageNet预训练的差距。从中可以看出预训练基本在所有情况下都有更好的效果,尤其是在RGB流上。

4.2 利用Kinetics预训练

这部分研究了利用Kinetics数据集训练得到的参数的泛化能力。主要有两种考察方式:

1、固定Kinetics训练得到的特征网络参数,并用它产生UCF-101和HMDB-51上的特征,再用后面两个数据集完成最后的分类训练。

2、使用Kinetics训练得到的特征网络参数进行初始化,然后利用UCF-101和HMDB-51进行fine-tune以及分类训练。

此外还对比了只用Kinetics预训练和使用ImageNet+Kinetics预训练的区别。

 

从上图中可以看出,所有模型都能从预训练中收益,但I3D和3D模型从中收益最大。甚至只训练最后的分类网络也能为I3D模型带来显著提升。

对于I3D模型强大的迁移能力,一个可能的解释是采用了64帧视频片段(25帧每秒)进行训练,并在测试时使用所有帧。这使得模型可以更好的捕捉到细粒度的时域特征。换句话说,输入帧数少的模型从Kinetics预训练中收益更少,因为这些视频和ImageNet中的图像没什么区别。I3D优于C3D模型的原因可以解释为更深同时参数更少,使用ImageNet初始化,使用4倍长的视频,使用2倍的分辨率。

双输入流的I3D模型即使从头开始训练也能达到很好的效果,这可能是由于光流输入效果好,更难过拟合。同时,还可以观察到Kinetics预训练比ImageNet效果好。

4.3 与目前最好的模型对比

 

大多数模型都得到差不多的结果,最好的是ResNet-50 RGB流+光流的模型。

使用平均准确率MAP衡量,单输入流I3D已经比其他所有结果都更好。双输入流扩大了领先优势。

使用Kinetics预训练的I3D比之前的C3D模型明显效果好,即使C3D使用了更大的Sports-1M数据集训练再加上IDT。

4.4 讨论

对于开头提到的问题:视频邻域的预训练是否有用?显然,使用Kinetics进行预训练会带来显著的好处,就像使用ImageNet对卷积网络进行初始化一样。这表明对于相似任务的数据集是有效的。然而,使用Kinetics预训练是否对视频分割,视频物体检测或者光流计算是否有用仍然需要验证。



 

 

 

附:行为识别 Dataset

The HMDB-51 dataset(2011)
Brown university 大学发布的 HMDB51, 视频多数来源于电影,还有一部分来自公共数据库以及YouTube等网络视频库.数据库包含有6849段样本,分为51类,每类至少包含有101段样本。

UCF-101(2012)
来源为YouTube视频,共计101类动作,13320段视频。共有5个大类的动作:
1)人-物交互;2)肢体运动;3)人-人交互;4)弹奏乐器;5)运动.

[Sport-1M(2014)] (https://cs.stanford.edu/people/karpathy/deepvideo/)

Sports1M 包含487类各项运动, 约110万个视频. 此外,Sports1M 的视频长度平均超过 5 分钟,而标签预测的动作可能仅在整个视频的很小一部分时间中发生。 Sports1M 的标注通过分析和 youtube视频相关的文本元数据自动地生成,因此是不准确的。

行为识别Dataset
The HMDB-51 dataset(2011)
Brown university 大学发布的 HMDB51, 视频多数来源于电影,还有一部分来自公共数据库以及YouTube等网络视频库.数据库包含有6849段样本,分为51类,每类至少包含有101段样本。

UCF-101(2012)
来源为YouTube视频,共计101类动作,13320段视频。共有5个大类的动作:
1)人-物交互;2)肢体运动;3)人-人交互;4)弹奏乐器;5)运动.

[Sport-1M(2014)] (https://cs.stanford.edu/people/karpathy/deepvideo/)

Sports1M 包含487类各项运动, 约110万个视频. 此外,Sports1M 的视频长度平均超过 5 分钟,而标签预测的动作可能仅在整个视频的很小一部分时间中发生。 Sports1M 的标注通过分析和 youtube视频相关的文本元数据自动地生成,因此是不准确的。

Kinetics-600 (2017)

Kinetics-600是一个大规模,高质量的YouTube视频网址数据集,其中包括各种人的行动。

该数据集由大约50万个视频剪辑组成,涵盖600个人类行为类,每个行为类至少有600个视频剪辑。每个剪辑持续约10秒钟,并标记一个类。所有剪辑都经过了多轮人工注释,每个剪辑都来自单独的YouTube视频。这些行为涵盖了广泛的类别,包括人与物体的互动,如演奏乐器,以及人与人之间的互动,如握手和拥抱。

 

 

参考文献:

1.https://dmortem.github.io/2018/03/07/Qua-Vadis-Action-Recognition-A-New-Model-and-the-Kinetics-Dataset/

 

2.https://www.cnblogs.com/nowgood/p/actionrecognition.html

3.https://www.jianshu.com/p/43327efcf805

4.https://www.jianshu.com/p/f02baee5e7fb

 

  • 15
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值