Learning Spatiotemporal Features with 3D Convolutional Networks学习笔记
来源:互联网 发布:mac lr怎么导入照片 编辑:程序博客网 时间:2024/04/23 23:05
Learning Spatiotemporal Features with 3D Convolutional Networks
Du Tran, Lubomir Bourdev, Rob Fergus, Lorenzo Torresani, Manohar Paluri ICCV
论文主要通过使用了深度3维卷积神经网络(C3D)提出了一种简单、高效的方法在大规模有监督视频数据集上用于时域空域的特征学习。主要的研究有3点:
- 3D卷积网络相对于3D卷积神经网络更加适合学习时域空域(spatiotemporal)特征学习。
- 所有层采用
3×3×3 卷积核大小的网络结构能够获得最好的表现。 3D网络学习到的特征输入到简单的线性分类器(多分类线性SVM)相对于其它方法能够获得比较好的表现。
有效的视频特征描述符的4个性能:
- generic
- 能够很好地表示不同类型的视频,具有强大的区分能力
- compact
- 我们是在处理数百万个视频,一个紧致的视频描述符有助于快速处理、存储和检索大规模的的任务
- efficient
- 高效计算,成千上万个视频能够实时处理
- simple
- 特征描述符简单,能够快速实施。
- generic
论文贡献:
1):通过实验表明,3DConvNet是一个很好的特征提取器,不管是在表象还是在运动信息上。
2):通过实验表明,所有层采用大小为
3):提取的特征通过简单的线性模型在4个不同任务,6个不同benchmarks上 超出或接近目前最好的方法(如下图)。他们 足够紧致,并且能够高效计算。
通过3DConvNet学习特征
2D ConvNet输入一幅图像,输出为一幅图像
2D ConvNet输入多幅图像(把他们视作多通道),输出为一幅图像
因此2D网络将输入信号向有传播时丢失了时域信息,只有3DConvNet能够保持时域信息,输出结果为一个输出流如下图所示。同样的现象适用于下采样层。
大多数的网络在输入数据经过第一层卷积层之后就完全丢失了时域的信息。李飞飞的那篇文章Slow Fusion model使用了3D卷积并且在其前3层卷积层后使用平均下采样,因此取得不错效果,但是这个网络在第3层之后仍然丢失了时域信息。
- Notation
videoclips:c×l×h×w
c:表示通道数量; l:表示帧的长度 ;h:高度;w:宽度kernelsize:d×k×k
d:表示核的时域深度;k:表示核的空间尺寸
1、一般的网络设置
这个部分介绍我们训练的网络相同的设置,网络将UCF101视频片段作为输入,然后预测输出的类别。
- 所有的视频帧resized into
128×171, 大概是原始视频分辨率的一半。 - 视频分割为不重叠的16帧视频片段,作为网络的输入。
- 输入维度为
3×16×128×171 ,训练阶段使用抖动(jittering by using random crops),尺寸变为3×16×112×112 - 网络有5层卷积层,5层下采样层(连接在5层卷积层),2层全连接层,1层softmax分类层。
5层卷积层的卷积核数量依次分别为(64,128,256,256,256). - 每一个卷积核有一个时域核深度为d, 通过改变d的取值,设计一个好的3D网络结构。卷积核的步长设置为1,所有的下采样层尺寸为
2×2×2 (第一层pooling除外),第一层为1×2×2. - 所有的全连接层有2048个单元,mini-batch=30clips, 初始化 learning rate =0.003;每4个周期过后,学习速率除以10,迭代16个周期后结束。
2、改变网络结构
为了研究这个目的,我们主要感兴趣的地方在于怎么通过网络融合时域信息。我们在保持网络的其他相同设置的前提下,只改变卷积层的时域深度d_i。由此设置了两种不同的方案:
- 每一卷积层有相同的时域网络深度。测试深度分别为 1,3,5,7四种情况
- 随着网络,时域的深度发生改变。测试两种情况下的网络结构,分别为一种是时域深度随着网络向前传播增加(3-3-5-5-7),另一种随着网络的向前传播深度减小(7-5-5-3-3)。
所有的这些网络在最后的下采样层输出信号拥有相同的尺寸,因此他们在全连接层有相同数量的网络参数,由于时域的深度不同,所以卷积层的参数数量不同。但是对于全连接层数百万的参数,卷积层不同的数量规模是非常小的。例如上面深度差2的网络,只有17K参数数量多于或者少于彼此。depth-1和depth-7网络之间进行比较,depth-7有比depth-1多51K的参数,但是只相对于17.5百万的网络结构的总参数,相差的规模不到0.3%。
得出结论,网络的学习能力是相当的,参数数量的不同不会影响网络的结果。
探索时域的深度
在UCF101分支1上训练这个网络,图2展示了不同网络的视频片段取得的准确度。
可以发现,不管是相同的网络深度还是不同的网络深度之间的比较,当时域深度为3的时候效果最好,而且是全部卷积层的深度均为
时域空域特征学习
网络结构:基于当前的GPU,我们设计的3D网络有8个卷积层,5个下采样层,后面接着2个全连接层和1个softmax层,网络结构及相关参数如下图所示:
我们称这个网络为
Dataset:为了学习时域空域特征信息,我们在Sports-1M上训练我们的网络,该数据集有1.1million 运动视频,共487类。
Training:训练过程是在Sports-1M训练分支上完成的,,Sports-1M拥有大量的长视频,
- 数据准备:
- 提取片段:对于每一个训练视频,我们随机提取5个时长为2s的视频片段。
- resized: 调整大小为
128×171
- 训练阶段:
- 裁切(crop):将输入视频片段随机剪切为
16×112×112 - 水平翻转:50%的概率
- SGD with mini-batch size = 30;
- 初始学习速率为0.003,每150K次迭代除以2.
- 最优化过程在1.9M次 (13个周期)
- 除了用C3D网络从头开始训练,我们同样使用在I380K上预训练的模型进行微调。
- 裁切(crop):将输入视频片段随机剪切为
Sports-1M分类结果:表二表示了C3D网络的结果以及 Deep-Video(李飞飞)和Convolution pooling的结果。
- clip hit:在视频片段预测(clip)中,我们使用一个视频片段的中间的裁切部分,输入到网络中进行预测.
- Video hit:对从视频中提取的10个视频片段的预测结果求平均值得到视频预测分类的结果。
3、结果分析:
- DeepVideo每一个视频片段预测采用了4个裁切,每个视频预测采用了80个裁切;而C3D分别是1和10.
- C3D的效果仍然比DeepVideo准确度更高。
C3D的方法效果比Convolution pooling效果差5.6%.主要在于这个方法每个片段使用了120帧。
C3D 视频描述符 :在网络训练之后,C3D可以用作一个特征提取器,从而对其他的视频进行视频分析。为了提取C3D特征,一个视频被分割为16帧长的视频片段,其中8帧为连续片段的重叠帧。这些视频片段输入到C3D网络,提取fc6响应。fc6响应平均之后组成1个4096维度的视频描述符,然后进行L2-正则化。我们将fc6层输出后的响应正则化后作为视频的描述符(特征)。
what does C3D learn?:可以通过反卷积来可视化每一层学习到的内容。C3D区别C2D网络的地方主要是运动信息和表象。运动识别
Dataset:我们在UCF101数据集上评价我们的C3D网络,这个数据集包括13320个视频,110类。我们使用数据集提供的3个分割。
分类模型:提取C3D特征,并且将它们输入多分类的线性SVM分类器作为训练模型。我们通过使用3个不同网络的C3D描述符进行实验:C3D trained on I380K,C3D trained on Sports-1M,C3D trained on I380K 并在Sports-1M上微调。
Results:表3显示了C3D以及其他方法运动识别的精度。如下图所示:- C3D(1net):输出的维度为4096,获得了82.3%的精度。
- C3D(3nets):输出维度为12288,获得了85.2%的精度。
- C3D(3nets)+iDT获得了90.4%的精度。C3D结合ImageNet只获得了0.6%的提高,这表明了C3D网络可以很好获取表象和运动信息,因此没有必要结合ImageNet.
- C3D结合iDT两者之间能够很好的对彼此进行补充,事实上,iDT是基于光流追踪和低层次梯度直方图,而C3D能够获取较高层次抽象的语义信息。
- C3D在Sports-1M上训练,但是没有在任何其他的数据集上进行微调。(有点不明白,不是结合了3个网络,而其中有一个网络是进行了微调吗?)
* C3D is compact: *为了检验C3D特征的紧致性,我们使用PCA降维技术将提取的高维特征映射到低维空间,并且在UCF101数据集上使用映射特征检验分类的准确性,同样使用了SVM。结果如图5所示:
可以发现在映射的特征维度为10时,C3D能够获得52.8%的准确度,比ImageNet及iDT的32%高20%以上;当维度为50和100时,C3D获得准确度分别为72.6%和75.6%,这比另外两种方法高个10%到20%;最后维度为500时,C3D可以获得79.4%的准确度,比iDT结果高6%,比ImageNet高11%。
-结果表明我们的特征同时兼具紧致性和区分性
4、结论
论文主要提出了通过3D ConvNet在大规模视频数据集上训练 学习视频时域空域信息。同时找到了3DConvNet 最佳的时域核深度,可以发现3DConvNet可以很好的表示表象和运动信息。3DConvNet 提取的特征输入到多分类线性滤波器(SVM)优于或者接近当前最好的方法。我们提取的特征高效、紧致、使用简单。
- Learning Spatiotemporal Features with 3D Convolutional Networks学习笔记
- [深度学习论文笔记][Video Classification] Learning Spatiotemporal Features with 3D Convolutional Networks
- Learning Spatiotemporal Features with 3D Convolutional Networks
- 时空特征--Learning Spatiotemporal Features with 3D Convolutional Networks
- Learning Spatiotemporal Features with 3D Convolutional Networks译
- 【深度学习论文翻译1】Learning Spatiotemporal Features with 3D Convolutional Networks全文对照翻译
- Learning Spatiotemporal Features with 3D Convolutional Networks (C3D User Guide)
- Learning Spatiotemporal Features with 3D Convolutional Networks (C3D User Guide) 实验过程
- 论文阅读笔记《leaning spatiotemporal features with 3D convolutional network》
- Convolutional neural networks(CNN) (十) Learning color features with Sparse Autoencoders Exercise
- DeepBox: Learning Objectness with Convolutional Networks
- FlowNet: Learning Optical Flow with Convolutional Networks
- AlexNet 《ImageNet Classification with Deep Convolutional Neural Networks》学习笔记
- [Paper 学习笔记] Multi-Scale 3D Convolutional Neural Networks for Lesion Segmentation in Brain MRI
- 阅读笔记3-FCNT:Visual Tracking with Fully Convolutional Networks
- 深度学习笔记6:Learning color features with Sparse Autoencoders
- Deep learning论文笔记一:ImageNet Classification with Deep Convolutional Neural Networks
- 论文笔记:unsupervised representation learning with deep convolutional generative adversarial networks
- //暂未完成
- git 获取指定的tag处代码
- 微信小程序滑动删除效果
- 波那契数列的复杂度求解
- leetcode 563. Binary Tree Tilt
- Learning Spatiotemporal Features with 3D Convolutional Networks学习笔记
- 问答 | 我适合做软件开发吗
- ns3 学习资料和方法
- 512
- C++ 虚函数表解析
- 函数式编程的内建函数
- TOMCAT 的 404错误 问题总结以及解决办法
- Unity单例模式
- [leetcode]523. Continuous Subarray Sum