StNet: Local and Global Spatial-Temporal Modeling for Action Recognition

论文:https://arxiv.org/abs/1811.01549

代码:https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/PaddleVideo

视频分类算法,AAAI2019的文章

我们知道,视频识别主流的算法方案大致有三,如下所示:

StNet: Local and Global Spatial-Temporal Modeling for Action Recognition_第1张图片

 1、对视频进行时序抽样并分别送入CNN提取各自空间信息,得出特征序列后依次喂进LSTM获得时序信息

2、采用3DCNN对时序图片集进行建模

3、two-stream结构,上分支提取空间信息下分支提取时序信息,空间信息一般采用CNN,时序采用光流等

这三种方案都有各自的不足之处,例如方案一,最后送入LSTM的都是CNN高层信息,忽略了其底层的语义信息,并且LSTM较难收敛,容易发生梯度爆炸或者消失。方案三效果优于方案二,但是和两种计算量都较大。

该文章主体采用2DCNN,并提出了super-image的概念(其实就是时序上局部几帧图像的集合),结构如下图所示:

StNet: Local and Global Spatial-Temporal Modeling for Action Recognition_第2张图片

主干采用2D网络,比如resnet,其中输入由NxCxHxW变为Tx3NxHxW,T即提取的视频时间帧段,H和W与2D的一致,解释下这里的3N,3还是3通道的意思,N指的是视频局部时序的连续N张图像(文章称之为super-image),两个super-image之间有一定的时序间隔。super-image这个概念说白了就是一种兼顾局部和全局时序抽样策略。

网络在res3和res4,res4和res5之间各加入一个Temporal Modeling Block结构,在最后的全连接层前加入一个Temporal Xception Block结构。我们知道,网络已经把局部的N张图(super-image)送入CNN中,因此网络本身是可以学到N张图之间的时序信息,但是两个super-image之间的时序信息却没有进行相应的融合(T这个维度对应于2DCNN中的batch,batch中样本之间的信息是独立的),Temporal Modeling Block这个结构的提出就是为了解决这个问题。Temporal Modeling Block首先把特征的维度从TxCxHxW转成1xCxTxHxW,进行一次三维卷积操作(conv+bn+relu)把维度还原为TxCxHxW送入下一层。

为了进一步融合时序信息,网络在最后的FC前加了Temporal Xception Block,该结构如下图所示,类似残差结构,上分支两次卷积感受野是5,下分支一次卷积感受野是1,不同的感受野能更好的融合局部和全局的时序信息。卷积括号的含义为(#kernel, kernel size, padding, #groups)。我个人更倾向于把这种卷积结构看成一维版的深度可分离卷积,既能融合C通道的信息又能融合T通道的信息。结构最后做一次max pooling生成1xC大小的特征以输入FC层并给出分类。

StNet: Local and Global Spatial-Temporal Modeling for Action Recognition_第3张图片

 最后算法在Kinetics400和Kinetics600数据集上测试指标如下

StNet: Local and Global Spatial-Temporal Modeling for Action Recognition_第4张图片

作者对特定动作的激活图做了可视化,并和TSN进行了比较,说明本篇文章算法能很好的抓住视频内的时序关联信息:

做个总结,视频识别说到底是空间信息和时序信息的提取及两者的融合,这其中还会涉及到时序信息的抽样策略。本篇文章采用了2DCNN处理时序三维信息(虽然还有小部分的3DCNN结构),和往常的思路相比,既能很好的抽取时序信息并融合空间信息,还能大大的减小计算量。

你可能感兴趣的:(StNet: Local and Global Spatial-Temporal Modeling for Action Recognition)