Two-Stream Convolutional Networks for Action Recognition in Videos论文精读

大家好,今天我要讲的论文是一篇视频理解领域的开山之作,这是2014年发表在NIPS的一篇文章。这篇论文理解起来相对简单,但是结合当时的时代背景,我们也许能从这篇开山之作里获得一些启发。

作者一开始先指出,视频是一个很好的数据来源,相对于2D的图片,它有物体的移动信息,有时序信息,有音频信息,也更接近我们人眼看到的世界。

Task

这篇文章应用的领域是视频分类,也就是对于这样一类标注好的数据集,我们希望网络求解出视频中的动作的分类。

Optical Flow

按照维基百科的定义呢,光流是描述观察者与场景中物体相对运动的一种模式。我目前是理解成图片中物体的运动信息,比如这张图:

我们提取监控下的一段视频,使用这一帧,和其下一帧计算光流,就可以得到下面这幅图,我们可以看到,光流很明确地捕捉到了人的运动,并且只关注了人的运动,也就是说人的性别,衣着等信息都是被忽略掉了。

再然后就是光流是有方向的,可以在一个二维平面上拆分成水平竖直的两个方向。

key-idea

在这之前的基于卷积神经网络的方法是把视频帧堆叠在一起传递给卷积神经网络去做视频分类,当然也尝试对模型的结构做了一些调整试图帮助模型学到时序信息,但并不能取得一个较好的结果,甚至传统的手工设计的方法都没有超越。

Large-scale video classication with convolutional neural networks Bag of visual words and fusion methods for action recognition:Comprehensive study and good practice

这个模型是在一个百万量级的数据集上做的预训练,然后迁移到UCF101上,但是结果都没有超越手工设计的方法(低20%),这在当时的深度学习大火的年代,显然是让人失望的。

所以作者认为:卷积更加擅长去学习一些局部的空间信息,并不擅长去学习一些时序信息。


那么基于此,既然卷积学不到视频中的时序信息,那我直接给你。作者想到的是直接去抽取出视频帧之间的时序信息,传递给卷积神经网络,使这些时序信息与最后的动作分类建立一个映射,建立映射关系是CNN的强项了,这里的时序信息也就是前文提到的光流。

Architecture

这就是双流神经网络的大体结构,一个是Spatial stream Convnet,另一个是Temporal Stream ConveNet,他们分别对视频中比较重要的两种信息去处理,第一种是空间信息,比如视频中出现篮球,小提琴,这和最后的动作分类是息息相关的,另一种则是时序信息,视频帧与帧之间的光流。再简单提一下输入是怎么构造的,先是抽取一系列的关键帧,对于一个当前帧,假设其尺寸是\(w \times h\),往后去取\(L\)帧,那么一共是\(L+1\)帧,则可以得到\(L\)帧的光流,也就是 \(w \times h \times 2L\)的维度。

Result

他的结果值得一看,首先是前3行,是人工设计的方法,其中第2,3行是对第1行方法的改进,4,5行是之前传统的卷积的方法,我们可以看到效果很一般,即使是Slow fusion,在一个百万量级的数据集上做预训练,效果也差强人意。但是有意思的是 Temporal stream ConvNet这一行,仅仅使用光流去当作输入,准确率也能达到83.7%,可见视频中的时序信息是多么的重要。至于两个分支的叠加,效果自是不必说。由于这篇论文证明了这种方法视频理解上的有效性,后续的很多研究也跟进,已经在UCF101上把准确率‘卷’到了98%

Inspire

1.The temporal information is the very important information in videos

2.Although typical convolution is effective, but still has it’s limitation, such as conv the temporal information automatically.

Reference

https://en.wikipedia.org/wiki/Optical_flow

https://stackoverflow.com/questions/28898346/visualize-optical-flow-with-color-model

A. Karpathy, G. Toderici, S. Shetty, T. Leung, R. Sukthankar, and L. Fei-Fei. Large-scale video classication with convolutional neural networks. In Proc. CVPR, 2014.

X. Peng, L. Wang, X. Wang, and Y. Qiao. Bag of visual words and fusion methods for action recognition:Comprehensive study and good practice. CoRR, abs/1405.4506, 2014.

