[论文阅读笔记]Two-Stream Convolutional Networks for Action Recognition in Videos

来源:互联网 发布:淘宝优质家具卖家 编辑:程序博客网 时间:2024/04/24 03:03

Karen Simonyan Andrew Zisserman
Visual Geometry Group, University of Oxford
fkaren,azg@robots.ox.ac.uk

  • 提出了结合空域和时域网络的two_stream卷积网络结构。
  • 验证了即使在较小规模的训练数据集上,在多帧稠密光流上训练的卷积神经网络可以获得非常好的性能。
  • 展示了多任务学习(multiple learning),应用于不同的运动分类数据集,可以同时提升数据集的规模和检测性能。

1

  • 李飞飞使用堆叠视频帧作为网络的输入,结果比人工设计的浅层表示方法还要差。
  • 我们使用了基于时域和空域的两路识别输入流,之后再进行结合的网络结构。

    • 空域流从静止的视频帧中执行行为识别。
  • 时域流被训练从而能识别以紧密光流形式存在的运动。

2

  • 1、shallow high-dimensional encoding of local spatio-temporal features(基于时空域特征的浅层高维编码)
    • HOG (Histogram of Oriented Gradients)
    • HOF (Histogram of Optical Flow)
      提取的特征被编码为BOF(特征词袋)表示,并且集合SVM线性分类器
  • 2、dense point trajectories
    • H. Wang, A. Kl¨aser, C. Schmid, and C.-L. Liu. Action recognition by dense trajectories. In Proc. CVPR,pages 3169–3176, 2011.
      由调整局部描述符支持区域组成,可以跟随轨迹,通过光流计算。
  • 3、深度网络
    • 这些工作的大多数,所以模型被希望能够在第一层学习到时空域基于运动的特征。
  • 4OURS:
    • 我们的时域流ConvNet基于多帧紧密光流进行操作,该光流是在能量最小化框架通过处理位移场进行计算。

基于Two-stream结构的视频识别

  • 视频可以被分为空域和时域组成部分。
    • 空域部分,以单个的视频帧表象的形式存在,携带视频中的场景和目标信息
    • 时域部分,以视频帧间的运行形式存在,传递观察者(相机)和目标的移动。
  • 设计的结构如下图所示:
    • 每一个输入流使用一个深度ConvNet,在softmax层之后进行融合,考虑了了两种融合方案
    • 基于堆叠的L2-规范化的softmax分数作为特征进行的平均和训练多分类的线性SVM
      这里写图片描述

3ConvNets

我们的网络模型的输入为,输入能够很好的描述视频帧间的运动,可以使得识别更加容易。考虑了多种基于光流输入的变形。

3.1ConvNet 输入配置

  • Optical flow stacking
    • 连续的视频帧对t和t+1,一个紧密的光流可以写成位移矢量场的集合​
    • dt(u,v)记为帧t在点(u,v)的位移矢量,表示使这个点移动到下一帧t+1的对应点。
    • 位移场的水平和垂直部分dxt,dyt可以被认为是图像的通道。
      这里写图片描述
  • trajectory stacking
    • 在运动轨迹线上进行抽样
      这里写图片描述

Optical flow stacking 方法​存储的是位置(u,v)的位移矢量;
trajectory stacking方法​存储的是在顺着轨迹线位于位置​的向量

两种方法如下图所示:

这里写图片描述

  • Bi-directional optical flow:
    双向的位移矢量。
  • Mean flow subtraction

    对网络的输入使用0中心化,能够使网络更好地利用relu。在我们的方案中,x方向和y方向的位移矢量场都可以是正值或者负值。

  • 结构
    224×224×2L

4

时域ConvNet需要视频数据进行训练,而当前的视频数据集规模仍然较小。为了防止过拟合,可以采用将两个数据集融合为1个,但是两个数据集的分类之间可能存在一些交集,一种选择是将当前数据集中与第二个数据集不同分类的图像放入第2个数据集中,但是这种方法需要人为查找,并且限制了数据集的规模。

一个更为有效的融合的方法是基于多任务学习。它的目标是学习视频的表示,从而能够应对多种任务(多种数据集)。额外的任务作为一个调整,允许利用额外的训练数据。

在我们的方法中,ConvNet被修改为在最后的全连接层拥有两个softmax分类层,每一个分类层对应不同的任务(不同的数据集)。每一层拥有损失函数。总的训练损失为单个任务损失之和,网络的权重可以通过后向传播算法得到。
5

ConvNets配置:它对应着CNN-M-2048结构,所有的隐含权重层使用ReLu激活函数;max-pooling采用3×3空间大小,步长为2;时域和空域的ConvNet唯一的差别在于我们移除了从最后的第二个归一化层以减少内存需求。

训练:训练步骤由AlexNet调整而来,对于时域和空域是同样的。网络权重通过动量为0.9的批处理随机梯度下降算法学习得到。每一次迭代,小尺寸的256个样本通过256个训练视频(从不同类中均匀抽样)抽样,每一个视频中一个单帧视频被随机获取。

  • 在空域训练中,224×224子图像从选择的帧中随机裁剪;然后采用随机的水平翻转和RGB颜色抖动。视频预先调整大小,所以帧的最小尺寸等于256。
  • 在时域训练中,我们计算一个光流输入流I,固定尺寸224×224×2L的输入随机裁剪和翻转。学习速率初始化设置为102,之后根据固定的步骤下降,所有训练集保持相同。

测试:给定一个视频,抽样得到固定数目(本实验25)的帧,对于每一个视频帧,我们可以通过裁剪、翻转视频帧四个角和中心区域获得10个ConvNets。整个视频的类别得分可以通过平均抽样视频的得分得到。

Pre-Training on ImageNet ILSVRC-2012:

Multi-GPU 训练

Optical Flow:通过从Opencv工具使用现成的GPU执行。

6

Datasets:UCF-101,HMDB-51

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

阅读全文
2 0
原创粉丝点击