type
status
date
slug
summary
tags
category
icon
password
论文题目:Two-Stream Convolutional Networks for Action Recognition in Videos
发表于NIPS 2014
意义:是第一个将卷积网络应用到视频分类使得效果与传统手工提取特征的方法相媲美,是视频理解领域的开山之作。

目录:

  1. 引言
  1. 早期实现方法
  1. 双流网络的思想
  1. 实现细节
  1. 实验结果
  1. 总结

1.引言

视频是一个很好的数据来源,相比于图像包含了更多信息,比如长期的时序信息、物体移动的信息、音频信息等,并且非常适合多模态的学习。
除此之外,视频中很自然地会有光线变化、遮挡等效果,因此可以说视频天生就具有数据增强的效果。
有关人类的动作视频在现实中有很多,因此研究动作识别可以说有很大的实际意义,所以视频的动作识别在视频理解领域有着很高的地位。

2.早期实现方法

  • 方法1:将视频一些关键帧抽出来放进卷积神经网络中训练,然后将得到的结果再组合起来
  • 方法2:将这些帧叠起来合并成一个输入,然后放进卷积神经网络进行训练
💡
缺点:效果不好,比传统的手工标记特征差很多

3.双流网络的思想

由于卷积神经网络擅长学习局部的特征,难以对物体的运动移动规律进行理解,因此作者想要网络去学习理解物体的运动规律。
网络的设计结构有两个2D的卷积网络,一个是空间流的卷积网络,用于对多帧图像分别送进网络进行物体和背景特征识别的学习;一个是时间流的卷积网络,将多帧光流信息输入进网络进行物体运动轨迹的学习。
光流信息是物体的运动规律。视频中背景没有动,而人在动,因此能够精准的捕捉到人的运动过程,而忽略掉不重要的背景。
运动越快,颜色越亮
运动越快,颜色越亮
                                                                                                  双流网络模型结构
双流网络模型结构

4.模型实现

如上图所示,模型的架构包括空间流网络和时间流网络,都经过softmax层再通过一个late fusion操作连接起来。

4.1 空间部分 Spatial stream ConvNet

这部分是基于静止图像的识别,输入多个单帧的图像。一旦模型能够识别出物体的种类,这将对视频的理解有很大的帮助。

网络结构:

类似Alexnet,5层卷积网络、2层全连接层、1个softmax层,结构十分简单。
                                                                              空间流网络结构
空间流网络结构

训练&测试:

  • 预训练:在ImageNet数据集训练。
  • 测试:从UCF-101和HMDB-51视频数据集上等间距地抽取25帧,随后对每一帧做ten crop操作,即每一帧都做一个裁剪得到5张图片,然后将原图片翻转再做一遍裁剪再得到5张图片,此时每帧就得到20张图片,总共250张图片用来训练(250个视角)。

4.2 时间部分 Optical flow ConvNet

关于光流:

光流信息是一个向量张量图,它由连续的两帧图像绘制而成,每一个像素点都具有对应的光流值,光流信息有两个维度,分为是水平和垂直,如下图(d)(e)所示:
图a和图b就是两帧连续的图像,图c就是这两帧图像的光流信息,每一个像素值都会有一个向量,因此称为dense optical flow,图d和图e分别为光流信息在水平和垂直维度的表示。
图a和图b就是两帧连续的图像,图c就是这两帧图像的光流信息,每一个像素值都会有一个向量,因此称为dense optical flow,图d和图e分别为光流信息在水平和垂直维度的表示。

光流信息的优缺点:

  • 优点:能够很好的捕捉物体运动的轨迹
  • 缺点:计算光流信息的时间长、占用太多内存空间
 

如何输入光流信息到网络:

如果仅仅将一个光流图输入进网络,那么无异于是做图像的分类任务,因此作者将多个光流图叠加在一起再输入进网络,这里作者提出了两种叠加光流的方法。
  1. 方法一:直接将多个光流信息的向量图进行叠加。好处是简单粗暴,缺点是没有充分的利用光流信息。如下图:
notion image
  1. 方法二:根据光流的轨迹,在轨迹上进行数值的叠加,充分利用了光流信息。如下图:
