本文是CVPR 2017的一篇文章
Paper:Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset
github: kenetics-i3d
图片来自电影'Quo Vadis'(拉丁语, 何去何从)(1951)。
在发生什么? 这些演员正要亲吻对方,还是已经这样做了?
《你往何处去?Quo Vadis?》, 这部完成于一八九六年的著作,史诗般的重现了使徒时期罗马皇帝尼禄残害基督徒,基督教经过殉道后而兴起的历史。大师显克维奇也因此书在历史小说中的卓越贡献,1905年力挫大文豪托尔斯泰获得诺贝尔文学奖。
本文的idea*:
目前针对于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
但这个模型有两个问题:
相比于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: 将单独的一张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)的实现中使用了第一种实现
Inflating 2D ConvNets into 3D
Bootstrapping 3D filters from 2D filters
具体实现:把2D模型中的核参数在时间维上不断复制,形成3D核的参数,同时除以N,保证输出和2D上一样;别的非线性层结构都与原来的2D模型一样
Pacing receptive field growth in space, time and network depth (在时间维度上的感受野要如何变化,即conv和pooling的stride怎么选)
Two 3D Streams
整个网络在新数据集上fine-tuning
固定预训练的参数,在新数据集上只重新训练一个分类器的做法在I3D和3D ConvNet上也有不少提升,但在其他几种方法上几乎没有变化
整个网络在新数据集上fine-tuning的结果都得到大幅提升,尤其是I3D和3D ConvNet
迁移学习对于I3D影响最大,这也可能是因为I3D的时间长度更大,在大数据集上预训练就可以学到更好的时间结构
而迁移学习对于没有使用3D ConvNet结构的影响不大,这可能是因为那些方法的输入都是离散的帧而不是连续的帧,而那些2D方法都用了ImageNet预训练的参数,这些独立的帧其实更像是image而不是video,所以已经在image的数据集上预训练过的结构在video的大数据上进一步pre-train不一定有明显提升
作者最后对比了前述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流上。
这部分研究了利用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效果好。
大多数模型都得到差不多的结果,最好的是ResNet-50 RGB流+光流的模型。
使用平均准确率MAP衡量,单输入流I3D已经比其他所有结果都更好。双输入流扩大了领先优势。
使用Kinetics预训练的I3D比之前的C3D模型明显效果好,即使C3D使用了更大的Sports-1M数据集训练再加上IDT。
对于开头提到的问题:视频邻域的预训练是否有用?显然,使用Kinetics进行预训练会带来显著的好处,就像使用ImageNet对卷积网络进行初始化一样。这表明对于相似任务的数据集是有效的。然而,使用Kinetics预训练是否对视频分割,视频物体检测或者光流计算是否有用仍然需要验证。
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