原文地址:http://blog.csdn.net/wzmsltw/article/details/70239000

随着深度学习技术的发展,以及计算能力的进步(GPU等),现在基于视频的研究领域越来越受到重视。视频与图片最大的不同在于视频还包含了时序上的信息,此外需要的计算量通常也大很多。目前主要在做视频中动作定位相关的工作,为了开拓思路,读了不少视频分析相关领域的文章,所以打算写几篇博客,对视频分析相关的几个领域做一个简要的介绍。

这篇主要介绍Action Recognition(行为识别)这个方向。这个方向的主要目标是判断一段视频中人的行为的类别,所以也可以叫做Human Action Recognition。虽然这个问题是针对视频中人的动作,但基于这个问题发展出来的算法,大都不特定针对人,也可以用于其他类型视频的分类。

任务特点及分析

目的

给一个视频片段进行分类,类别通常是各类人的动作

特点

简化了问题,一般使用的数据库都先将动作分割好了,一个视频片断中包含一段明确的动作,时间较短(几秒钟)且有唯一确定的label。所以也可以看作是输入为视频,输出为动作标签的多分类问题。此外,动作识别数据库中的动作一般都比较明确,周围的干扰也相对较少(不那么real-world)。有点像图像分析中的Image Classification任务。

难点/关键点

  • 强有力的特征:即如何在视频中提取出能更好的描述视频判断的特征。特征越强,模型的效果通常较好。
  • 特征的编码(encode)/融合(fusion):这一部分包括两个方面,第一个方面是非时序的,在使用多种特征的时候如何编码/融合这些特征以获得更好的效果;另外一个方面是时序上的,由于视频很重要的一个特性就是其时序信息,一些动作看单帧的图像是无法判断的,只能通过时序上的变化判断,所以需要将时序上的特征进行编码或者融合,获得对于视频整体的描述。
  • 算法速度:虽然在发论文刷数据库的时候算法的速度并不是第一位的。但高效的算法更有可能应用到实际场景中去。

常用数据库

行为识别的数据库比较多,这里主要介绍两个最常用的数据库,也是近年这个方向的论文必做的数据库。

  • UCF101:来源为YouTube视频,共计101类动作,13320段视频。共有5个大类的动作:1)人-物交互;2)肢体运动;3)人-人交互;4)弹奏乐器;5)运动。数据库主页
  • HMDB51:来源为YouTube视频,共计51类动作,约7000段视频。数据库主页

在Actioin Recognition中,实际上还有一类骨架数据库,比如MSR Action 3D,HDM05,SBU Kinect Interaction Dataset等。这些数据库已经提取了每帧视频中人的骨架信息,基于骨架信息判断运动类型。不做详细介绍

研究进展

传统方法

iDT(improved dense trajectories)特征:”Action recognition with improved trajectories”

  • iDT方法(13年)是深度学习进入该领域前效果最好,稳定性最好,可靠性最高的方法,不过算法速度很慢。这个方法是该实验室之前工作(Dense Trajectories and Motion Boundary Descriptors for Action Recognition)的改进。此前写的笔记见iDT论文笔记,算法代码分析见iDT代码分析
  • 基本思路:DT算法的基本思路为利用光流场来获得视频序列中的一些轨迹,再沿着轨迹提取HOF,HOG,MBH,trajectory4种特征,其中HOF基于灰度图计算,另外几个均基于dense optical flow计算。最后利用FV(Fisher Vector)方法对特征进行编码,再基于编码结果训练SVM分类器。而iDT改进的地方在于它利用前后两帧视频之间的光流以及SURF关键点进行匹配,从而消除/减弱相机运动带来的影响,改进后的光流图像成为warp optical flow

“Action Recognition with Stacked Fisher Vectors”基于iDT方法的改进效果最好的是这篇文章。使用了两层的fv编码,笔记见StackedFV笔记

深度学习方法

由于这个方向这几年的论文实在太多,所以这部分挑选了一些近年比较有代表性的论文进行简要介绍。更多的论文可以上谷歌学术通过搜索Action Recognition找到。

(1) Two Stream 方法

“Two-Stream Convolutional Networks for Action Recognition in Videos”(2014NIPS)


- Two Stream方法最初在这篇文章中被提出,基本原理为对视频序列中每两帧计算密集光流,得到密集光流的序列(即temporal信息)。然后对于视频图像(spatial)和密集光流(temporal)分别训练CNN模型,两个分支的网络分别对动作的类别进行判断,最后直接对两个网络的class score进行fusion(包括直接平均和svm两种方法),得到最终的分类结果。注意,对与两个分支使用了相同的2D CNN网络结构,其网络结构见下图。
- 实验效果:UCF101-88.0%,HMDB51-59.4%

