《Learning Spatiotemporal Features with 3D Convolutional Networks》算法详解

  • 论文: Learning Spatiotemporal Features with 3D Convolutional Networks
  • 官方代码(caffe): http://vlg.cs.dartmouth.edu/c3d/
  • 由Facebook和Dartmouth学院提出
  • 被ICCV2015收录

一、核心创新

  • 网络全部使用3D卷积和3D池化
  • 方便在不同的任务中使用,如动作识别、相同动作判断、动态场景识别等
  • 网络简单且高效

二、 3D卷积及网络的探索

2.1 3D卷积与3D池化

1.png

2.2 卷积核时间维度分析

  • 采用数据集为UCF101
  • 网络输入片段维度为3 x 16 x 112 x 112
  • 构建网络采用5个3D卷积层和5个池化层,两个全连接和一个softmax loss层
  • 五个卷积层通道数依次为64,128,256,256,256,两个全连接输出都为2048
  • 除第一层以外的所有的池化层,核大小为 2 x 2 x 2,第一层核大小为1 x 2 x 2,步长都为1
  • 训练时batch为30,初始化lr为0.003,每4个epoch除以10,共训练16个epoch

在上述参数固定的情况下,来选择卷积核大小,其中卷积核的维度为d * k * k。按照VGG,3 x 3的卷积效果很好,所以这里k取3,只有d是没确定的。卷积核的步长为1。
为了确定d的值,文章设计两种网络:

  • d为固定值,文章取1,3,5,7
  • d为变动值,文章取两种,一种为3-3-5-5-7,另一种为7-5-5-3-3

实验结果如下

2.png

实验结论:

  • 使用3D卷积比使用2D卷积效果好
  • 3D卷积中d取值为3的卷积核效果最好

2.3 C3D网络设计

  • 采用8个3D卷积,5个池化,两个全连接和一个softmax输出层
  • 所有的卷积核大小为3 x 3 x 3,步长为1 x 1 x 1
  • 除第一池化操作外其他所有的核大小为2 x 2 x 2,步长为2 x 2 x 2。第一个池化操作核大小为1 x 2 x 2,步长为1 x 2 x 2
  • 两个全连接维度都为4096
3.png

网络学习到的特征


4.png

其他具体的参数和实验结果详情可以看原文和代码。

你可能感兴趣的:(《Learning Spatiotemporal Features with 3D Convolutional Networks》算法详解)