notion image
 
方法二更合理,但实验效果却不如方法一。
最后,给定帧视频,得到个光流图像,那么输入的通道数为,输入尺寸为
 

[Trick]双向光流Bi-directional optical flow:

除了视频信息本身的正向光流,作者还使用反向的光流信息进行训练。
例如一个人打篮球传球和接球都能说明他在打篮球
💡
Bi-directional是一种用来提升网络训练性能的trick,通常不会使得网络性能掉点,例如Bert也利用了双向的信息进行训练。
 

训练:

训练集为UCF-101和HMDB-51,大小分别为9.5K和3.7K。抽取10个光流图,输入到网络中训练。
 

4.3 fusion 操作

作者简单概括了两种fusion操作的方法,一个是进行简单的平均计算,另一个是训练一个多分类的线性SVM。
比如说最简单的平均计算,使用的训练集是UCF-101有101个类,空间流卷积网络的softmax结果是一个1×101的向量,时间流同理,然后将这两个向量做一个相加除2,选出分数最高的类。
 

5.实验结果

对空间流卷积网络和时间流卷积网络做消融试验,结果如下:
notion image
参数说明:
(图a)空间流卷积网络
  • From scratch: 从头开始训练
  • Pre-trained + fine-tuning: 使用ImageNet预训练好的模型然后进行全体的微调
  • Pre-trained + last layer: 使用ImageNet预训练好的模型然后只微调分类器。
(图b)时间流卷积网络
  • L 指的是输入的光流图数量
  • Optical flow stacking是光流直接叠加的方法
  • Trajectory stacking是光流按照轨迹叠加的方法
  • Mean subtraction是一个消除相机抖动的减去均值的操作
 

💡
结果: 图a说明,预训练对于模型性能的提升有着很大的好处,除此之外,由于测试集数据比较少,作者担心有过拟合的情况发生,因此在微调时会设置dropout来抑制过拟合。 图b说明,简单粗暴的光流图叠加方法要比根据轨迹叠加的方法效果要好,并且随着光流图的数量增加模型效果越好,此外,使用双向的trick能够有效提升一个点
 
跟之前的模型比较,结果如下:
notion image
💡
上面的是传统方法和之前基于深度学习的方法,下面的是作者提出的方法,效果显著,单单一个时间流网络的效果就已经足够好了,最后的模型甚至分数能超过手工提取特征最好的模型。
 
 

6.结论

本文提出双流卷积神经网络,网络本身的结构并不复杂,有一个空间流和一个时间流网络,单单一个时间流网络训练出来的结果就已经足够优秀。尽管模型使用到了光流信息,但是本身并不复杂,既没有用到3D网络,也没有用到LSTM网络或者在别的模型上进行改动,仅仅使用两个2D的网络就能够解决问题。
 
拓展
  • 什么是3D卷积网络?
答:3D卷积和2D卷积最大的区别就是卷积核的维度,2D卷积的卷积核是一个二维的窗口,在图像上做对应相乘再位移,那3D卷积的卷积核顾名思义就是三维的方块,相比于2D卷积核多了一个时间的维度,多用于对视频和多切片图像的处理。
 
  • 什么是HOG方向梯度直方图?
HOG可以将3通道的彩色图像转换成一定长度的梯度向量,从而能够有效的提取出边缘的信息。
 
  • 什么是svm classifier?
支持向量机svm是一个二分类模型,简单来讲,以二维为例,svm就是生成一条线性的线来区分空间中的所有点。
 
  • 什么是late fusion?
fusion一种整合多模态成为一个稳定表征的方法,fusion方法根据他们出现的位置分为 late early fusion。 ① early fusion 是在特征上进行融合,进行不同特征的concatenate,然后输入到模型中训练。 ② late fusion 是在预测分数上进行融合,在双流网络中就是取两个网路的loss score 的平均值。
 
 
 
相关文章
I3D网络MumPy
Hidragon
Hidragon
我唯一知道的是我一无所知
公告
type
status
date
slug
summary
tags
category
icon
password
追风赶月莫停留,平芜尽处是春山