“Convolutional Two-Stream Network Fusion for Video Action Recognition”(2016CVPR)

  • 这篇论文的主要工作为在two stream network的基础上,利用CNN网络进行了spatial以及temporal的融合,从而进一步提高了效果。此外,该文章还将基础的spatial和temporal网络都换成了VGG-16 network。
  • 实验效果:UCF101-92.5%,HMDB51-65.4%

”Temporal Segment Networks: Towards Good Practices for Deep Action Recognition”(2016 ECCV)


- 论文的讲解可以参考:https://blog.csdn.net/zhang_can/article/details/79618781。同时TSN也是2016年ActivityNet比赛,“untrimmed video classification”的冠军
- 这篇文章是港中文Limin Wang大神的工作。他在这方面做了很多很棒的工作,可以followt他的主页:http://wanglimin.github.io/ 。
- 这篇文章提出的TSN网络也算是spaital+temporal fusion,结构图见下图。这篇文章对如何进一步提高two stream方法进行了详尽的讨论,主要包括几个方面(完整内容请看原文):
1. 输入数据的类型:除去two stream原本的RGB image和 optical flow field这两种输入外,这篇文章中还尝试了RGB difference及 warped optical flow field两种输入。最终结果是 RGB+optical flow+warped optical flow的组合效果最好。
2. 网络结构:尝试了GoogLeNet,VGGNet-16及BN-Inception三种网络结构,其中BN-Inception的效果最好。
3. 训练策略:包括 跨模态预训练,正则化,数据增强等。
- 实验效果:UCF101-94.2%,HMDB51-69.4%

“Beyond Short Snippets: Deep Networks for Video Classification”

这篇文章主要是用LSTM来做two-stream network的temporal融合。效果一般
实验效果:UCF101-88.6%

(2) 3D 卷积

“3D Convolutional Neural Networks for Human Action Recognition”

“Learning spatiotemporal features with 3d convolutional networks”


- C3D是facebook的一个工作,采用3D卷积和3D Pooling构建了网络。论文笔记见C3D论文笔记 。通过3D卷积,C3D可以直接处理视频(或者说是视频帧的volume)
- 实验效果:UCF101-85.2% 可以看出其在UCF101上的效果距离two stream方法还有不小差距。我认为这主要是网络结构造成的,C3D中的网络结构为自己设计的简单结构,如下图所示。
- 速度:C3D的最大优势在于其速度,在文章中其速度为314fps。而实际上这是基于两年前的显卡了。用Nvidia 1080显卡可以达到600fps以上。所以C3D的效率是要远远高于其他方法的,个人认为这使得C3D有着很好的应用前景。

“ConvNet Architecture Search for Spatiotemporal Feature Learning”(2017 CoRR)

作者在其项目主页 放出了新版本的Res-C3D网络的caffe模型。新版本的模型大小是之前的一半,速度比C3D快了很多,效果也比之前提高了几个百分点(UCF上)。

其他方法

“A Key Volume Mining Deep Framework for Action Recognition”

  • 本文主要做的是key volume的自动识别。通常都是将一整段动作视频进行学习,而事实上这段视频中有一些帧与动作的关系并不大。因此进行关键帧的学习,再在关键帧上进行CNN模型的建立有助于提高模型效果。本文达到了93%的正确率吗,为目前最高。
  • 实验效果:UCF101-93.1%,HMDB51-63.3%

”Deep Temporal Linear Encoding Networks”

  • 本文主要提出了“Temporal Linear Encoding Layer” 时序线性编码层,主要对视频中不同位置的特征进行融合编码。至于特征提取则可以使用各种方法,文中实验了two stream以及C3D两种网络来提取特征。
  • 实验效果:UCF101-95.6%,HMDB51-71.1% (特征用two stream提取)。应该是目前为止看到效果最好的方法了(CVPR2017里可能会有更好的效果)

小结

可以看出,这几年action recognition领域发展的非常快,有各种各样的方法被提出。但要注意,action recognition一般是对预先分割过的短视频进行分类,而真实环境中的视频一般都是没有预先切分过的,而且会包含大量无关信息。所以我认为这个领域的研究很像对Image Classification的研究,比较基础,可以为相关领域的研究提供有力的工具。

