论文笔记之C3D(Learning Spatiotemporal Features with 3D Convolutional Networks)

通过构造了对称的3×3×3卷积核来利用3D卷积学习时空特征,计算效率高。
论文地址:http://vlg.cs.dartmouth.edu/c3d/c3d_video.pdf

1. 摘要

本文提出了一种简单而有效的时空特征学习方法,使用在大规模有监督视频数据集上训练的3D 卷积网络。本文的发现有三个方面:
1)与2D ConvNets相比,3D ConvNets更适合于时空特征学习
2)一个在所有层都有3 × 3 × 3卷积核的同质结构是3D ConvNets的最佳性能结构
3)使用3D卷积学习到的特征,使用简单的线性分类器在4个不同的基准上均优于最新的方法。
此外,它的特点是基于3D卷积的快速推理,计算效率非常高。而且在概念上非常简单,易于训练和使用。

2. 相关工作

2.1 传统行为识别

Laptev和Lindeberg通过将Harris角点检测器扩展到3D,提出了时空兴趣点(STIPs),SIFT和HOG也扩展到SIFT-3D和HOG3D用于动作识别。Dollar等人提出了用于行为识别的长方体特征。萨达南德和科尔索建立了行为识别数据库。最近,王等人提出了改进的密集轨道(iDT)这是目前最先进的手工制作特征。iDT描述符显示了时间信号可以不同于空间信号的处理方式。它不是将Harris角点检测器扩展到3D,而是从视频帧中密集采样的特征点开始,利用光流对其进行跟踪。对于每个跟踪器,沿轨迹提取不同的手工特征。尽管该方法具有良好的性能,但计算量大,在大规模数据集上难以实现。

2.2 卷积神经网络用于行为识别

Le等人使用叠加ISA来学习视频的时空特征。虽然该方法在动作识别方面取得了很好的效果,但在训练上仍存在计算量大、在大数据集上难以扩展的问题。3D ConvNets被提出用于人类行为识别和医学图像分割。三维卷积还与受限的玻尔兹曼机一起用于学习时空特征。最近,Karpathy等人在大型视频数据集上训练深度网络,用于视频分类。Simonyan和Zisserman使用了双流网络来实现动作识别并获得了最佳结果。

在这些方法中,[3d convolutional neural networks for human action recognition.]中的3D ConvNets方法与本文的关系最为密切。该方法利用人体检测器和头部跟踪技术对视频中的人体进行分割。将分割后的视频帧作为3D ConvNet的输入从而对动作进行分类。相比之下,本文的方法以完整的视频帧作为输入,不依赖任何预处理,因此很容易扩展到大型数据集。 西蒙尼和齐瑟曼使用全部的帧训练ConvNet。然而,这些方法建立在仅使用2D卷积和2D池化操作的基础上(除了[Large-scale video classification with convolutional neural networks]中的慢融合模型),而本文的模型执行3D卷积和3D池化,在网络中的所有层传播时间信息。另外,本文还表明,逐步汇集空间和时间信息并构建更深入的网络可以获得最佳结果

3. 本文方法

3.1 2D和3D卷积对比

在这里插入图片描述
a) 对图像应用二维卷积可生成图像。b) 在视频序列上应用二维卷积(多帧作为多个通道)也会产生图像。c) 在一个视频序列上应用3D卷积会产生另一个序列,从而保留输入信号的时间信息。

三维卷积网络非常适合时空特征学习。与2D-ConvNet相比,3D-ConvNet具有更好的时间信息建模能力,这得益于3D卷积和3D池化操作。在3D ConvNets中,卷积和池化操作是在时空上执行的,而在2D ConvNets中,卷积和池化操作只是在空间上执行的(如上图)。而2D ConvNets在每次卷积运算后都会丢失输入信号的时间信息。只有3D卷积才能保留产生输出时间信息。同样的3D池化操作也是如此。

根据2D ConvNets的研究结果,3 × 3卷积核的小感受野和较深的结构产生了最好的结果。因此本文将空间感受野固定为3 × 3,并且仅改变3D卷积核的时间深度。

3.2 网络结构

在这里插入图片描述

8个卷积层,5个池化层,2个全连接层,1个softmax输出层。所有卷积核均为3×3×3。第一个pooling层1×2×2,Stride=1×2×2,之后都是2×2×2,stride=2×2×2。两个全连接层都是4096。

注:为简单起见,假设视频序列大小为c × l × h × w,其中c是频道数,l是帧的长度,h和w分别是帧的高度和宽度。三维卷积和池化的核大小为d × k × k,其中d是核的时间深度,k是核的空间大小。

公共网络设置:该网络以视频片段为输入,对101个不同动作的类标签进行预测。所有视频帧的大小都调整为128 × 171。这大约是UCF101中视频帧的一半分辨率。视频被分成不重叠的16帧序列,然后作为网络的输入。输入尺寸为3 × 16 × 128 × 171。在训练中,还使用了大小为3 × 16 × 112 × 112的输入剪辑的随机裁剪来进行抖动。该网络有5个卷积层和5个池化层(每个卷积层后面紧跟着一个池化层)、2个全连接层和一个预测动作标签的softmax loss层。从1到5的5个卷积层的滤波器数目分别为64、128、256、256、256。所有卷积核都有d的大小,其中d是内核时间深度(后面将改变这些层的d值以搜索良好的3D架构)。

所有这些卷积层都采用适当的填充(空间和时间)和步长为1,因此从这些卷积层的输入到输出的大小没有变化。所有池化层都是最大池化,内核大小为2 × 2 × 2(第一层除外),padding为1,这意味着输出信号的大小比输入信号减小了8倍。第一池层的核大小为1 × 2 × 2,目的是不过早地合并时间信号,并且满足16帧的剪辑长度。

3.3 探索时间核长度(d)

**本文主要关注如何通过深度网络聚合时间信息。**为了寻找一个好的3D ConvNet架构,作者只改变卷积层的内核时间深度di,同时保持所有其他公共设置不变。

作者实验了两种类型的体系结构:

1)同质时间深度:所有卷积层具有相同的核时间深度;

2)可变时间深度:核时间深度跨层变化。

作者注意到,所有这些网络在最后一个池化层具有相同大小的输出信号,因此它们对于全连接层具有相同数量的参数。
由于核的时间深度不同,卷积层的参数个数也不同。与全连接层中的数百万个参数相比,这些差异非常微小。

在这里插入图片描述

在UCF101上测试不同核时间深度设置下split-1的动作识别剪辑精度。2D-ConvNet性能最差,3D-ConvNet的3×3×3核性能最好。

3.4 时间空间特征的学习

使用的数据集是UCF101,采用简单的分类模型—简单线性SVM。同时试验了3个不同的网络和基准进行比较。
在这里插入图片描述

结果如表所示。中间部分是只使用RGB的,下面则是所有当前最好的行为识别方法。结果表明,C3D不仅有最高的精度,而且能很好地提取外部特征与时间特征。另一方面,C3D同IDT的结合是十分互补的。IDT是主要基于光流追踪与低梯度的直方图特征,而C3D则捕捉了高度抽象综合的信息。

在这里插入图片描述

使用t-SNE在UCF101数据集上嵌入Imagenet和C3D的可视化特征。与Imagenet相比,C3D特征在语义上是可分离的,这表明它可以产生一个更好的视频特征。每个剪辑都可视为一个点,属于同一动作的剪辑具有相同的颜色。

4. 实验结果

4.1 动作相似性标注

在这里插入图片描述
在这里插入图片描述

4.2 场景与目标识别

在这里插入图片描述

4.3 运行时分析

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/haha0825/article/details/106967590