I3D

论文地址:https://arxiv.org/pdf/1705.07750v1.pdf
论文名:Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset
源码地址:https://github.com/deepmind/kinetics-i3d

I3D是2017年视频分类最好的网络,使用了基于2D 卷积网络的I3D模型,将filters,pooling kernels扩展到3D,从视频中学习到无缝的时空特征提取器,同时成功利用ImageNet架构设计超参数。

在一个规模更大的新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%的准确率

I3D_第1张图片
为了拓展2D卷积网到3D ,提出将2D转化为3D,而不仅仅是重复的对时空进行加工。这可以通过将所有滤波器和pooling核进行时间上的膨胀得到。滤波器通常是NN变为NN*N

将2D滤波器变为3D,除了结构,还提取预训练参数。观察到视频可以通过复制图片序列得到,且视频上的pooling激活值应该与单张图片相同。由于是线性的,可以将2D滤波器沿着时间维度重复N次。这保证了相应的相同。由于图片组成的视频卷积层在时间上输出是恒定的,因此点状非线性层和average层和max pooling层和2D的一致。

空间、时间和网络深度接收增长图片中空间域自然的将x,y同等对待,在时间域上却没必要这样,(时间域上的pooling核选取有不同),这取决于帧率和图片维度质检的关系,如果相比空间域,时间域增长太快,可能破坏早期的特征检测,如果时间上增长的过慢,可能难以捕捉场景动态信息。
I3D_第2张图片
在InceptionV1中,第一个conv层stride是2,然后是4个max-pooling,stride=2,最后的77average-pooling层。输入25帧每秒,发现,在前两个max-pooling层中不加入空间pooling比较好,(使用了133 kernel,stride=1)同时使用了对称的kernels和stride在所有其他的max-pooling层,最后一个average-pooling层使用27*7的kernel,整体结构如下图,使用64帧并进行条采样,测试时使用整个视频,对每段结果进行平均。

除了类似C3D卷积网络外,都是用ImageNet的InceptionV1预训练网络,每个卷积网络后都放置批量归一化BN层和ReLUctant层,来产生分类的分数。

使用SGD方法,momentum为0.9,并行32个GPU,其中3D卷积网使用64个GPU,因为要从一个很大的batch中接受大量的输入帧。Kinetics训练110K次,loss饱和时降低10倍学习率。验证集上超参数需要调整,UCF101和HMDB51使用Kinetics的学习率训5K步,使用16GPU,Tensorflow

数据增强对深度结构性能至关重要,训练时使用随机剪切,视频小边缩放至256,剪切为224,。时间域上选择开始帧来保证足够的帧数。对于短视频,循环多次来保证足够输入。训练时采用随机左右翻转,测试时我们获取整个视频的224224的中心裁剪区域,对预测的结果进行平均。简单的尝试了256256空间卷积,但是效果没有提升。之后我们会在测试阶段左右反转,训练时更改光度来提高。使用TV-L1算法计算光流

你可能感兴趣的:(I3D)