Paper name
Temporal 3D ConvNets: New Architecture and Transfer Learning for Video Classification
Paper Reading Note
URL: https://arxiv.org/pdf/1711.08200.pdf
TL;DR
该文章提出了一种基于densenet改进得到的三维卷积网络结构(Temporal 3D ConvNets),同时提出了一种迁移学习方法使三维卷积网络能够得到更好的初始化,所提出的方法在三个主要的动作识别数据集上取得了SOTA的结果。
Dataset/Algorithm/Model/Experiment Detail
数据集
HMDB51, UCF101, 和Kinetics Datasets三个人体动作识别数据集。其中Kinetics包含400的动作类别,难度非常大,三个数据集的具体情况见下表:
实现方式
- 三维卷积主要是在densenet的基础上改进得到,具体来说就是将原始网络中二维卷积修改为三维卷积,二维pooling修改为三维pooling;
- 自主要的创新还是来源于Temporal Transition Layer(TTL)层,TTL层包含几个不同大小和时间域深度的卷积kernel和三维pooling层构成,所希望达到的效果是能够对短、中、长三个不同的时间长度的序列信息进行建模。
- 考虑到三维卷积网络的参数较多,训练难度大,作者提出了一种迁移学习方法来将二维卷积网络的知识迁移到三维卷积网络中,具体实现方式如下:
- 二维卷积网络使用的是在ImageNet上pre-train之后的DenseNet模型,三维卷积网络的权值是完全随机初始化的;
- 两个网络输入的都是视频序列图片,二维网络是将视频序列的单帧图片依次输入,将网络是最后的2D的fc特征取平均,得到1024-d的特征;同时三维卷积网络直接送入序列图片得到3D的fc特征,也同样是1024-d的特征;
- 将以上两个特征concantenate之后送入两层全连接层进行分类,判断这两个网络输入的视频是否一致
- 训练过程中二维网络权值不更新,这样在训练过程中不需要得到视频的label,只需要知道送入两个网络的视频是不是同一个即可,也即希望三维网络在训练过程中不断具备对序列视频的特征提取能力
实验结果
- 网络结构探索实验,可以看到T3D的网络结构相比于原始的densenet还是多了很多的参数,据作者所说大概是会提升1.3倍
- 网络精度对比,作者为了公平对比实现了基于resnet、Inception、densenet的三维网络结构
- 输入图片尺寸大小对精度的影响,这个实验符合预期,我在做实验过程中也试过增加输入图片的尺寸能够明显涨点
- 采样帧率对实验结果的影响, 采样率为2时有最佳结果,也就是说并不是每帧图片都输入能够取得最佳结果,这种情况的可能原因是采样一定程度降低冗余的无关帧信息的影响?
- kinetics数据集上的结果
-UCF101和HMDB51数据集上的结果,都是取得了SOTA的结果
Thoughts
这篇文章的思路简单清晰,创新点也非常明确,就是基于densenet进行扩展并提出TTL层得到了一个性能优良的三维卷积网络结构,同时将预训练过的二维网络的知识迁移给三维网络,能够一定程度上使三维网络初始化在比较好的参数空间中,可以在动作识别实验中进行借鉴,但是这种方法对于参数量的增加还需要考虑进一步优化。