视频分类/行为识别研究综述,从数据集到方法

2019 年 9 月 11 日

视频分类/行为识别研究综述,从数据集到方法


视频分类/行为识别是计算机视觉领域中非常有挑战性的课题,因为其不仅仅要分析目标体的空间信息,还要分析时间维度上的信息,如何更好的提取出空间-时间特征是问题的关键。本文总结了该领域的技术进展和相关数据集,技术进展从传统特征法到深度学习中的3DCNN,LSTM,Two-Stream等。


1 视频分类/行为识别问题



首先我们要明确这是一个什么问题,基于视频的行为识别包括两个主要问题,即行为定位和行为识别。行为定位即找到有行为的视频片段,与 2D 图像的目标定位任务相似。而行为识别即对该视频片段的行为进行分类识别,与 2D 图像的分类任务相似。


本文聚焦的是行为识别,即对整个视频输入序列进行视频分类,一般都是经过裁剪后的视频切片。接下来从数据集的发展,传统方法,深度学习方法几个方向进行总结。


2  视频分类/行为分析重要数据集


深度学习任务的提升往往伴随着数据集的发展,视频分类/行为识别相关的数据集非常多,这里先给大家介绍在论文评测中最常见的 3 个数据集。


2.1 HMDB-51


HMDB-51 共 51 个类别,6766 个短视频。


数据集地址:http://serre-lab.clps.brown.edu/resource/hmdb-a-large-human-motion-database/#dataset,发布于 2011 年。



数据来源非常广泛,包括电影,一些现有的公开数据集,YouTube 视频等。从中选择了 51 个类别,每一个类别包含 101 个以上视频。


分为 5 大类:


  • 常见的面部动作(smile,laugh,chew,talk)

  • 复杂的面部动作(smoke,eat,drink)

  • 常见的肢体动作(climb,dive,jump)

  • 复杂的肢体动作(brush hair,catch,draw sword)

  • 多人交互肢体动作(hug,kiss,shake hands)


下面是其中一些维度的统计,包括姿态,相机运动等。




51 个类别的展示如下:


2.2 UCF-101


UCF-101 共 101 个类别,13320 个短视频。数据集地址:https://www.crcv.ucf.edu/research/data-sets/human-actions/ucf101/,发布于 2012 年。



UCF-101 是目前动作类别数、样本数最多的数据集之一,包含 5 大类动作:人与物体互动、人体动作、人与人互动、乐器演奏、体育运动。总共包括在自然环境下 101 种人类动作,每一类由 25 个人做动作,每个人做 4-7 组,视频大小为 320×240。正因为类别众多加上在动作的采集上具有非常大的多样性,如相机运行、外观变化、姿态变化、物体比例变化、背景变化等等,所以也成为了当前难度最高的动作类数据集挑战之一。



各个类别的分布如上,相对还是比较均匀的,UCF-101 是视频分类/行为识别方法必须评测的标准。


2.3 Kinetics-700 dataset



Kinetics-700 dataset 被用于 ActivityNet 比赛,包含约 650000 个视频,700 个类别。


数据集地址:https://deepmind.com/research/open-source/open-source-datasets/kinetics/,发布于 2019 年。


ActivityNet 比赛始于 2016 的 CVPR,是与 ImageNet 齐名的在视频理解方面最重要的比赛。在这个比赛下的 Task A–Trimmed Action Recognition 比赛是一个视频分类比赛,2019 年的比赛使用 kinetics-700 数据集,在此之前还有 2017 年的 kinetics-400 和 2018 年的 kinetics-600。


数据集是 Google 的 deepmind 团队提供,每个类别至少 600 个视频以上,每段视频持续 10 秒左右,标注一个唯一的类别。行为主要分为三大类:人与物互动,比如演奏乐器;人人互动,比如握手、拥抱;运动等。即 person、person-person、person-object。


除了以上数据集,比较重要的还有 Sports-1M,YouTube-8M 等,篇幅所限,就不一一描述,大家可以参考文献[1]。



如果不能下载数据集,可以移步有三 AI 知识星球获取。


3  传统有监督特征提取方法


传统的方法通过提取关键点的特征来对视频进行描述,以时空关键点,密集轨迹方法等为代表。


3.1 时空关键点(space-time interest points)


基于时空关键点的核心思想是:视频图像中的关键点通常是在时空维度上发生强烈变化的数据,这些数据反应了目标运动的重要信息[2]。



比如一个人挥舞手掌,手掌一定会在前后帧中发生最大移动,其周围图像数据发生变化最大。而这个人的身体其他部位却变化很小,数据几乎保持不变。如果能将这个变化数据提取出来,并且进一步分析其位置信息,那么可以用于区分其他动作。


