文章链接:Temporal Segment Networks: Towards Good Practices for Deep Action Recognition
官方代码链接(caffe):https://github.com/yjxiong/temporal-segment-networks
该文章发表在ECCV2016上,该文章可以认为是双流法的改进,更好的利用了更长的时序信息。不了解双流法的可以参考博客《Two-Stream Convolutional Networks for Action Recognition in Videos》算法详解》。
这里有个定义同双流法博客中提到的一样,就是snippet的定义,一个snippet定义为每个用作特征提取的视频帧单元,其中包含一帧图像帧以及几帧光流特征帧。
一、网络结构
因为是双流法的改进版本,所以结构类似与双流法,都有两个网络分别处理空间信息和时间信息。网络结构如下图所示:
1.png
从图中可以看出,TSN与原始双流法很大的一个区别是利用了长时间序列的信息来训练网络。具体做法如下:
- 将一个视频V等分为K个segments,称为
- 从每个segments中随机提取一个snippet,称为,总共有K个snippet (T_1, T_2, ..., T_K)
- 将所有的snippet输入到网络中,利用K个snippet计算得到的loss来更新网络权重
- 网络加入了consensus的结构,经过试验采用的是averaging作为consensus结构的算子,即将K个snippet的输入在进行softmax之前做一个average的操作。
- 对于测试阶段,文章将空间网络输出权重设置为1,时间权重设置为1.5,两个网络输出的加权值为最终的预测输出
注意:这里的两个网络同双流法,训练时是分开训练的,图中画出在K=3时有六个网络,其实只有两个网络,分别为时间网络和空间网络。
文章的基本原理讲完了,具体实验请参考原文
网友评论