C3D阅读笔记

C3D阅读笔记

Paper:Learning Spatiotemporal Features with 3D Convolutional Networks

主要研究内容及贡献

  1. 实验证明了3D卷积神经网络比起2D卷积神经网络能够更好地同时学习时空特征(Spatiotemporal Features)。
  2. 探索了所有层设置相同卷积核大小为 3 × 3 × 3 3\times3\times3 3×3×3,实验效果最好。
  3. 3D卷积神经网络提取的特征输入到线性模型中,相对于一些其他方法(文中对比方法)能够取得更好的效果。(从这一点看,3D卷积神经网络还挺适合拿来做特征提取的)。

2D卷积网络与3D卷积网络对比

2D卷积与3D卷积对比图
2D卷积在一张图上,输出的是一张图像,2D卷积在多张图上,输出仍然是一张图像,帧数被当成了通道数。3D卷积在一个视频块(video volumn)上,输出还是一个视频块,它保留了输入信号在时间维度的信息。

探索3D卷积网络的框架

数据集

UCF101:中等大小的数据集

在大数据集上训练深度网络耗时长,因此选择在中等大小的数据集上来探索最好的3D卷积框架。

探索过程

注释说明:

  • 视频片段大小为 c × l × h × w c\times l\times h\times w c×l×h×w c c c是通道数, l l l是帧数, h × w h\times w h×w是每帧高和宽。
  • 3D卷积核和池化核大小为 d × k × k d\times k\times k d×k×k d d d是时间上的深度, k k k是空间上核尺寸。

基本网络设置

  • 任务:输入为视频片段(video clips),输出为视频中的动作类别。
  • 输入:所有视频帧裁剪为 128 × 171 128\times171 128×171(大约为数据集分辨率的一半),每个视频片段帧数为16,且不重叠。输入维度为 3 × 16 × 128 × 171 3\times16\times128\times171 3×16×128×171

在训练阶段会将输入片段随机裁剪为 3 × 16 × 112 × 112 3\times16\times112\times112 3×16×112×112

  • 网络结构:网络有5个卷积层和5个池化层,每个卷积层后面紧接着一个池化层,2个全连接层和一个softmax层来预测动作类别。

1到5,5个卷积层的通道数分别为64,128,256,256,256。
所有卷积层设置适当padding,步长为1,经过所有卷积层后,输出的尺寸不变。
所有池化层为最大池化,第一个池化层核尺寸为 1 × 2 × 2 1\times2\times2 1×2×2,其他为 2 × 2 × 2 2\times2\times2 2×2×2。第一层之所以这样设计,是因为1表示只在单帧上做最大池化,而不是2帧一起,不会过早地将时间维度的信息进行合并,在早期阶段能够保留时间维度的信息,并且视频帧为16帧,再经过4次时间维度的池化,刚好完全坍塌。
2个全连接层有2048个输出。训练时,批尺寸为30个clips,学习率为0.003。每4个epochs后,学习率缩小10倍。16个epochs后,训练停止。

不同网络框架(卷积核时间深度大小的探索)
在上面网络的基本设置中,没有提到卷积核的大小。接下来就是要探索卷积核最合适的尺寸。文章就此提出两种实验想法:(1)同时间深度,即所有卷积层有相同的时间深度核;(2)不同时间深度,即不同层,卷积核的时间深度设置不同。
针对第一个想法,准备了4个网络,每个网络核时间深度 d d d相同,分别为1,3,5,7。(网络命名depth-d)
针对第二个想法,准备了2个网络,一个核时间深度递增:3-3-5-5-7,一个核时间深度递减:7-5-5-3-3,分别是从1到5,5个卷积层的核时间深度大小。

探索最优框架
网络分类正确率
左图为同核时间深度网络,可以看出depth-1效果最差(这个网络其实就是2D卷积网络),depth-3效果最好。右边是不同核时间深度网络,同样是depth-3效果更好。根据实验, 3 × 3 × 3 3\times3\times3 3×3×3是最佳的核尺寸。

在大数据上验证

大数据集
I380K:380K个Instagram video,382类video concepts。

验证过程
在I380K上,训练两个2D卷积网络和一个3D卷积网络,根据最后的准确率来评估3D卷积网络是否真的比2D卷积网络表现好。

两个2D卷积网络分别是AlexNet和VGG NetA。3D卷积网络类似于VGG NetA,除了将2D卷积和池化替换为3D操作。

3D卷积比AlexNet和VGG NetA分别高出4.5%和2%。

时空特征学习

C3D网络框架

  • 8个卷积层
  • 5个池化层
  • 2个全连接层
  • 1个softmax输出层
    所有的3D卷积核都是 3 × 3 × 3 3\times3\times3 3×3×3,步长为1(时间和空间)。第一个池化层为 1 × 2 × 2 1\times2\times2 1×2×2,剩余所有池化层为 2 × 2 × 2 2\times2\times2 2×2×2。每个全连接层有4096个输出单元。
    网络框架

数据集

Sports-1M数据集:包含110万个运动视频,对比UCF101数据集,在动作类别上,前者是后者的5倍,在视频数量上,前者是后者的100倍。

训练阶段

对每个长时间的训练视频,随机抽取出5个2秒长的视频片段。
片段尺寸resize到 128 × 171 128\times171 128×171。训练采用SGD,批尺寸为30,初始学习率为0.003,每经过150K次迭代,学习率缩小一半。

在训练过程中数据增强的手段有两个,一个是随机裁剪输入片段为 16 × 112 × 112 16\times112\times112 16×112×112,另外还有50%的概率进行视频翻转。

除了从0开始训练C3D网络,文章还采用了在I380K上预训练过的模型。

数据集分类结果

分类结果

C3D在学习什么

在这里插入图片描述

我们观察到,C3D首先关注第一帧中的外观,然后跟踪后续帧中的运动。C3D与标准2D ConvNets的不同之处在于,它选择性地兼顾运动和外观。

动作识别

数据集

UCF101:包含13320个视频,共101类。

分类模型

提取出C3D特征,并将其输入到多分类线性SVM中训练。实验采用3中C3D描述子:C3D trained on I380K,C3D trained on Sports-1M,C3D trained on I380K and fine-tuned on Sports-1M。在多个网络设置中,我们将这些网络 L 2 L2 L2归一化的C3D描述符连接起来。

在UCF101上的动作识别结果

动作识别结果

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值