Abstract
本论文提出了一种新的数据集Kinetics、他是ucf101,HMDB-51数据集的的两倍。
论文分别将当前现有的模型在Kinetics数据集上跑一遍,看这些模型在此数据集上表现的如何?,以及在次数据集的预训练下模型在其他数据集上表现的如何?
同时本论文引入了一个新的行为识别模型Two-Stream Inflated 3D ConvNet (I3D) ,I3D是基于2D卷积膨胀的,他将深层图像分类卷积的filters and pooling 的核由2D 膨胀到了3D 使其能够提取视频中的时空特征。
1. Introduction
论文中发现在可以预先在其他数据集上进行预热(预训练),然后再从训练自己的数据集,网络模型能够表现的更好。
本论文的重新复现了许多由代表性的神经网络结构(通过在Kinetics数据集上进行预训练或者在UCF101,HMDB数据集上进行微调),实验发现预训练对神经网络模型总是有促进作用,但由于网络结构不同,促进效果也不同。
基于以上发现,我们引入了一个新的模型“Two-Stream Inflflated 3D ConvNets” (I3D),I3D能够很好的利用在Kinetics数据集进行的预训练模型,并且有很好的表现。
I3D是基于最新的图像分类结构,但I3D将图像分类结构的filter and pooling kernels(and optional their parameters)膨胀到3D.
基于 Inception-v1的I3D在经过在Kinetics数据上的预训练之后,获得了很好的表现。
2. Action Classifification Architectures
目前图像识别技术越来越成熟,但视频分类发展不理想,最近的一些视频分类网络结构之间的差距就是
(1)卷积,以及层操作是采用2D(image-based)还是3D(video-based)kernels
(2)网络的输入仅仅是视频帧或者还包括经过预计算的光流
(3)如果是2D卷积神经网络,信息是如何通过视频帧传播的?时间循环层如 LSTMs 或者特征增强
作者对以上的做法持否点意见
在论文中,比较了一系列的模型
The Old Ⅰ:ConvNet +LSTM The Old Ⅱ:3D ConvNets
The Old Ⅲ:Two-Stream Networks The New:Two-Stream Inflated 3D ConvNet
由于其参数化的高维度和缺乏标记的视频数据,以前的 3D ConvNets 相对较浅(最多 8 层)。
论文中选择了一些更深的图像分类网络,如Inception,VGG-16 , ResNet,能过被膨胀到时空特征提取器中,并且这些网络的预训练权重提供了有价值的初始化。同时还发现two-stream 配置是有用的。
这些模型(除了C3D)都有Imagenet预训练模型作为其子组件。实验中假设一个共同的Imagenet预训练图像分类网络作为 back bone,然后选择Inception -v1作为batch normalization
2.1 The Old Ⅰ:ConvNet +LSTM
图像分类网络的高性能使其有吸引力尝试用最小化来用它们拍摄视频的变化。
从整个视频中的每一帧中独立的提取特征,然后汇聚所有的预测
这虽然方便当时完全忽略了时间结构(模型不能分辩开门,关门)
理论上,一个更满意的方法就是增加一个循环网络层到模型之中,如LSTM,它能够解码场景,捕获时间顺序以及长时间依赖
在Inception-V1的最后一个平均池后,我们将LSTM层定位在批量归一化之后,具有512个隐藏单元。 为分类器添加完全连接的图层。
训练时在所有时间步伐都都使用cross-entropy损失函数,测试时仅仅考虑最后一帧的输出。输入帧时在每秒二十五帧中采样五帧。
2.2The Old Ⅱ:3D ConvNets
3D 卷积网络采用了时空滤波器,似乎时视频建模的最自然的方法。
但是3D卷积神经网络模型比2D卷积神经网络有更多的参数,使得网格变得难以训练。并且不在适合ImageNet预训练。之前的网络定义了相对浅的自定义结构,并且从头开始训练它们。
3D卷积神经网络表现出了希望,但不能和最新的网络模型相媲美,因此使这种类型的模型成为对我们更大的数据集进行评估的良好候选者。
然后论文对C3D进行了复现,然后对网络有了小小的改动(在每个卷积层和全连接层后面都添加了batch normalization,在第一个池化层使用时间stride2代替了stride1(减少了内存占用以及允许更大的batch))
2.3The Old Ⅲ:Two-Stream Networks
来自最后一层 ConvNets 特征的 LSTMs 可以建模高层次的变化,但可能无法捕捉精细的低层次的运动。
Simonyan 和 Zisserman 介绍了一种不同的、非常实用的方法,通过对来自单个 RGB 帧和 10 个外部计算的光流帧的堆栈的预测进行平均,在它们通过 ImageNet 预训练网络 的两个副本后,对视频的短时间快照进行建模。光流有一个自适应输入层,是流帧的输入通道的两倍(因为流有两个通道。水平,竖直),
并且在测试时有多个快照从视频中采样,并对动作预测进行平均。 事实证明,这在现有基准(Kinsctis数据集)上获得了非常高的性能,同时训练和测试非常有效。
我们的实现大致遵循本文使用 Inception-V1。 网络的输入是 5 个连续的 RGB 帧,间隔 10 帧采样,以及相应的光流片段,空间和动作(时间)特征通过3×3×3的卷积层(512个输出层)再通过一个全连接层,进入最后的Inception的平均池化层(5×7×7)——3D融合版本的two-stream
2.4 The New Ⅳ:Two-Stream Inflated 3D ConvNet
通过这种架构,我们展示了 3D ConvNets 如何受益于 ImageNet 2D ConvNet 设计,也可以从他们学习的参数中受益。
Inflating 2D ConvNets into 3D
将成功的图像分类模型(2D)膨胀至3D,以2D架构开始然后膨胀其所有的filters and pooling kernals 到3D,赋予他们额外的时间维度,即由N×N——>N×N×N
Bootstrapping 3D fifilters from 2D Filters.
除了架构,我们还想使用预训练ImageNet模型的参数.通过发现,一个图片可以通过不断的重复组成一个时间序列就就形成了一个无聊的视频。
3D模型可以通过满足 the boring -video fixed point:无聊视频上的汇集激活应该与原始单图像输入相同,就可以利用ImageNet上的预训练。
由于线性,这可以通过沿时间维度重复 N 次 2D 滤波器的权重,并通过除以 N 重新缩放它们来实现。 这确保了卷积滤波器响应是一样的。 由于无聊视频卷积层的输出在时间上是恒定的,逐点非线性层以及平均和最大池化层的输出与 2D 情况相同,因此整体网络响应尊重无聊视频固定 观点。
(这个整体不是很懂,不知道咋实现的)
Pacing receptive fifield growth in space, time and network depth.(在空间、时间和网络深度上控制感受野的增长。)
无聊的视频定点在如何沿时间维度膨胀池化操作以及如何设置卷积/池化时间步长方面留下了足够的*——这些是影响特征感受野大小的主要因素。几乎所有的图像模型都平等地对待两个空间维度(水平和垂直)——池化内核和步幅是相同的。这是很自然的,这意味着网络中更深的特征同样受到两个维度上越来越远的图像位置的影响。然而,在考虑时间时,对称感受野不一定是最佳的——这应该取决于帧速率和图像尺寸。 如果它相对于空间在时间上增长太快,它可能会混淆来自不同对象的边缘,从而破坏早期特征检测,而如果它增长太慢,则可能无法很好地捕捉场景动态。
在Inception-v1中,在 Inception-v1 中,除了并行 Inception 分支中的最大池化层 .第一个卷积层的步幅为 2,然后有四个步幅为 2 的最大池化层和一个 7 × 7 平均池化层在最后一个线性分类层之前。在我们的实验中,输入视频以每秒 25 帧的速度处理;我们发现在前两个最大池化层中不执行时间池化(通过使用 1 × 3 × 3 内核和时间步幅为 1)是有帮助的,而在所有其他最大池化层中使用对称内核和步幅。 最终的平均池化层使用 2×7×7 内核。 整体架构如图所示。 .我们使用 64 帧片段训练模型并使用整个视频进行测试,按时间平均预测。
Two 3D Streams
虽然 3D ConvNet 应该能够直接从 RGB 输入中学习运动特征,但它仍然执行纯前馈计算,而光流算法在某种意义上是循环的(例如,它们对流场执行迭代优化)。 也许是因为缺乏重复性,在实验中我们仍然发现有一个双流配置是有价值的)——一个 I3D 网络在 RGB 输入上训练,另一个在流输入上进行优化,平滑的流信息。 我们分别训练了两个网络,并在测试时平均了它们的预测。
2.5. Implementation Details
除了类似 C3D 的 3D ConvNet 之外的所有模型都使用 ImageNet 预训练的 Inception-V1 [13] 作为基础网络。 对于所有架构,我们通过批量归一化 [13] 层和 ReLU 激活函数跟随每个卷积层,除了最后一个卷积层为每个网络生成类分数。
训练使用了标准的SGD优化器 并且momentum=0.9,除了3D卷积外其他模型都采用32块GPU同步并行运作,
而3D卷积采用64块。
我们在miniKinetics上训练了多达35k步的模型,在Kinetics上训练了110k步的模型,当验证损失饱和时学习率降低了10倍。我们对miniKinetics的验证集进行了学习率超参数的优化。模型在UCF-101和HMDB-51上进行多达5k步的训练,使用与Kinetics相似的学习率适应程序,但仅使用16个gpu。
数据增强:将较小的视频边调整为256像素,然后随机裁剪为224×224的patch,尽早的选择起始帧,以此来保证视频由足够多的帧数。对于较短的视频,我们循环视频的次数尽可能多,以满足每个模型的输入界面。在训练过程中,我们还对每个视频应用了连续的左右翻转。
3. The Kinetics Human Action Video Dataset
该数据集有 400 个人类动作类,每个类有 400 个或更多剪辑,每个剪辑来自一个独特的视频。 剪辑持续大约 10 秒,并且没有未剪辑的视频。 测试集由每个类的 100 个剪辑组成。
对于本文中的大多数实验,我们使用比完整 Kinetics 更小的数据集,称为 miniKinetics。 这是该数据集的早期版本,只有 213 个类别,共有 120k 个剪辑,分为三个部分,一个用于训练,每类 150-1000 个剪辑,一个用于验证,每类 25 个剪辑,另一个用于测试,每类 75 个剪辑 . MiniKinetics 实现了更快的实验,并且在完整的 Kinetics 数据集之前可用。
4. Experimental Comparison of Architectures
在本节中,我们比较了第 2 节中描述的五种架构的性能,同时改变了用于训练和测试的数据集(Kinetics)。
首先,我们的新 I3D 模型在所有数据集中表现最佳,无论是 RGB、流还是 RGB+流模式。 这很有趣,因为它的参数非常多,而且 UCF-101 和 HMDB-51 很小,这表明 ImageNet 预训练的好处可以扩展到 3D ConvNets。
第二,各模型再数据集上的表现:UCF101>miniKinectics>HMDB-51,可能是HMDB-51缺乏数据
第三,各模型架构的表现差距不大
第四,LSTM和3D ConvNet数据集越大表现的越好,呈现出:data-hungry
另外,双流体系结构在所有数据集上都表现出优越的性能,但在miniKinetics和其他数据集之间,RGB和flow的相对值存在显著差异。 仅流量的贡献,在UCF-101上略高于RGB,在HMDB-51上要高得多,在miniKinetics上则要低得多。对数据集的视觉检查表明,Kinetics有更多的摄像机运动,这可能使运动流的工作更加困难。与其他模型相比,I3D模型似乎能够从流中获得更多的信息,这可能是因为它的时间接受域更长(训练时为64帧vs训练时为10帧),以及更集成的时间特征提取机制。
5. Experimental Evaluation of Features
本节研究在Kinetics上训练的网络的泛化性。分为两种:
(1)冻结权重,使用UCF-101/HMDB-51 数据集,使用网络提取特征,然后评估他们的训练集
(2)微调网络,使用UCF-101/HMDB-51 数据集,使用网络提取特征,然后评估他们的训练集
结果如表3所示。显而易见的结果是,所有的架构都从miniKinetics的额外视频数据的预训练中受益,但有些受益明显大于其他的——特别是I3D-ConvNet和3D-ConvNet(尽管后者从一个更低的基础开始)。在miniKinetics (Fixed)中进行预训练后仅对模型的最后一层进行训练,也会导致I3D模型的性能比直接在UCF-101和HMDB-51上训练要好得多。
对于I3D模型特征的显著更好的可转移性的一个解释是它们的高时间分辨率——它们以每秒25帧的速度训练64帧视频片段,并在测试时间处理所有视频帧,这使它们有可能捕捉动作的细粒度时间结构。换句话说,具有稀疏视频输入的方法可能从这个大型视频数据集的训练中获益较少,因为从他们的角度来看,视频与ImageNet中的图像差异不大。与C3D的差异可以解释为,I3D模型更深,参数更少
5.1. Comparison with the State-of-the-Art
略….
6. Discussion
很明显,在(大型视频数据集)Kinetics上进行预训练有相当大的好处,就像在ImageNet上对许多任务进行预训练ConvNets有这样的好处一样。