主流几类方案
Two-stream
[2014] Large-scale Video Classification with Convolutional Neural Networks
Fusion Method
实验了不同的卷积神经网络表示出视频的时间信息
Multi-resolution CNN
- 使用两种不同的分辨率的帧分别输入到两个CNN中,在最后的两个全连接层将两个CNN统一起来
- 两个流分别是低分辨率的内容流和采用每帧中间部分的高分辨率流
Result
<font color=#ff0000>多帧卷积比单帧卷积好,多尺度比单尺度好</font>
[2014] Two-Stream Convolutional Networks for Action Recognition in Videos
Multi-stream CNN
- 提出了two-stream结构的CNN,由空间和时间两个维度的网络组成。
- 一个是普通的single frame的CNN,在ImageNet的数据上pre-train,然后在视频数据上调整最后一层。
- 另一个CNN网络,使用多帧的密集光流场作为训练输入,可以提取动作的信息。
- 利用了多任务训练的方法把两个数据集联合起来。把两个softmax层的输出融合:一种是平均层,一种是训练一个以这些softmax输出作为特征的SVM。
光流场叠加
计算每两帧间的光流,简单地叠加一起。追踪L+1帧,产生L帧的光流,把光流分解成X,Y两个方向的光流,这时会有2L个通道。
计算光流是预处理后保存的,因为这会影响网络的速度。
轨迹追踪光流叠加 通过光流来追踪它在视频中的轨迹点,从而计算它在每一帧的相应位置的光流向量
减去平均光流 消去摄像头运动引起的相对运动
Result
UCF-101最高准确率87%
[图片上传失败...(image-ffc236-1520906810618)]
[图片上传失败...(image-dff411-1520906810618)]
<font color=#ff0000>光流叠加帧数越多准确率越高</font>
[2016] Convolutional Two-Stream Network Fusion for Video Action Recognition
github:https://github.com/feichtenhofer/twostreamfusion
homepage:http://www.robots.ox.ac.uk/~vgg/software/two_stream_action/
在two stream network的基础上,利用两个独立的CNN网络进行了spatial以及temporal的融合。将单帧的图像信息和帧与帧之间的变化信息进行融合,单帧的图像可以形成对空间的描述,而通过光流法等方法形成的时间的描述(差分),从而达到时间和空间互补的目的。multi-task learning克服数据量不足的问题(CNN最后一层连到多个softmax的层上对应不同的数据集)
-
对于一大段时间t=1….T,把这段时间内的所有特征图(x1,…,xT)综合起来,进行一次3D时间卷积,得到融合后的特征图输出
左边是单纯在某一层融合,右边是融合之后还保留时间网络,在最后再把结果融合一次。论文的实验表明,后者的准确率要稍高。
融合方法:Sum、Max、Concatenation、Conv、Bilinear
[2016] Spatiotemporal Residual Networks for Video Action Recognition
github: https://feichtenhofer.github.io/
- 依然是使用了两个流,但是名字不是取为空间流和时间流,而是运动流(motion stream)和外观流(appearance stream),但是本质不变,运动流接收的输入依然是堆叠的多帧光流灰度图片,为什么是两幅,是因为光流计算后的结果分为x方向的光流和y方向的光流,真正计算的时候也是在同一位置取出x位置L=10帧做计算,y位置L=10做计算,而外观流和原来的空间流一致,接收的输入都是RGB图片,但是这里使用的 双流的两个流之间是有数据交换的,而不是像TSN网络一样在最后的得分进行融合
-
使用的网络是残差网络ResNet
[2017] Hidden Two-Stream Convolutional Networks for Action Recognition
- 只需要原始视频帧作为输入,直接获取运动信息预测操作类,而不需要计算光流
- 计算速度比传统two stream快十倍
实验效果:UCF101-93.1%,HMDB51-66.8%
3D-Fused Two Stream
[2016] Temporal segment network:towards good practices for deep action recognition
github:https://github.com/yjxiong/temporal-segment-networks
homepage:https://www.researchgate.net/publication/316779776_Temporal_Segment_Networks_for_Action_Recognition_in_Videos
把稀疏时间采样策略和基于视频的监督相结合
Temporal Segment Network
- 空间stream卷积神经网络作用在single RGB images
- 时间stream卷积神经网络以stacked optical flow field 作为输入
- two-stream卷积神经网络的4种输入形式:RGB image,stacked RGB difference,stacked optical flow field,stacked warped optical flow field
UCF101上准确率达到93.5%
LSTM
[2015] Beyond Short Snippets: Deep Networks for Video Classification
网络结构
-
two stream: 每秒取一帧彩色图像,连续多帧计算光流图获取运动信息
Feature Pooling
feature pooling networks使用CNN,组合帧间信息采用不同的pooling层
全链接和平均池化由于大量梯度计算导致较低的学习效率
- [Conv Pooling] Pooling over the final convolutional layer across the video’s frames. The spatial information in the output of the convolutional layer is preserved through a max operation over the time domain.
- [Late Pooling] First passes convolutional features through two fc layers before applying the max-pooling layer.
- [Slow Pooling] Pooling is first applied over 10-frames of convolutional features with stride 5. In the second stage, a single max-pooling layer combines the outputs of all fc layers.
- [Local Pooling] Local Pooling only contains a single stage of max-pooling after the convolutional layers.
- [Time-Domain Convolution] It contains an extra time-domain convolutional layer before feature pooling across frames.
LSTM
- Deep Video LSTM takes input the output from the final CNN layer at each consecutive video frame.
- CNN outputs are processed forward through time and upwards
through five layers of stacked LSTMs. A softmax layer predicts
the class at each time step. - The parameters of the convolutional networks (pink) and softmax classifier (orange) are shared across time steps.
Result
LSTM with 30 Frame Unroll (Optical Flow + Im- age Frames)在UCF-101准确率88.6%
Conv Pooling最好, Late Pooling最差
时间序列做池化保持空间信息很重要,<font color=#ff0000>先池化组合各帧再全连接</font>
Time-Domain Convolution效果不佳,<font color=#ff0000>在高层级的特征执行一次时间序列卷积对学习时间相关性作用不大</font>
<font color=#ff0000>光流图单独使用效果更差</font>
30-frame Conv-Pooling models,<font color=#ff0000>降低帧率可以提高准确率</font>
[2015] Fusing Multi-Stream Deep Networks for Video Classification
CNN提取特征,包括rgb图、光流图和语音频谱图,然后经过lstm,最后融合
UCF101上准确率达到92.6%
[2016] Action Recognition using Visual Attention
home page:http://shikharsharma.com/projects/action-recognition-attention/
创新之处在于将attention mechanism的思想引入actionrecognition中,思路算是比较简单,但是具有一定的启发意义。
人在看东西的时候,目光沿感兴趣的地方移动,甚至仔细盯着部分细节看,然后再得到结论。Attention就是在网络中加入关注区域的移动、缩放机制,连续部分信息的序列化输入。采用attention使用时间很深的lstm模型,学习视频的关键运动部位。
文章给出的多个数据集上的测试结果来看,效果一般,远不如双流法
[2016] RNN Fisher Vectors for Action Recognition and Image Annotation
homepage:http://www.eccv2016.org/files/posters/P-4A-30.pdf
文章典型的特征提取,分类思路文章采用卷积网络提取特征之后进过pca降维,然后FisherVector编码扔给RNN再pca降维,最后svm分类。
Ucf101上实验结果到了94%
[2016] A Key Volume Mining Deep Framework for Action Recognition
key volume的自动识别,关键帧学习提取,再在关键帧上建立CNN模型
在训练分类器的同时,挑选 key volume;并用挑出来的 key volume 更新分类器的参数
参考资料
实验效果:UCF101-93.1%,HMDB51-63.3%
C3D
[2015] Learning Spatiotemporal Features with 3D Convolutional Networks
homepage:http://vlg.cs.dartmouth.edu/c3d/
github:https://github.com/facebook/C3D
将视频分成多个包含16帧的片段作为网络的输入。第一个池化层d=1,是为了保证时间域的信息不要过早地被融合,接下来的池化层的d=2。有所卷积层的卷积核大小为3x3x3,相对其他尺寸的卷积核,达到了精度最优,计算性能最佳。
[2017] Deep Temporal Linear Encoding Networks
“Temporal Linear Encoding Layer” 时序线性编码层,主要对视频中不同位置的特征进行融合编码。特征提取则方法可用two stream以及C3D网络
- aggregates K temporal feature maps to output an encoded feature map X.
Temporal Linear Encoding
- X = S1 �* S2 *� . . . SK, X ∈ Rh×w×c, where *� is an
aggregation operator - y = EncodingMethod(X), y ∈ Rd, where d denotes
the encoded feature dimensions
aggregation operator
- Element-wise Average of Segments:
X = (S1 ⊕ S2 ⊕ . . . ⊕ SK)/K - Element-wise Maximum of Segments:
X = max{S1 ⊕ S2 ⊕ . . . ⊕ SK} - Element-wise Multiplication of Segments:
X = S1 * S2 * . . . * SKbest
encoding method
- Bilinear Models
best
- Fully connected pooling
- deep fisher encoding
实验效果:UCF101-95.6%,HMDB51-71.1%
[2018] Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset
网络结构
- 卷积核和pooling的核由二维扩展到三维
- 大的数据视频数据集上训练
- 用2D的ImageNet模型做预训练以及参数展开分配,迁移到UCF101,HMDB51,识别结果好
Result
实验效果:UCF101-98.0%,HMDB51-80.7%