论文名称:Learning Spatiotemporal Features with 3D ConvolutionalNetworks
论文作者:Du Tran, Lubomir Bourdev, Rob Fergus, Lorenzo Torresani, Manohar Paluri
论文链接:https://arxiv.org/abs/1412.0767
Learning Spatiotemporal Features with 3D ConvolutionalNetworks
Du Tran, Lubomir Bourdev, Rob Fergus, Lorenzo Torresani, Manohar Paluri
摘要
这篇文章提出在大规模监督视频数据集上训练深度3D卷积神经网络(3D ConvNets)。3D卷积网络的优势有三点:1)同2D卷积网络相比,3D卷积网络更适合时空特征的学习;2)3D卷积网络的每一层的卷积核的结构是齐次的,并且在很多结构中都适用; 3)将学到的特征成为C3D,带有一个简单的线性分类器,在4个不同的benchmarks上测试都实现了最好的性能,并且在另外的2个benchmarks上与目前的最好的方法相媲美。C3D网络在只有10维的UCF101数据集上测试达到了52.8%的准确率,并且由于卷积网络的快速推断的功能,使得C3D的计算效率也很高。
1. 研究背景介绍
互联网多媒体的快速发展,视频的数量和信息越来越多。为了应对信息爆炸,对视频的分析和理解是很必要的。计算机视觉已经针对视频任务解决了不同的问题,例如行为识别,异常事件检测,活动理解等。通过采用不同的解决方案,在这些问题的处理上取得了很大的进展。但是,对于帮助解决大规模视频任务的通用视频描述的需求仍在不断增长,就需要新的方法对视频进行处理。
对于一个可以有效处理视频的方法通常有四个属性:
(1)generic,可以表示不同类型的视频,同时又具有判别性,例如,互联网视频可以是风景,自然场景,电影,宠物,食物等;
(2)compact,可以轻量级的处理百万级的视频;
(3)efficient,可以在短时间内处理大量的视频;
(4)simple,与使用复杂的特征编码方法和分类器不同,一个比较有效的视频处理网络,即使使用简单的模型,例如线性分类器,也应该工作的很好。
近几年来,在特征学习方面的快速发展,各种预训练的卷积网络模型(ConvNet)都可以用于提取图像特征。但是由于缺乏运动建模,这种基于图像的深度特征并不直接适用于视频。这篇文章,使用深度3D ConvNet学习时空特征。我们凭经验证明,使用简单的线性分类器学习这些特征可以在各种视频分析任务中产生良好的性能。这篇文章的主要贡献是:
(1) 通过实验证明3D卷积深度网络是好的特征学习机,对appearance和motion同时建模;
(2) 在所有已知的网络结构中,使用大小为3∗3∗3的卷积核进行特征提取效果最好;
(3) 在已知的4种不同的任务处理,行为识别,动作相似度标注,场景分类,目标识别,以及6个不同的benchmarks上,Sport 1M,UCF 101,ASLAN,YUPENN,UMD,Object,提到的特征使用简单的线性模型就可以分类的比较好。
如图1所示,就是使用C3D模型和其他方法对比的实验结果,可以看出,除了在Sport 1M和UCF 101上,C3D表现出的性能不够好,在其他的benchmarks上都表现出了较高的识别准确率。
2. 模型介绍-Learning Features with 3D ConvNets
2.1 3D卷积和池化
3D ConvNet适用于时空特征的提取,由于3D卷积和3D池化的操作,3D ConvNet可以很好的对时序信息建模。3D卷积中,卷积和池化操作都是在时间和空间中进行的,然而在2D卷积中,卷积和池化只在空间进行。首先简单介绍一下3D卷积和2D卷积的区别,作者在文章中也进行了介绍。如图2所示。其中,(a)和(b)分别为2D卷积用于单通道图像和多通道图像的情况(此处多通道图像可以理解为同一张图片的3个颜色通道,也可以理解为多张堆叠在一起的图片,也就是一小段视频)。对于一个滤波器,输出为一张二维的特征图,因此使用2D卷积核,多通道的信息被完全压缩了。而在(c)中,3D卷积的输出仍然为3D的特征图,保留了通道的信息。
现在考虑一个视频段输入,视频的大小为C×L×H×W,其中C为图像通道(一般为3),L为视频序列的长度,H和W分别为视频的宽与高。进行一次kernel size为3∗3∗3,stride为1,padding=True,滤波器个数为K的3D卷积后,输出的视频大小为K∗L∗H∗W。池化同理。
对于网络设置,C3D网络的输入为视频的clips。用UCF 101 数据集来举例,UCF 101数据集有101个类别,首先将视频分解成互不重叠的16帧的小的clip,输入到网络里,输入的维度设置为3×16×128×171,其中3表示通道的数量,也就是RGB 的3通道,16表示帧的长度,也就是一次输入多少帧,128和171分别表示视频帧高度和宽度。作者在训练的过程中,还用到了数据增强的操作,scale jittering,输入的维度设置为 3×16×112×112。就是让crop size固定,而image size随机可变。用文章中的实验设置来说,就是把crop size固定在128×171,而image的短边可以按比例缩放到固定区间的某个随机数值,然后随机偏移裁剪128×171的图像区域。网络包含5个卷积层,5个池化层,2个全连接层和1个softmax层,预测行为标签。5个卷积层的滤波器的数量分别是64,128,256,256,256。所有卷积核的维度都是d×k×k,其中d是核的时序深度(kernel temporal depth),k是卷积核的长度和宽度大小,作者在实验中会调整d的大小,来选择效果最好的卷积核的结构。作者在实验中使用两种类型的结构来测试卷积核的性能。
(1)齐次的时序深度结构(homogeneous temporal depth)
使用4组网络,每一组网络使用固定大小的卷积核,第一组网络的每一层卷积网络使用时序深度为1的卷积核,第二组网络使用时序深度为3的卷积核,第三组网络使用时序深度为5的卷积核,第四组网络使用时序深度为7的卷积核。
(2)变化的时序深度结构(varying temporal depth)
使用2组网络,第一组网络的每一层卷积层分别使用时序深度为3,3,5,5,7的卷积核,第二组网络的使用顺序与第一组相反,对于每一层卷积层分别使用时序深度为7,5,5,3,3的卷积核。
对于每一组实验设置,使得他们在全连接层的输入都是一致的,由于卷积核的时序深度的不同,网络参数的数量只在卷积层上不同,但最终的输出信号的大小都在最后的池化层处理一致,因此也可以得到结论,网络的学习能力具有可比性,但是参数的数量不应该影响网络的最终结果。如图3所示,可以得出,时序深度为3,也就是3×3×3的卷积核效果最好。
2.2 卷积核时序深度的探索(exploring kernel temporal depth)
作者在实验中验证了时序深度(temporal depth)为3时,性能是最好的,同时,作者对卷积核的空间尺寸进行了比较,对卷积核设置不同的感受野,分别使用了3×3×3和3×5×5的卷积核,实验也证明,3×3×3尺寸的卷积核效果最好。
2.3 时间和空间的特征学习
在确立了最佳的卷积核的尺寸后,作者设计网络结构使用8个卷积层,5个池化层,2个全连接层和1个softmax层。网络结构如图4所示。其中卷积核的大小均为3×3×3,步长为1×1×1。池化核的大小为2×2×2,步长为2×2×2,但第一层池化层除外,其大小和步长均为1×2×2。这是为了不过早缩减时序上的长度。最终网络在经过两次全连接层和softmax层后就得到了最终的输出结果。网络的输入尺寸为3×16×112×112,也就是一次输入16张图像,大小为112×112。
作者在Sports-1M数据集上训练,Sports-1M是目前最大的视频分类的benchmark,包含1.1百万的运动视频,每一个视频分为487类。训练过程采用随机梯度下降的优化方式,mini batch的大小为30,初始学习率为0.003,每运行15万次的迭代,学习率就降为原来的一半,整个优化的过程在1.9百万次迭代时停止。如图5所示,C3D分别和Deep Video和Convolution pooling网络相比,在Sports-1M数据集上的视频分类结果。
从表格中可以看出,C3D比Deep Video的识别准确率高,但由于Convolution pooling使用的是长的clips的输入,无法直接与使用短的clips的输入的C3D比较。C3D在学习的时候首先关乎前几帧的appearance,并跟踪后续帧中的显著性运动。如图6所示,是对C3D模型的可视化。在第一个例子中,特征集中在整个人身上,然后跟踪其余帧上运动员表演的运动。在第二个例子中,它首先关注眼睛,然后在目标进行化妆的同时跟踪眼睛周围发生的运动。因此,C3D与标准2D ConvNets的不同之处在于它可以选择性地捕捉运动和外观。
3. 行为识别(action recognition)
作者将C3D在行为识别上的数据库进行了了测试,取得了不错的效果。如图7所示,是C3D与不同的baseline比较,在UCF 101数据集上的测试结果。
从图中可以看出,C3D+SVM的结果达到了85.2%,而且使用C3D和iDT结合,再加上SVM,结果达到了90.4%。这是2015年的结果,截止到目前,我看到的UCF 101 最高的结果达到了95.6%。
如图8所示,C3D与Imagenet,iDT在对UCF 101分类时,使用PCA降维,并且使用SVM进行分类的结果,C3D的准确率明显高于Imagenet和iDT。
4. 动作相似度标注(action similarity labeling)
动作相似度标注问题的任务是判断给出的两段视频是否属于相同的动作。在这篇文章中使用的数据库为ASLAN,ASLAN数据集包含3631个视频,属于432类动作。如图9所示,是在ASLAN数据集上,使用不同的方法进行动作相似度标注的ROC曲线,可以看出,C3D网络仅次于人自身标注的结果。如图10所示,是C3D模型同其他网络模型的对比结果,准确率相比其他模型很高。可以看出,Imagenet由于缺少了对动作的建模,准确率低很多。
5. 场景和目标识别(scene and object recognition)
作者在场景识别问题上主要使用了Maryland和YUPENN两个数据库,如图11所示,C3D网络达到了不错的效果。
6. 运行时间分析
iDT是行为识别领域的非深度学习方法中效果最好的方法,Brox指Brox提出的光流计算方法。图表中C3D的速度应该是在视频帧无重叠的情况下获得的。若将一段16帧的视频作为一个输入,那么C3D每秒可以处理约42个输入(显卡为1080, batch size选为50),而图中的fps达到了313.9,也就是每秒可以平均处理313.9帧,可见C3D的速度还是非常快的。
7. 结论
C3D使用3D卷积神经网络构造了一个效果不错的网络结构,可以作为一种通用的结果来处理视频问题,在这项工作中,作者使用3D ConvNets解决了使用大规模视频数据集训练来学习视频的时空特征的问题,并经过实验选取了最佳的卷积核的尺寸。使用C3D可以同时对外观和运动信息进行建模,在各种视频分析任务上都优于2D卷积网络的特征。
8. 参考文献
[1] S. Ji, W. Xu, M. Yang, and K. Yu. 3dconvolutional neural networks for human action recognition. IEEE TPAMI,35(1):221–231, 2013.
[2] A. Karpathy, G. Toderici, S. Shetty, T. Leung, R. Sukthankar, and L. Fei-Fei. Large-scale video classification with convolutional neural networks. In CVPR, 2014.