时空关键点的提取方法是对空间关键点方法的扩展,空间关键点的提取则是基于多尺度的图像表达,这里的时空关键点就是将 2D Harris 角点的检测方法拓展到了 3D,具体求解方法非常复杂读者需要自行了解,篇幅问题就不讲述了。


得到了这些点之后,基于点的一次到四次偏导数,组合成一个 34 维的特征向量,使用 k-means 对这些特征向量进行了聚类。


除了 harris,经典的 2D 描述子 SIFT 被拓展到 3D 空间[3],示意图如下:



上图从左至右分别展示了 2D SIFT 特征,多个时间片的 2D SIFT 特征,以及 3D SIFT 特征,后两者的区别在于计算区域的不同,3D SIFT 的每一个关键点包含 3 个值,幅度和两个角度:



统计关键点时空周围的梯度直方图就可以形成特征描述子,然后对所有的特征描述子进行 k-means 聚类,划分类别,形成词汇“word”。所有不同 word 就构成了一个 vocabulary,每个视频就可以通过出现在这个 vocabulary 中词汇的数量来进行描述,最后训练一个 SVM 或者感知器来进行动作识别。


除了以上的两种特征,还有 HOG3D 等,感兴趣的读者可以自行阅读。


3.2 密集轨迹(dense-trajectories)[4]


时空关键点是编码时空坐标中的视频信息,而轨迹法 iDT(improved Dense Trajectories)是另一种非常经典的方法,它追踪给定坐标图像沿时间的变化。


iDT 算法包含三个步骤:密集采样特征点,特征轨迹跟踪和基于轨迹的特征提取。



密集采样是对不同尺度下的图像进行规则采样,不过真正被用于跟踪等不是所有点,因为平滑区域的点没有跟踪意义,通过计算每个像素点自相关矩阵的特征值,并设置阈值去除低于阈值的特征点来实现这个选择。


对轨迹的追踪是通过光流,首先计算图像光流速率(ut, vt),然后通过这个速率来描述图像运动轨迹:



wt 是密集光流场,M 是中值滤波器,得到的一系列点形成了一个轨迹。由于轨迹会随着时间漂移,可能会从初始位置移动到很远的地方。所以论文对轨迹追踪距离做了限制,首先将帧数限制在 L 内,而且轨迹空间范围限制在 WxW 范围,如果被追踪点不在这个范围,就重新采样进行追踪,这样可以保证轨迹的密度不会稀疏。


除了轨迹形状特征,还提取了 HOG,HOF(histogram of flow)以及 MBH(motion boundary histogram)等特征。其中 HOG 特征计算的是灰度图像梯度的直方图,HOF 计算的是光流的直方图,MBH 计算的是光流梯度的直方图,也可以理解为在光流图像上计算的 HOG 特征,它反应了不同像素之间的相对运动。


以 HOG 特征为例,在一个长度为 L 的轨迹的各帧图像上取特征点周围大小为 N×N 的区域,将其在空间和时间上进行划分。假如空间划分为 22,时间划分为 3 份,bins 为 8,则 HOG 特征维度为 2238=96,HOF 特征和 MBH 特征计算类似。


提取出 HOG 等信息后,接下来具体的分类与上面基于时空关键点的方法类似,不再赘述。


4  深度学习方法


当前基于 CNN 的方法不需要手动提取特征,性能已经完全超越传统方法,以 3D 卷积,RNN/LSTM 时序模型,双流法等模型为代表。


4.1 3D 卷积[5]


视频相对于图像多出了一个维度,而 3D 卷积正好可以用于处理这个维度,因此也非常适合视频分类任务,缺点是计算量比较大,下图展示了一个简单的 3D 模型。



4.2 RNN/LSTM[6]


视频和语音信号都是时序信号,而 RNN 和 LSTM 正是处理时序信号的模型。如下图所示,通过 CNN 对每一个视频帧提取特征,使用 LSTM 建模时序关系。



4.3 双流法(two-stream)[7]


双流法包含两个通道,一个是 RGB 图像通道,用于建模空间信息。一个是光流通道,用于建模时序信息。两者联合训练,并进行信息融合。



双流模型是视频分类中非常重要的一类模型,在特征的融合方式,光流的提取等方向都有非常多的研究,关于更多模型的解读如果感兴趣可以移步有三 AI 知识星球中的模型结构 1000 变板块。



4.4 其他


关于各种视频分类的网络结构解读,有兴趣的同学可以到有三 AI 知识星球中进行阅读和后续学习。


5 总结


虽然在 UCF-101 数据集上评测指标已经达到了 98.5%,但是视频的分类目前远没有图像分类成熟,面临着巨大的类内方差,相机运动和背景干扰,数据不足等难题。


除了要解决以上难题外,有以下几个重要方向是值得研究的。


  • 多模态信息融合。即不只是采用图像信息,还可以融合语音等信息。

  • 多标签视频分类。与多标签图像分类类似,现实生活中的视频可能有多个标签。

  • 行为定位。一段视频中的行为有开始和结束,如何定位到真正有效的片段是之后的视频分类的重要前提。


