CV论文笔记(一) 3D ConvNets(C3D)

参考论文

D. Tran, L. Bourdev, R. Fergus, L. Torresani, and M. Paluri, Learning Spatiotemporal Features with 3D Convolutional Networks, ICCV 2015    

source code

内容介绍

1. Abstract
主要谈及Three-fold(三个方面)
1.相比2D ConvNets,3D ConvNets更适合学习时空特征

2.在3D ConvNets中,相同架构的情况下3 × 3 × 3的小卷积核表现最优

3.作者将学习的特征命名为C3D,再与一个小线性分类器组合,就在四个benchmarks,得到最先进表现

2. Introduction

作者认为一个有效的视频解释器要具备四个属性:通用、紧凑、高效、简洁

即使3D ConvNets在之前就已经被提出,但是这篇论文旨在探索3D ConvNets在大规模监督训练数据集和现代深度架构的情况下来获取不同类型视频分析任务的最佳表现。

用一个简单的线性模型所提出的特征优于或接近4个不同任务和6个不同基准集的目前最佳方法


个人总结:这篇文章的主要工作是如何构建3D ConvNets来学习时空特征,这一块主要介绍了网络架构以及参数的设定、探索核的最佳时序深度、数据集以及训练的超参数设置。

除此之后作者还根据不同的任务,在不同测试集上进行了实验和对比,如Action recognition、Action Similarity Labeling(行为相似度标注)、Scene and Object Recognition。

下面对各个部分进行细节描述:

3. Learning Features with 3D ConvNets

3.1 3D convolution and pooling 
优点:对时序信息的建模能力强
与2D ConvNets的区别:2D卷积输入图像输出图像,多通道的方式输入多幅图像,结果仍为一幅图像
因此2D ConvNets的每个卷积层均丢失了输入的时序信息


Common network settings:
作者将一个视频剪辑的大小表示为c × l × h × w c为通道数,l为帧数
卷积orpooling核表示为d × k × k d为核的时序深度
作者使用相同的网络设置来训练,如将输入调整为128 × 171,大致是UCF101中帧分辨率的一半
    视频被划分为不重叠的16帧剪辑
网络有5个卷积/池化层、2个全连接层、一个softmax层
所有池化层采用max pooling且核的大小为2 × 2 × 2(第一层除外,为了不过早的合并时间信号)

这意味着输出信号的大小与输入信号相比降低了8倍。

3.2 Exploring kernel temporal depth

为了探究d取值的影响分别设置了1、3、5、7以及3-3-5-5-7(升序)和7-5-5-3-3(降序)等变种网络
虽然由于d的取值不同,导致网络参数数量不一,但他们具有相同的全连接层,参数数量区别比起全连接层的参数数量可以忽略不计
最终结果表明depth-3最好,increase和decrease均与其相差不大,depth-1效果最差,如图



3.3 Spatiotemporal feature learning
Network architecture:
考虑到目前GPU显存的限制,实验中在设计网络框架的时候采取了8个卷积层、5个池化层、两个全连接层、一个softmax输出层
作者将其命名为C3D:所有卷积核为 3 × 3 × 3 with stride 1 × 1 × 1. 所有pooling核为2 × 2 × 2 with stride 2 × 2 × 2 
除pool1以外,其核的大小为 of 1 × 2 × 2 and stride 1 × 2 × 2,全连接层有4096个输出单元


Dataset
Sports-1M:1.1 million sports videos,487 sports categories
Training
由于有很多长视频,作者从每个长视频中提取5个2秒的剪辑,并将大小调整为128 × 171。
在训练中通过对剪辑进行时间和空间上的抖动将剪辑随机裁剪到16×112×112大小,以50%的概率进行水平翻转
最小batch size为30,初始学习率为0.003,每迭代150K除2,迭代1.9M (about 13 epochs)停止优化
Sports-1M classification results
略......
    作者使用逆卷积的方式来理解C3D内部学习了什么 ,结论也是3D ConvNets能够注意外观和运动

4. Action recognition

Dataset
UCF101:13, 320 videos of 101 human action categories.
Classification model
我们提取C3D特征,并将其输入到一个多类别线性支持向量机中,用于训练模型。
实验中采取三种不同的网络:C3D trained on I380K, C3D trained on Sports-1M, and C3D trained on I380K and fine-tuned on Sports-1M.
Baselines
目前最好的hand-crafted features, namely improved dense trajectories (iDT)等等......
Results
简单总结:单项测试结果中等;作者认为有部分网络采取了long clip,因此不具备可比性;联合Imagenet仅有很小的提升;联合iDT结果最佳
        作者认为C3D相比其他网络有简单的优点
C3D is compact
为了估计C3D特征的紧凑度,作者使用PCA将特征映射到低维空间
记录在UCF101数据集上映射特征的分类精度,实验得到了最佳效果,由此作者认为C3D特征是紧凑的并且容易区分
作者使用t-SNE将特征映射到2维空间,定性的观察得出C3D特征具备较好的泛化能力



5. Action Similarity Labeling
Dataset
ASLAN:3, 631 videos,432 action classes.任务是验证给定的视频对是否相同
Features
将一个视频划分为16帧剪辑且其中8帧是重叠的
Classification model
给定一个视频对,我们计算[21]中的12个不同距离。加上4个特征类别,获取48维特征向量
由于48个方向并非一一比较,我们分别将其标准化,得到零均值和单位方差
最终,训练一个线性SVM在48维特征向量上分出视频对相同与否
Results
取得了最佳表现

6. Scene and Object Recognition
Datasets
YUPENN:420 videos of 14 scene categories  Maryland:130 videos of 13 scene categories
Classification model
对于这两个数据集,我们使用相同的特性提取和线性支持向量机进行分类。
我们在所有视频中滑动16帧的窗口来提取C3D特征,选择clip中出现频率最高的label作为clip的ground truth label
如果最高频率的label出现次数少于8帧,则认为是negative label,在训练和测试期间均丢弃
用线性SVM来训练和测试C3D特征并记录物体识别率
Results
取得了最佳表现,说明C3D泛化能力强

7. Runtime Analysis
对比了C3D 和iDT [44] 以及 Temporal stream network[36] 在UCF101数据集上的运行时间,结论是 超快!!!313帧/秒

8. Conclusions
实验得到最佳时序核长度;相比在各类视频分析任务中表现优异;能同时对外观和运动信息建模
C3D和线性分类器就能在不同的视频分析基准集上取得最优或接近最优的效果
在使用中C3D特征高效、简单、紧凑、

Appendix A: Effects of Input Resolution
随着输入分辨率的提高网络参数以及训练时间都会明显增加

Appendix B: Visualization of C3D Learned Features
通过逆卷积可视化卷积过程,随机选择来自UCF101的20K clips
结果表明:前面的卷积层学习一些“低级”运动模式,如移动的边缘,斑点,短的变化,边缘方向变化,或颜色变化
更深的卷积层学习一些更大的运动模式,如转角,纹理,身体部位和轨迹
最深的卷积层学习更复杂的运动模式,如移动的圆形物体,像自行车一样的运动

猜你喜欢

转载自blog.csdn.net/qq_38156052/article/details/78327039