【深度学习】视频行为检测&分类方案整理

原博客地址:https://www.jianshu.com/p/583c26bbb675

主流几类方案

【深度学习】视频行为检测&分类方案整理_第1张图片

image

Two-stream

[2014] Large-scale Video Classification with Convolutional Neural Networks

Fusion Method

实验了不同的卷积神经网络表示出视频的时间信息

 

【深度学习】视频行为检测&分类方案整理_第2张图片

image

Multi-resolution CNN

【深度学习】视频行为检测&分类方案整理_第3张图片

image

  • 使用两种不同的分辨率的帧分别输入到两个CNN中,在最后的两个全连接层将两个CNN统一起来
  • 两个流分别是低分辨率的内容流和采用每帧中间部分的高分辨率流

Result

【深度学习】视频行为检测&分类方案整理_第4张图片

image

 

多帧卷积比单帧卷积好,多尺度比单尺度好

[2014] Two-Stream Convolutional Networks for Action Recognition in Videos

Multi-stream CNN

【深度学习】视频行为检测&分类方案整理_第5张图片

image

  • 提出了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)]
光流叠加帧数越多准确率越高

[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的层上对应不同的数据集)

【深度学习】视频行为检测&分类方案整理_第6张图片

image

  • 对于一大段时间t=1….T,把这段时间内的所有特征图(x1,…,xT)综合起来,进行一次3D时间卷积,得到融合后的特征图输出

     

    【深度学习】视频行为检测&分类方案整理_第7张图片

    image

  • 左边是单纯在某一层融合,右边是融合之后还保留时间网络,在最后再把结果融合一次。论文的实验表明,后者的准确率要稍高。

  • 融合方法: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

     

    【深度学习】视频行为检测&分类方案整理_第8张图片

    image

【深度学习】视频行为检测&分类方案整理_第9张图片

image

[2017] Hidden Two-Stream Convolutional Networks for Action Recognition

  • 只需要原始视频帧作为输入,直接获取运动信息预测操作类,而不需要计算光流
  • 计算速度比传统two stream快十倍

    【深度学习】视频行为检测&分类方案整理_第10张图片

    image


    实验效果: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

【深度学习】视频行为检测&分类方案整理_第11张图片

image

  • 空间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

 

【深度学习】视频行为检测&分类方案整理_第12张图片

image


UCF101上准确率达到93.5%

 

LSTM

[2015] Beyond Short Snippets: Deep Networks for Video Classification

网络结构

  • two stream: 每秒取一帧彩色图像,连续多帧计算光流图获取运动信息

     

    【深度学习】视频行为检测&分类方案整理_第13张图片

    image

Feature Pooling

feature pooling networks使用CNN,组合帧间信息采用不同的pooling层

全链接和平均池化由于大量梯度计算导致较低的学习效率

 

【深度学习】视频行为检测&分类方案整理_第14张图片

image

  • [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

【深度学习】视频行为检测&分类方案整理_第15张图片

image

  • 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最差

时间序列做池化保持空间信息很重要,先池化组合各帧再全连接

Time-Domain Convolution效果不佳,在高层级的特征执行一次时间序列卷积对学习时间相关性作用不大

光流图单独使用效果更差

30-frame Conv-Pooling models,降低帧率可以提高准确率

[2015] Fusing Multi-Stream Deep Networks for Video Classification

CNN提取特征,包括rgb图、光流图和语音频谱图,然后经过lstm,最后融合

 

【深度学习】视频行为检测&分类方案整理_第16张图片

image

UCF101上准确率达到92.6%

[2016] Action Recognition using Visual Attention

home page:http://shikharsharma.com/projects/action-recognition-attention/

创新之处在于将attention mechanism的思想引入actionrecognition中,思路算是比较简单,但是具有一定的启发意义。

人在看东西的时候,目光沿感兴趣的地方移动,甚至仔细盯着部分细节看,然后再得到结论。Attention就是在网络中加入关注区域的移动、缩放机制,连续部分信息的序列化输入。采用attention使用时间很深的lstm模型,学习视频的关键运动部位。

【深度学习】视频行为检测&分类方案整理_第17张图片

image

文章给出的多个数据集上的测试结果来看,效果一般,远不如双流法

[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%

【深度学习】视频行为检测&分类方案整理_第18张图片

image

 

[2016] A Key Volume Mining Deep Framework for Action Recognition

key volume的自动识别,关键帧学习提取,再在关键帧上建立CNN模型

在训练分类器的同时,挑选 key volume;并用挑出来的 key volume 更新分类器的参数

 

【深度学习】视频行为检测&分类方案整理_第19张图片

image

参考资料

Multiple Instance Learning

CVPR 2016|商汤科技论文解析:行为识别与定位

实验效果: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

【深度学习】视频行为检测&分类方案整理_第20张图片

image

 

将视频分成多个包含16帧的片段作为网络的输入。第一个池化层d=1,是为了保证时间域的信息不要过早地被融合,接下来的池化层的d=2。有所卷积层的卷积核大小为3x3x3,相对其他尺寸的卷积核,达到了精度最优,计算性能最佳。

[2017] Deep Temporal Linear Encoding Networks

“Temporal Linear Encoding Layer” 时序线性编码层,主要对视频中不同位置的特征进行融合编码。特征提取则方法可用two stream以及C3D网络

 

【深度学习】视频行为检测&分类方案整理_第21张图片

image

  • aggregates K temporal feature maps to output an encoded feature map X.

Temporal Linear Encoding

  1. X = S1 �* S2 *� . . . SK, X ∈ Rh×w×c, where *� is an
    aggregation operator
  2. 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 * . . . * SK best

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

homepage:https://deepmind.com/research/publications/quo-vadis-action-recognition-new-model-and-kinetics-dataset/

【深度学习】视频行为检测&分类方案整理_第22张图片

image

 

【深度学习】视频行为检测&分类方案整理_第23张图片

image

网络结构

  • 卷积核和pooling的核由二维扩展到三维
  • 大的数据视频数据集上训练
  • 用2D的ImageNet模型做预训练以及参数展开分配,迁移到UCF101,HMDB51,识别结果好

Result

【深度学习】视频行为检测&分类方案整理_第24张图片

image

实验效果:UCF101-98.0%,HMDB51-80.7%



作者:bit_teng
链接:https://www.jianshu.com/p/583c26bbb675
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(目标检测,深度学习)