参考文献


[1] Kong Y, Fu Y. Human action recognition and prediction: A survey[J]. arXiv preprint arXiv:1806.11230, 2018.


[2] Laptev I. On space-time interest points[J]. International journal of computer vision, 2005, 64(2-3): 107-123.


[3] Scovanner P, Ali S, Shah M. A 3-dimensional sift descriptor and its application to action recognition[C]//Proceedings of the 15th ACM international conference on Multimedia. ACM, 2007: 357-360.


[4] Wang H, Kläser A, Schmid C, et al. Dense trajectories and motion boundary descriptors for action recognition[J]. International journal of computer vision, 2013, 103(1): 60-79.


[5] Ji S, Xu W, Yang M, et al. 3D convolutional neural networks for human action recognition[J]. IEEE transactions on pattern analysis and machine intelligence, 2012, 35(1): 221-231.


[6] Donahue J, Anne Hendricks L, Guadarrama S, et al. Long-term recurrent convolutional networks for visual recognition and description[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2015: 2625-2634.


[7] Simonyan K, Zisserman A. Two-stream convolutional networks for action recognition in videos[C]//Advances in neural information processing systems. 2014: 568-576.


作者介绍


言有三,真名龙鹏,曾先后就职于奇虎 360AI 研究院、陌陌深度学习实验室,6 年多计算机视觉从业经验,拥有丰富的传统图像算法和深度学习图像项目经验,拥有技术公众号《有三 AI》,著有书籍《深度学习之图像识别:核心技术与案例实战》。


原文链接


https://mp.weixin.qq.com/s/CS4iAMprZizrXhpXDhySzg


2019 年 9 月 11 日 19:544643

评论

发布
暂无评论
发现更多内容

Code Review怎么做

胖鱼2号

LeetCode题解:102. 二叉树的层序遍历,递归,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

技术与思想:区块链的双重属性

CECBC区块链专委会

区块链 大数据

架构训练营-week4-学习总结

于成龙

架构 作业 互联网架构 架构训练营

区块链即将涌现更多典型落地应用

CECBC区块链专委会

区块链 落地应用

spring-boot-route(七)整合jdbcTemplate操作数据库

Java旅途

Java Spring Boot JDBC

《我想进大厂》之MQ夺命连环11问

艾小仙

kafka MQ 面试题 程序语言 面试求职

源码分析怎么做?

tison

源码分析

纸质书和书写的慢时代

boshi

随笔杂谈

手把手教你AspNetCore WebApi:Swagger(Api文档)

AI代笔

ASP.NET Core swagger web api

第一周-食堂就餐卡系统设计-UML设计

kawayi

在互联网站上怎么准确分辨别出MG平台真假VX(LGF7998)黑网的验证方法?

InfoQ_6b6a6317a692

makefile从入门到入门

MySQL从删库到跑路

c++ Linux 编译 makefile

架构师训练营第 1 期 - 第 4 周 - 学习总结

wgl

《统计学习基础:数据挖掘、推理和预测》-斯坦福大学人工智能学科专用教材

计算机与AI

中小企业如何启动产品科普直播?

boshi

内容 营销 直播 企业应用

手把手教你AspNetCore WebApi:增删改查

AI代笔

ASP.NET Core web api EF Core

阿里互联网神话,超级工程双十一如何打造终于开源了(共4篇)

小Q

学习 架构 面试 算法 阿里

架构师训练营第四周作业

邓昀垚

极客大学架构师训练营

我把这个贼好用的Excel导出工具开源了!!

冰河

Java Excel 冰河 mykit-excel

4 个问题图解浏览器垃圾回收的过程

Java架构师迁哥

「国庆」忆读书生涯

我是程序员小贱

美食 旅行

LeetCode题解:429. N叉树的层序遍历,递归,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

区块链更多典型落地应用即将涌现

CECBC区块链专委会

区块链 落地应用

中台: 54 天搞定中国百强企业的库存中心建设,而时间还能够再缩短至少一倍

日编一码

看了这篇网络编程,就可以和面试官聊聊了

Simon郎

网络编程 websocket Java 分布式

洞察:区块链的危机与契机

CECBC区块链专委会

比特币 区块链 数字货币

架构训练营-week4-作业

于成龙

作业 架构训练营

叹为观止!GitHub标星过万,腾讯技术官发布的“神仙文档”图解网络,简直是秋招福音

云流

程序员 互联网 网络通信协议 计算机知识

手把手教你AspNetCore WebApi:入门

AI代笔

ASP.NET Core web api

手把手教你锤面试官01——HashMap面试全攻略

慵懒的土拨鼠

java基础 面试求职

视频分类/行为识别研究综述,从数据集到方法-InfoQ