20组-Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset


论文截图

摘要

由于目前行为分类(actionclassification方面的数据集(UCF-101 和 HMDB-51)很缺乏,使得识别视频中的行为分类这一任务没有很好的解决方案,目前大多数的方法性能都很相近。基于此本文提出了一个新的行为分类的数据集——Kinetics。Kinetics比现有的数据集大两个数量级,包括400个行为类别,每个类别有超过400个片段,同时分析了现有方法在这个数据集上的性能,以及经过在Kinetics进行预训练将会有多少性能的提升。

此外,作者提出了一种新的卷积模型——Two-Stream Inflated 3D ConvNet (I3D),通过把2D Conv模型中的filters pooling kernels 扩展到3D,使其可以学习视频中的时空特征。最后,作者通过实验表明,经过在Kinetics数据集上进行过预训练的I3D模型在行为分类上相较之前算法表现出了最优效果:正确率在HMDB-51数据集上达到了80.9%, 在UCF-101数据集上达到了98.0%。

一. 现有行为分类模型实验

本文的目的有两个:1、验证在经过Kinetics的预训练后,行为分类模型往往会有性能上的提升。2、验证I3D模型比现有的行为分类模型性能更好。基于以上目的作者的实验策略是重新复现一系列的行为分类模型,之后在Kinetics上进行预训练,接着分别在数据集HMDB-51 和 UCF-101 进行训练来调整参数,最后比较性能。实验结论是:通过预训练通常会有性能的提升,但是提升的幅度随模型的不同而变化。基于这些发现,作者提出了I3D模型,它能够重复利用预训练的优势,取得更好的性能。

以下就是作者复现的几种行为分类模型:

1. ConvNet+LSTM

动机:借鉴图像分类网络的思想,可以在视频中的每一帧都独立的提取特征,来预测整个视频。但是缺点是这种做法忽略了时间维度,比如这种做法就会分不清关门和开门这两个动作。为了解决这个问题,加入LSTM层,将状态进行编码从而捕获时间序列特征。

实现:图像分类模型采用Inception-V1,将LSTM层接入Inception-V1的最后一个average pooling层,接着在最顶端接入全链接层来进行分类,具体如下图:


ConvNet+LSTM

2. 3D-ConvNet

动机:3D卷积似乎是处理视频很自然的一种方式,就像二维卷积处理图像一样。它直接建立了时空特征的层次表达。但由于比二维卷积网络有更多的参数,模型往往很难训练。另外,3D ConvNets 似乎屏蔽了进行ImageNet预训练的优点,因此不得不从头训练。结果显示3D ConvNets虽然不是性能最好的但是很有前景,因此作者把它选为比较的对象之一。

实现:本文实现了C3D的一个变种,在最顶层有8个卷积层,5个pooling层和2个全联接层。模型的输入是16帧每帧112x112的片段。不同于论文中的实现是,作者在所有的卷积层和全联接层后面加入了BN层,同时将第一个pooling层的temporal stride由1变为2,来减小内存使用,增加batch的大小,这对batch normalization很重要。具体如下图:


3D-ConvNet

3. Two-Stream Networks

动机:由于在ConvNets后外接LSTM层只能建模高维的变化,不能捕捉低维的运动,而且低维的运动同样很重要。此外,由于训练时要将整个网络按时间展开,训练开销很大,难以投入到实用中。因此,一个更加易于实践的方法——Two-Stream Networks 被提了出来。

实现:该方案分为两个部分进行训练,即空间部分和时间部分,其中空间部分是单张的RGB图像帧,时间部分是使用若干个连续帧之间的光流位移场,将这两个部分分别通过两个ImageNet预先训练好的ConvNet。这样建模的模型比较好训练,同时也能获得更高的分数。另外一个扩展的版本(3D-Fused Two-Stream)在最后一个卷积层融合了空间和时间,结果显示在HMDB上性能相对原始的版本得到了提高,并减少测试时间(不需要采样)。Two-Stream 和 3D-Fused Two-Stream都以end-to-end的方式进行训练。具体如下图:


Two-Stream Networks

二. 新模型:Two-Stream Inflated 3D-ConvNet

1. 动机

 A、直接将ImageNet的2D ConvNet扩展成3D Convnets,包括它们的参数,简单易行。

B、仍然采用双流的策略。尽管3D ConvNets可以直接学习时间特征,但是将光流加进来后会提高性能。

2. 实现细节

A、将2D ConvNets扩展到3D:对于一个2D的模型,将它的所有的filters 和pooling kernels 增加一个时间维度,例如将NxN的filter变成NxNxN。

B、由2D Filters得到3D Filters:对N×N的filter重复复制N遍,再除以N进行归一化。

C、确定感受野在空间、时间和网络深度的尺寸:2D网络与对应的3D网络在水平和竖直方向上的kernel大小和stride保持一致,3D网络在时间维度上的kernel大小和stride自由决定,如果时间维度的感受野尺寸比空间维度的大,将会合并不同物体的边缘信息。反之,将捕捉不到动态场景。

D、Two 3D Stream:尽管3D ConvNets可以直接学习时间特征,但是仍然是以纯粹的前向计算的方式进行,而光流算法则体现了循环的特征(计算光流场时需要迭代优化)。作者通过实验发现有必要加入光流,因此,有一个基于RGB训练的I3D,还有一个基于光流训练的I3D,作者分别训练这两个网络,然后在测试时将它们预测的结果进行平均。

具体如下图:


Two-Stream Inflated 3D-ConvNet

三. 实验结果比较

A. 作者比较了上述5个模型在不同数据集上的结果,如下表:

现有行为分类模型实验结果

由上表得出以下四个结论:

1. I3D模型无论是RGB、flow还是RGB+flow模式,在所有的数据集上都表现最好。作者说虽然这个模型需要大量的参数,而且UCF和HMDB数据      集都很小,但是性能依然最好,这表明在ImageNet上进行预训练同样适用于3D Convnets。

2. 所有模型在UCF上表现最好,Kinectics次之,HMDB最差,表明这3个数据集的难度等级不同。

3. 在不同数据集上模型的排名几乎是一致的。

4. two-stream的结构在所有数据集上都表现的更好。

B. 此外,如下图所示,作者同样比较了经过ImageNet预训练后在Kinetics上训练出的模型和在Kinetics从头开始训练出的模型的性能,结果显示经      过ImageNet预训练有一定提升,而且在RGB stream上提升更为显著。

经过ImageNet预训练之后的实验结果

C. 作者在UCF和HMDB上训练了不同方式的soft-max分类器的模型,并且在测试集上评价他们,结果如下表所示:

结果显示,在Kinetics上进行预训练后所有模型的性能都有提升。并且,在Kinetics上进行预训练后仅仅训练最后一层也要比直接训练的性能好。此外,two-stream模型的性能时相当好的即使从头开始训练,这主要是由于光流的精度似乎减少了过拟合的程度。最后,在Kinetics预训练的到的帮助比Image上的预训练更明显。

D. 作者比较了I3D模型和之前最好的模型,结果如下:

I3D模型与其他模型比较

结果显示two-stream I3D最好,在UCF上98%,在HMDB上80.9%

四. 总结

最后作者指出,如同在图像领域上,ImageNet上预训练会带来很多好处,在行为分类领域中,Kinetics上预训练同样也会带来相当多的好处。这也论证了从一个数据集到另一个数据集上的迁移学习可以用来解决相似的任务。然而,在视频语意分割、视频目标检测和光流计算领域,Kinetics上的预训练是否会有同样的帮助,仍然需要进一步研究。

你可能感兴趣的:(20组-Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset)