一、什么是视频行为分析?
基于视频的行为识别包括两个主要问题,即行为定位和行为识别。行为定位即找到有行为的视频片段,与2D图像的目标定位任务相似。而行为识别即对该视频片段的行为进行分类识别,与2D图像的分类任务相似。
这里有一些概念要区分开
1.Hand gesture, Action, Activity
Hand gesture:集中于处理视频片段中单人的手势
Action:短时间的行为动作,场景往往是短视频片段的单人行为,比如Throw,catch,clap等
Activity:持续时间较长的行为,场景往往是较长视频中的单人或多人行为,例如Reading a book,making a phone call, eating, talking to each other, hugging,palying basketball等
这里提一句,Action和Activity的主要区别在于Action是指动作,Activity是指行为,可以认为Action的粒度更细,而Activity的粒度更粗,也可以说Action是Activity的子集。但其实在实际的算法中,有时候也没必要将二者完全区分开。
2.Classification,Detection
Classification:给定预先裁剪好的视频片段,预测其所属的行为类别
Detection:视频是未经过裁剪的,需要先进行人的检测where和行为定位(分析行为的始末时间)when,再进行行为的分类what。
我们这里所涉及到的行为识别Action Recignition可能是Hand gesture/Action/Activity和Classification/Detection任意组合情况,不做太绝对的区分。但是通常所说的行为识别更偏向于对时域预先分割好的序列进行行为动作的分类,即 Trimmed Video Action Classification。
二、视频行为分析常用的数据集
1、HMDB-51
51个类别,6766个短视频
2、UCF=101
101个类别,13320个短视频
目前动作类别数、样本数最多的数据集之一
3、Kinetics-700 dataset
650000个视频,700个类别。
2019年的数据集
三、传统方法
传统的方法通过提取关键点的特征来对视频进行描述,以时空关键点,密集轨迹方法等为代表。
在传统的行为识别模型中,通常都是先提取手工特征(HOG,HOF,Dense Trajectories等),然后使用分类器进行分类,iDT是传统方法中最经典、最优的模型,iDT的主要论文包括《Dense Trajectories and Motion Boundary Descriptors for Action Recognition》和《Action Recognition with Improved Trajectories》。
1、时空关键点(space-time interest points)
基于时空关键点的核心思想是:视频图像中的关键点通常是在时空维度上发生强烈变化的数据,这些数据反应了目标运动的重要信息。
比如一个人挥舞手掌,手掌一定会在前后帧中发生最大移动,其周围图像数据发生变化最大。而这个人的身体其他部位却变化很小,数据几乎保持不变。如果能将这个变化数据提取出来,并且进一步分析其位置信息,那么可以用于区分其他动作。
时空关键点的提取方法是对空间关键点方法的扩展,空间关键点的提取则是基于多尺度的图像表达,这里的时空关键点就是将2D Harris角点的检测方法拓展到了3D。
得到了这些点之后,基于点的一次到四次偏导数,组合成一个34维的特征向量,使用k-means对这些特征向量进行了聚类。
除了harris,经典的2D描述子SIFT被拓展到3D空间,示意图如下:
2D-sift+3D-sift.png
上图从左至右分别展示了2D SIFT特征,多个时间片的2D SIFT特征,以及3D SIFT特征,后两者的区别在于计算区域的不同,3D SIFT的每一个关键点包含3个值(幅度和2个角度)
统计关键点时空周围的梯度直方图就可以形成特征描述子,然后对所有的特征描述子进行k-means聚类,划分类别,形成词汇“word”。所有不同word就构成了一个vocabulary,每个视频就可以通过出现在这个vocabulary中词汇的数量来进行描述,最后训练一个SVM或者感知器来进行动作识别。
除了以上的两种特征,还有HOG3D等特征生成方法
2、密集轨迹(dense-trajectories)
时空关键点是编码时空坐标中的视频信息,而轨迹法iDT(improved Dense Trajectories)是另一种非常经典的方法,它追踪给定坐标图像沿时间的变化。
DT、iDT算法包含三个步骤:密集采样特征点,特征轨迹跟踪和基于轨迹的特征提取,后续再进行特征编码和分类。
密集采样是对不同尺度下的图像进行规则采样,不过真正被用于跟踪等不是所有点,因为平滑区域的点没有跟踪意义,通过计算每个像素点自相关矩阵的特征值,并设置阈值去除低于阈值的特征点来实现这个选择。
对轨迹的追踪是通过光流,首先计算图像光流速率(ut, vt),然后通过这个速率来描述图像运动轨迹:
image.png
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等信息后,接下来具体的分类与上面基于时空关键点的方法类似,不再赘述。
四、视频行为识别深度学习方法
当前基于CNN的方法不需要手动提取特征,性能已经完全超越传统方法,以3D卷积,RNN/LSTM时序模型,双流法等模型为代表。
1、3D卷积
有直接用2D卷积的方法,还有一些3D卷积的方法,比如早期的C3D(这个工作就是把二维卷积推广到三维。把VGG的网络中33的卷积核变成了33*3), res-C3D等等,还有2D和3D结合的ECO等等。
视频相对于图像多出了一个维度,而3D卷积正好可以用于处理这个维度,因此也非常适合视频分类任务,缺点是计算量比较大,下图展示了一个简单的3D模型。
image.png
2、RNN/LSTM
有利用逐帧的RGB,抽特征,输入到RNN里的分类,也有抽取姿态,再用RNN分类的方法。
image.png
在序列建模的时候,视频是分段的,不同段有各自不同的语义,一个工作叫Deep Segmental Model,就是把视频分成很多段,针对每一段抽取特征,当然该工作也注意到很重要的一点:不同段的特征的重要性是不一样的,然后需要把重要性考虑到识别模型。
Deep Segmental Network.png
下面的工作把TSN网络推广到弱监督的识别和检测,视频中许多时间段并不包括我们感兴趣的行为,这个方法把注意机制用于非截断视频行为的识别与检测。
UntrimmedNet.png
视频和语音信号都是时序信号,而RNN和LSTM正是处理时序信号的模型。如下图所示,通过CNN对每一个视频帧提取特征,使用LSTM建模时序关系。
image.png
3、双流法(two-stream)
结合2D/3D卷积与光流,2D卷积捕捉一些appearance,3D卷积捕捉appearance和时序的关系,光流主要捕捉运动和时序的变化,这里面I3D比较典型。
image.png
双流法包含两个通道,一个是RGB图像通道,用于建模空间信息。一个是光流通道,用于建模时序信息。两者联合训练,并进行信息融合。
image.png
双流模型是视频分类中非常重要的一类模型,在特征的融合方式,光流的提取等方向都有非常多的研究,关于更多模型的解读如果感兴趣可以移步有三AI知识星球中的模型结构1000变板块。
4、非端到端方法
先做分割,之后提取出关键点或指标,再依靠关键点序列或指标序列做分类。
5、基于轨迹的方法
深度学习以前的SOTA就是基于轨迹的iDT方法,最近一个比较典型的是商汤出的一篇基于deformable 卷积和轨迹的方法。
通过光流跟踪的运动轨迹,使用运动轨迹的好处是,可以比较好的在运动比较显著的区域进行特征的集中提取,然后对传统方法沿着运动轨迹提取的一些卷积特征做下采样操作
image.png
image.png
image.png
处理视频的时候数据量比较大,但很多视频应用对实时性有要求。提出了一种用运动向量代替光流的方法,运动向量只存在于压缩视频MPEG或者h.264中,无需计算就可获得;当然直接用运动向量会造成识别率很大的降低。事实上,该文章是把光流训练出来的网络作为一个老师来教运动向量的网络。通过这样的方法,在识别率没有下降太大的情况下,可以每秒钟用GPU做到400帧,也就是使用一个GPU可以支撑大概10路视频。
image.png
6、skeleton-based
包含ST-NBNN,Deformable Pose Traversal Convolution,以及最近比较火热的图卷积方法(例如ST-GCN)
ST-NBNN:Spatio-Temporal Naive-Bayes Nearest-Neighbor (ST-NBNN) for Skeleton-Based Action Recognition 2017cvpr
Deformable pose traversal convolution+LSTM:Deformable Pose Traversal Convolution for 3D Action and Gesture Recognition 2018ECCV
ST-GCN:Spatial Temporal Graph Convolutional Networks for Skeleton Based Action Recognition AAAI2018
五、视频行为检测传统方法
较早的时候,就是伯克利的一个组把RCNN也运用到视频检测中,通过动态规划的方法把RCNN检测的框连接起来。
image.png
后面,法国国家信息与自动化研究所(INRIA)改进了这个工作,一个是改进了提proposal的方法,另外一个是加了跟踪的环节。
image.png
后面又有研究人员把时空的特征联合起来形成proposal,在跟踪的时候还加入了一些框的合并机制来进一步提高精度。
image.png
17年的一个工作是,香港中文大学研究组将视频的结构信息,以及上下文信息用到行为的检测中去,取得了很好的效果。
image.png
六、一些具体的工作介绍
基于LSTMs的无监督学习视频表征(ICML 2015)
摘要:本文主要研究利用LSTM来学习视频的表征,利用LSTM Encoder将输入的视频序列映射到一个固定长度的表征,然后利用单层/多层的LSTM Decoder对得到的表征进行解码,以应用到各种不同的任务当中,例如重构输入视频序列或者预测未来的视频序列。本文主要在两种输入序列上进行了实验,其一是图像像素组成的视频帧patch序列,其二则是视频帧通过预训练的卷积神经网络得到的高阶表征。本文探索了各种不同的网络设计方法,例如LSTM Decoder是否应以生成的输出为条件,同时通过定性分析的方法探索了模型如何利用学习到的视频表征来推断过往/未来视频帧。同时,本文尝试对学习到的表征进行可视化分析和解释,并且利用更长时长的视频和领域外的数据对模型进行压力测试。同时本文通过对表征模型进行微调,应用到监督学习任务--human action recognition on UCF101/HMDB-51数据集当中,通过实验证明,表征学习可以提升分类的准确率,特别是当用于监督学习任务的样本很少的时候,即便模型在关联性不大的数据集(YouTube视频)上面进行预训练也能提升动作识别的表现。
《SlowFast Networks for Video Recognition(ICCV 2019)
摘要:我们提出了SlowFast网络用于视频识别,我们的模型包含两部分
(1)一个低帧率运行的Slow pathway,用来捕获空间语义信息。
(2)一个高帧率运行的Fast pathway,以精细的时间分辨率捕获运动信息。
通过减少通道容量把Fast pathway设计的非常轻量级,但可以学习到有用的时域信息用于视频识别。我们的模型在视频action classification和detection上都取得了strong表现,且我们的SlowFast概念明确指出了重大改进之处。我们的模型在主要的视频识别benchmarks(包括Kinetics, Charades和AVA)上都取去了SOTA精度。代码开源~
七、总结
image.png1、RGB行为识别目前的主流基本上就是Two-Stream和3D conv的方法
2、虽然在UCF-101数据集上评测指标已经达到了98.5%,但是视频的分类目前远没有图像分类成熟,面临着巨大的类内方差,相机运动和背景干扰,数据不足等难题。
1、多模态信息融合。即不只是采用图像信息,还可以融合语音等信息。
2、多标签视频分类。与多标签图像分类类似,现实生活中的视频可能有多个标签。
3、行为定位。一段视频中的行为有开始和结束,如何定位到真正有效的片段是之后的视频分类的重要前提。
八、附录
附录-术语表
Video classification:视频分类
Video captioning:视频描述生成
Clip:片段
Volume:域
Frame:帧
spatial-temporal:时空
sequence:序列
appearance:表观
video representations:视频描述
feature representation:特征描述
descriptor:描述符
frame-level:帧层
video-level:视频层
segmentation:分割
hand-crafted feature:人工设计的特征
state-of-the-art:最高水平
off-the-shelf:现有
Untrimmed Video Classification:videos can
contain more than one activity 暂未找到合适的中译文
Trimmed Activity Classification:a trimmed video
clip that contains a single activity instance暂未找到合适的中译文
图像表示:Image Representation
运动检测与跟踪:Motion Detection and Tracking
边缘:edge
图像分割:Image segmentation
纹理特征提取:feature extraction
局部特征:local features
人工标注:Ground-truth
自动标注:Automatic Annotation
运动检测与跟踪:Motion Detection and Tracking
九、参考:
https://zhuanlan.zhihu.com/p/79521655
https://zhuanlan.zhihu.com/p/27415472 https://zhuanlan.zhihu.com/p/103566134
https://zhuanlan.zhihu.com/p/28179049
对目前网上的资料的汇总,如有侵权,非常抱歉,私聊修改。
网友评论