Action recognition进展介绍相关推荐

  1. 视频时序动作识别(video action recognition)介绍

    一.视频时序动作识别算法分类 根据网络的工作方式,可以将视频时序动作识别算法大致分为四大类: 采用2D卷积的方法 采用3D卷积的方法 双流法 引入VLAD的方法 1.1 采用2D卷积的方法 <T ...

  2. 译:Convolutional Two-Stream Network Fusion for Video Action Recognition

              这是双流神经网络的改进版,接下来会出他的读书笔记. 摘要:近年来,卷积神经网络(卷积神经网络)对视频中人类行为识别的应用提出了不同的解决方案,用于整合外观和运动信息.为了更好地利用 ...

  3. Action Recognition(行为识别)

    随着深度学习技术的发展,以及计算能力的进步(GPU等),现在基于视频的研究领域越来越受到重视.视频与图片最大的不同在于视频还包含了时序上的信息,此外需要的计算量通常也大很多.目前主要在做视频中动作定位 ...

  4. 论文笔记【A Comprehensive Study of Deep Video Action Recognition】

    论文链接:A Comprehensive Study of Deep Video Action Recognition 目录 A Comprehensive Study of Deep Video A ...

  5. 论文阅读:A deep multimodal network based on bottleneck layer features fusion for action recognition

    摘要:提出了一个深度瓶颈多模式特征融合(D-BMFF)框架,融合RGB.RGB- d(深度)和三维坐标信息三种不同的模式进行活动分类.在四个数据集: UT-Kinect, CAD-60, Floren ...

  6. 视频动作识别--Temporal Segment Networks: Towards Good Practices for Deep Action Recognition

    Temporal Segment Networks: Towards Good Practices for Deep Action Recognition ECCV2016 https://githu ...

  7. 视频动作识别--Convolutional Two-Stream Network Fusion for Video Action Recognition

    Convolutional Two-Stream Network Fusion for Video Action Recognition CVPR2016 http://www.robots.ox.a ...

  8. 百度飞桨顶会论文复现(5):视频分类论文之《Representation Flow for Action Recognition》篇

    这次老师在课上总共领读了4篇分类论文,我这里分享其中的一篇论文,是关于使用神经网络对光流进行学习. 课程地址是:https://aistudio.baidu.com/aistudio/educatio ...

  9. 201904:Action recognition based on 2D skeletons extracted from RGB videos

    论文标题:Action recognition based on 2D skeletons extracted from RGB videos 发表时间:02 April 2019 解决问题/主要思想 ...

最新文章

  1. S4:装饰模式 Decorator
  2. c语言关于office运行库,VC++运行库32/64位合集下载|微软常用运行库合集(2015- 2021版)...
  3. c语言3级菜单_大一新生作品:利用 C 语言实现quot;通讯录管理系统quot;,直言太简单...
  4. python递归列文件_python-Bash:从最大列递归地向文件写入一行
  5. Net5 已经来临,让我来送你一个成功
  6. 在Spring MVC中,InternalResourceViewResolver做什么?
  7. 格式 数组的基本使用 0912
  8. iPhone 或将告别 3D Touch ?
  9. 天工软件在正射项目中的应用与常见问题解答
  10. Hi3518ev200使用HiTool下载程序
  11. Linux下如何解压.zip和.rar文件
  12. 白话大数据开发之Azkaban问题一
  13. photoshop发光线条教程集
  14. matlab信号内插,【 MATLAB 】MATLAB 实现模拟信号采样后的重建(三)应用三次样条函数spline实现内插...
  15. 人工智能入门(一) Torch基本使用
  16. 2021年全球无水氢氟酸收入大约3120.8百万美元,预计2028年达到3634.6百万美元
  17. 【微信小程序】---- redux 在原生微信小程序的使用实例
  18. Halcon学习(1)初识Halcon HDevelop
  19. TP框架 数据大批量导入数据库
  20. 2022CVPR云分享 | 清华大学四位讲者带你玩转计算机视觉

热门文章

  1. UNITY Destroy()和DestroyImadiate()都不会立即释放对象内存
  2. mapper中的CDATA标签的用法
  3. cobbler2.4.4部署vmware ESXI5.1
  4. Android中Context简介
  5. Linux初到者五个最易犯的错误
  6. [转]互联网产品经理必上的九个资讯+分析类网站
  7. zoj - 3502 Contest
  8. NYOJ 975 关于521
  9. NYOJ 847 S + T
  10. springboot基于全局异常处理的简单日志打印