视频理解学习笔记(一):双流卷积神经网络

视频理解学习笔记(一):双流卷积神经网络

    • 两句话总结双流卷积神经网络
    • 论文概览
    • 方法详解
      • Spatial stream ConvNet
      • Temporal stream ConvNet
      • 测试方法
    • 光流
      • 什么是光流
      • 怎么预处理光流
    • 数据集
      • UCF101(已被刷爆)
      • HMDB51
    • Experiments
    • References

两句话总结双流卷积神经网络

  • 两个神经网络,一个学习空间信息,一个学习时序信息。
  • 在学习时序信息的网络中,传统方法提取运动特征(光流信息作为先验),其后接上CNN学习这些特征。

论文概览

论文标题Two-Stream Convolutional Networks for Action Recognition in Videos

论文地址:https://arxiv.org/abs/1406.2199

作者团队:Karen Simonyan and Andrew Zisserman from 牛津大学的VGG组,也是VGGNet的两个作者。

任务:视频动作识别

背景:在双流卷积之前,也有工作尝试将卷积神经网络应用到视频动作识别任务(DeepVideo_Large-scale Video Classification with Convolutional Neural Networks_CVPR’14),但是效果却没有之前那些手工设计浅层特征的方法好。

贡献:第一个将CNN在Video上的表现提升到和手工设计特征方法媲美的深度学习神经网络。神经网络在视频理解领域的开山之作。

  • 证明将深度学习应用于视频理解是可行的
  • 证明motion信息(可以理解成时序信息)对视频理解是至关重要的

双流:两个神经网络

  • 空间流神经网络(Spatial stream ConvNet)
    • 输入:单帧图片(single frame)
    • 输出:分类概率
  • 时间流神经网络(Temporal stream ConvNet)
    • 输入:多帧光流(multi-frame optical flow)
    • 输出:分类概率
  • 最终输出(late fusion):将两个CNN输出的概率取加权平均,得到最终的分类概率。

    Late fusion:在logits层面去做合并

值得一提的是,在人脑内,也有两条路来做视觉处理,一条路叫做ventral stream,用来做物体识别;一条路叫做dorsal stream,用来做运动识别。

问题:CNN擅长学习局部特征,而难以学习基于时序的移动规律(即motion information)。

解决:既然CNN难以学习motion information,那就教CNN学会motion information。

  • 首先将motion information提前抽取好,也就是得到光流信息(multi-frame optical flow),然后让CNN学习光流和label之间的映射关系。

    事实上,在时序流网络分支中,先抽取光流信息作为运动特征是inspired by传统方法,只是说双流卷积用CNN代替了传统卷积的特征学习。

  • 相当于并没有让CNN直接去学习运动特征,而是将运动特征,也就是光流信息抽取出来后,再去让CNN学习这个抽取好的运动特征。

方法详解

视频理解学习笔记(一):双流卷积神经网络_第1张图片

Spatial stream ConvNet

  • 网络结构:5 Convs + 2 FCs + softmax (其实就是AlexNet)
  • 输入:将视频一帧一帧的喂进去,相当于一个图像分类
  • 输出:分类概率

Temporal stream ConvNet

视频理解学习笔记(一):双流卷积神经网络_第2张图片

  • 网络结构:5 Convs + 2 FCs + softmax (其实就是AlexNet)
  • 输入:11帧,即10个光流图
    • 每两帧能得到一个光流
    • 可以得到很多光流图
      • 如何利用这些光流图:叠加
      • 怎么叠加:
        • stack(实验证明,该方法效果更好)
        • trajectory stack,根据光流的轨迹,在轨迹上去进行光流数值的叠加
          视频理解学习笔记(一):双流卷积神经网络_第3张图片

测试方法

  1. 不管视频有多长,只从里面等间隔取25帧,对这25帧采用10 crop(从原帧取4个corners + 1 center,翻转后再取4个corners + 1 center)的方法,可以得到总共250个crop,送到spatial网络。spaital最后的预测结果是这25帧的预测结果取平均。
  2. 对于光流,依旧是等间隔提取25帧,然后以取的每一帧为起点,取其后面的连续10帧,共11帧,得到10个光流图,送到temporal网络。temporal最后的预测结果是这10个光流图的预测结果取平均。
  3. 最终预测结果是两个网络的最终预测结果取加权平均(或者SVM)。

光流

上面提到了光流和提取光流信息,那么什么是光流?该篇论文是怎么预处理和提取光流信息的?

  • 主要挑战:expensive time and space

什么是光流

光流是一种能够有效描述物体运动特征的物理表示。
视频理解学习笔记(一):双流卷积神经网络_第4张图片

怎么预处理光流

将光流scale到[0, 255]之间的整数,将其存储为JPEG格式。(但仍然expensive)

数据集

论文中在两个数据集上进行了实验,它们是UCF101和HMDB-51。

补充:其他视频理解数据集 and
Sports-1M
Something Something
Kinetic

UCF101(已被刷爆)

Paper: UCF101: A Dataset of 101 Human Action Classes From Videos in The Wild_ICCV’13
Website: UCF101 - Action Recognition Data Set

UCF是University of Central Florida的缩写,101意味该数据集里面共有101个类。

UCF101是中佛罗里达大学在2012年11月推出的一个真实动作视频的人类动作识别数据集,收集自YouTube,有101个类,共包括13320个视频,是UCF50的扩展。
该数据集包含的动作可以分为五大类:

  • Human-Object Interaction
  • Body-Motion Only
  • Human-Human Interaction
  • Playing Musical Instruments
  • Sports

分辨率:320 * 240 (width * height)

HMDB51

Paper: HMDB: A large video database for human motion recognition
Website: HMDB

HMDB是Human Motion DataBase的缩写,51意味着该数据集共包含51个动作类。

HMDB51是一个2011年11月推出的人类动作识别数据集,收集自电影和网络视频等。它包含6766个视频,共有51个动作分类,其中每个动作分类至少包含101个片段。

Experiments

视频理解学习笔记(一):双流卷积神经网络_第5张图片
视频理解学习笔记(一):双流卷积神经网络_第6张图片

References

Bilibili-双流网络论文逐段精读

你可能感兴趣的:(视频理解,视频理解,计算机视觉,人工智能)