Two-Stream Convolutional Networks for Action Recognition in Videos论文精读的更多相关文章

  1. 【ML】Two-Stream Convolutional Networks for Action Recognition in Videos

    Two-Stream Convolutional Networks for Action Recognition in Videos & Towards Good Practices for ...

  2. 【CV论文阅读】Two stream convolutional Networks for action recognition in Vedios

    论文的三个贡献 (1)提出了two-stream结构的CNN,由空间和时间两个维度的网络组成. (2)使用多帧的密集光流场作为训练输入,可以提取动作的信息. (3)利用了多任务训练的方法把两个数据集联 ...

  3. 目标检测--Spatial pyramid pooling in deep convolutional networks for visual recognition(PAMI, 2015)

    Spatial pyramid pooling in deep convolutional networks for visual recognition 作者: Kaiming He, Xiangy ...

  4. Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

    Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition Kaiming He, Xiangyu Zh ...

  5. SPPNet论文翻译-空间金字塔池化Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

    http://www.dengfanxin.cn/?p=403 原文地址 我对物体检测的一篇重要著作SPPNet的论文的主要部分进行了翻译工作.SPPNet的初衷非常明晰,就是希望网络对输入的尺寸更加 ...

  6. 深度学习论文翻译解析(九):Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

    论文标题:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition 标题翻译:用于视觉识别的深度卷积神 ...

  7. 论文阅读笔记二十五:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition(SPPNet CVPR2014)

    论文源址:https://arxiv.org/abs/1406.4729 tensorflow相关代码:https://github.com/peace195/sppnet 摘要 深度卷积网络需要输入 ...

  8. Paper Reading - Long-term Recurrent Convolutional Networks for Visual Recognition and Description ( CVPR 2015 )

    Link of the Paper: https://arxiv.org/abs/1411.4389 Main Points: A novel Recurrent Convolutional Arch ...

  9. SPP Net(Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition)论文理解

    论文地址:https://arxiv.org/pdf/1406.4729.pdf 论文翻译请移步:http://www.dengfanxin.cn/?p=403 一.背景: 传统的CNN要求输入图像尺 ...

  10. 【CV论文阅读】Dynamic image networks for action recognition

    论文的重点在于后面approximation部分. 在<Rank Pooling>的论文中提到,可以通过训练RankSVM获得参数向量d,来作为视频帧序列的representation.而 ...

随机推荐

  1. 展锐SE8451E 开启硬件流控

    Dear Customer:  如电话沟通,若将uart0配置成3M波特率,需进行如下更改:  1.时钟源更改为96M/sprdroid10_trunk_19c_rls1/bsp/kernel/ker ...

  2. map循环如何跳出循环

    今天在开发的时候遇到了一个问题.就是想在使用map的时候跳出循环无法实现,于是就在网上搜寻了一番,说map本身不能跳出循环,有一个大佬提出了抛出异常的方法,记录一下 let list=[1,2,3,4 ...

  3. x86平台SIMD编程入门(5):提示与技巧

    1.提示与技巧 访问内存的成本非常高,一次缓存未命中可能会耗费100~300个周期.L3缓存加载需要40~50个周期,L2缓存大约需要10个周期,即使L1缓存的访问速度也明显慢于寄存器.所以要尽量保持 ...

  4. linux:配置NTP

    介绍 网络时间协议(Network Time Protocol,NTP),用于同步网络中各个计算机的时间的协议.其用途是将计算机的时钟同步到世界协调时 UTC. ntpd(Network Time P ...

  5. [新]Java8的新特性

    原文首发在我的博客:https://blog.liuzijian.com/post/86955c3b-9635-47a0-890c-f1219a27c269.html 1.Lambda表达式 lamb ...

  6. Kubernetes 轻松管理资源

    资源管理介绍 在kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理kubernetes. kubernetes的本质上就是一个集群系统,用户可以在集群中部署各种服务,所谓的部署 ...

  7. MySQL-8.0.20

    版本: 8.0.20 操作: Centos 7 Linux 未介绍针对数据库的详细操作,如有需求请前往 第一章 MySQL的介绍及安装 1.介绍 1.1 数据库管理系统(DBMS) RDBMS : O ...

  8. Jenkins Job中衍生进程存活难题及解决方案

    Jenkins Job中衍生进程存活难题及解决方案 场景介绍 在Jenkins中创建了一个Job,假设你在一系列Build Step之前或之后启动了一个进程,例如启动一个Jboss进程.在Build完 ...

  9. flutter-使用flutter_app_upgrade进行版本更新要点

  10. win10安装MongoDB 5.0

    1.首先去官网下载安装包:https://www.mongodb.com/try?tck=docs_navbar 2.安装过程一路下一步就行,选择complete安装,可以勾选安装Compass工具 ...