基于关节空时特征融合的人体行为识别

2020-02-08 04:11李洪奇赵艳红SikandarAli刘艳芳
计算机工程与设计 2020年1期
关键词:关节点集上人体

吕 洁,李洪奇,赵艳红,Sikandar Ali,刘艳芳

(1.中国石油大学(北京) 石油数据挖掘北京市重点实验室,北京 102249;2.中国石油大学(北京) 信息科学与工程学院,北京 102249)

0 引 言

人体行为识别属于智能监控中难度最大的核心模块,因此人体行为的分析识别研究已成为当务之急,对提升社区居民的生活质量起着积极作用。基于计算机视觉的人体行为识别是将包含人体行为动作的视频按照所属的类型加上相应的标签。如何获取有效的兴趣点或者兴趣区域来表征行为是基于机器视觉的人体行为识别的关键点;如何在存在遮挡等环境干扰的情况下进行有效的行为分类是基于机器视觉的人体行为识别的难点。根据行为表征的方式不同,人体行为识别研究可以分为两类:基于全局信息表征的人体行为识别[1,2]和基于特定信息表征的人体行为识别[3-6]。但是,智能监控系统中,通过监控视频获取人体的全局信息存在相当大的难度,基于特定信息表征的方法更适用。

1 相关研究

基于全局信息表征的人体行为识别方法通常采用全局特征来表征描述图像中的人体区域。Clawson等[1]将光流特征与一组人体运动特征相结合用于行为识别,Vishwakarma等[2]通过使用梯度的边缘空间分布以及像素的方向变化计算平均能量图像来表示人类行为活动,在低噪声环境下的效果较好,否则识别准确率就会明显下降。

基于特定信息表征的行为识别方法则是不需要提取人体全局特征,直接对局部兴趣特征进行分析。Mckenna等[3]提出使用空间时间兴趣点和定向梯度特征的直方图之间的融合识别一种攻击性的人类行为,分类精度值达到82.26%。Kim等[4]的方法创建一个行为模板集,其中包含具有缩放和旋转不变属性的加权人体关节数据,Mei等[5]根据空间的不变性,计算各个结构向量之间的关节角度的角速度,再通过支持向量机对关键帧进行分类,特征计算都较为复杂。Song等[6]提出了一个端到端的空间和时间关注模型,用于从骨架数据中识别人类行为。这种基于人体骨架信息的人体行为识别方法能够有效进行动作识别,但没有充分提取人体骨架运动信息。

综上所述,为了能更有效描述人体行为,同时解决实际场景中难以获取人体全局信息的问题,本文提出一种鲁棒的、将空域信息与时域信息相融合的人体行为描述方法,并使用KPCA-XGBoost分类器在公开的且具有挑战性的数据集上进行评估,算法流程如图1所示。

图1 算法流程

2 基于关节空时融合特征的人体行为表示

人体行为表征是人体行为识别的第一步也是至关重要的一步,有效的行为特征表示可以提升行为分类的准确性。常用的人体行为识别特征可分为两类:全局特征和局部特征。全局特征包括人体的边缘特征,剪影轮廓,光流信息等。全局特征信息含量丰富,但对环境噪声、视角变化以及遮挡非常敏感。局部特征则是提取人体相对独立的单元或者感兴趣部位的图像块(例如,人体关节)进行分析。局部特征不依赖底层的人体定位和分割,对噪声和遮挡都不敏感,但计算复杂度较高。考虑本研究是针对具有时序性的视频数据进行分析,在选择关节空域信息这种局部特征的同时,融合时域特征以获得更具区别度的特征向量,用于人体行为识别。

2.1 人体行为建模

人体骨架可由18个关键点表征,因此本文利用人体骨架信息对动作行为进行建模。图2(a)为18个关键点的分布图,自底向上依次为踝关节(节点10和13)、膝关节(节点9和12)、髋关节(节点8和11)、腕关节(节点4和7)、肘关节(节点3和6)、肩关节(节点2和5),节点0为鼻子所在位置,剩下的4个节点则表示眼睛和耳朵所在位置。

图2 人体主要关节及关键点

考虑到实际场景中眼睛和耳朵目标过小容易误检,同时降低特征的冗余度,本文选择前14个关节点作为人体行为的底层特征数据,对已切割的行为的动态过程建模,实现不同类别的行为识别。图2(b)为本文所观测的人体主要关节点的位置分布图。

2.2 空时融合特征

对于不同的行为动作,人体的各个关节位置以及相应的运动状态都各不相同,任何一种行为动作都是一个包含空间信息和时间信息的序列。在基于关节空域信息的人体行为识别过程中,每个行为均可表示为一个包含若干个人体关节点位置信息的序列,不同的行为具有不同的时域长度,故序列长度不尽相同。众所周知,人体的每一种行为都需要经历起承转合的不同阶段,每个阶段人体的关节点相对位置均不同,对于行为判别的重要程度也不同。据此本文使用固定长度为L的时间窗将所有的行为序列分成N个阶段,从中筛选出起始阶段、关键阶段、结束阶段。每个阶段称为一个状态(Stage),表示特定时间内的行为特征,则每个行为包含3个状态。每个关节点位置数据包含水平和竖直两个方向上的坐标信息(x,y),本文使用Pk代表第k个关节点的位置信息

Pk=[xk,yk]T

(1)

其中,k∈{0,1,2,…,13}。 对于任意阶段中的第i帧图像,人体行为的二维空域特征可表示为

Fi=[P0,P1,…,P13]T

(2)

其中,i∈{0,1,…,L}。 每个动作状态包含L帧图像,定义如下所示的状态矩阵表征在状态j下的行为空域特征

Sj=[F0,F1,…,FL]T

(3)

人体行为不仅可在时域上进行重要性划分,在空域上同样存在关键关节点集合。显然,一些行为只与人体的部分关节点组成的集合相关,这些特定关节点集合在行为动作发生期间的运动状态变化明显。图3是扔垃圾的行为分解图示。由图观察发现,扔垃圾的行为主要跟肩膀,手肘和手腕这些关节点组成的集合密切相关,这几处重要关节点在行为发生的不同阶段表现出不同的运动状态。因此,本文将人体关节的空域信息与时域信息相融合构建人体行为的空时融合特征用于人体行为识别,提高识别算法的准确率。

图3 扔垃圾行为分解

为了寻找出每个行为动作中最重要的关节点集合,在将行为分解为3个主要阶段的基础上,本文对每种状态下的连续L帧图像中的人体关节点求运动速度,将连续L帧的速度均值作为该状态下的各个关节点运动状态。因此,任意状态下的人体关节点运动状态可表示为

Vj=[v0,v1,v2,…,v13]T

(4)

将式(4)中的速度向量与式(3)中的行为空域特征进行融合,生成用于人体行为识别的空时融合特征。对于任意一种行为的任意一个状态,其空时融合特征Aj可表示为

Aj=[ST,VT]T

(5)

该融合特征亦可表示为

Aj=[F0,F1,…,FL,Vj]T

(6)

3 基于KPCA-XGBoost的人体行为分类

本文利用OpenPose[7]获取二维骨架信息作为人体行为识别的底层数据,通过上述的特征提取方法对该数据进行处理生成空时融合特征向量用于行为识别。显然,基于空时融合特征向量的人体行为识别问题对应于模式识别中最常见的多分类问题。考虑到本文提取的空时融合特征向量已经丢失掉成千上万的像素信息,因此使用机器学习的多分类算法即可解决,无需再使用端到端的复杂网络模型[8]。

3.1 特征分析

人体行为是一个包含若干个人体关节点位置信息的序列,兼具空间特征属性和时间特征属性。利用OpenPose[9]提取的关节点数据仅仅代表了每一帧图像中人体各个关节点在图像中所处的位置信息,缺乏时间属性,并且关节点数据存在稀疏问题,并不能直接表征人体行为。本文提出的空时融合特征向量是一个336维的高维向量,对高维数据进行迭代计算会增大距离计算难度,耗费大量的内存空间和时间开销,最终导致识别系统的实时性能降低,因此需要对数据做进一步的处理。图4中的图(a)和图(b)分别为数据样本点在二维空间和三维空间的分布图。本文通过对稀疏输入进行缩放操作来缓解样本数据的稀疏性问题、对缩放后的数据进行降维操作来缓解维数危机。

针对本文出现的特征数据维度过高的问题,我们尝试在实验过程中使用主成分分析(principal component analysis,PCA)对其进行维度缩减,图4(c)为进行PCA处理后的样本点分布图。

显然,对于表征人体行为特征的高维稀疏矩阵,PCA这样的线性数据处理方式找不到一个恰当的低维嵌入,需要进行非线性映射。图4(d)给出了经过核主成分分析(kernel principal component analysis,KPCA)处理后的样本点分布图。对于一个新样本x,利用核主成分分析将其投影到超平面W上,则其第j维坐标可表示为

(7)

3.2 XGBoost算法分类特征数据

在实践中使用的机器学习算法中,梯度树提升[10](gradient tree boosting,GTB)是一种在众多应用场景中都很流行的算法。XGBoost算法[11,12]是GTB算法的一种变体,它在GTB算法目标函数的基础上增加了对回归树复杂度进行惩罚的正则项,使得学习生成的模型更加不容易过拟合。对于稀疏数据的处理,XGBoost算法使用稀疏感知这种全新的树节点分裂方法较快地学习出默认的节点分裂方向。

结合本研究的实际情况,本文采用XGBoost算法作为人体行为识别系统中的分类算法,对坐下、扔垃圾、拿起这3种日常行为动作进行分类。根据此算法的分类结果,可以对上述3种行为动作进行有效识别。在利用KPCA算法对空时融合特征进行降维处理后,使用XGBoost算法对特征数据进行训练,生成分类模型对3种日常行为动作进行分类。

对于一个具有M个样本、N种属性、H个类别的数据集D={(X0,y0),(X1,y1),…,(XM,yM)}(Xj∈RN,yj∈{0,1,2,…,H}),XGBoost算法首先利用具有I棵树的集成树模型对该数据集建模,则模型的输出可表示为

(8)

图4 样本点空间分布

其中,G={g(X)=ωq(X)}(q∶RN→T,ω∈RT) 为回归树空间,q表示每棵树的结构,T表示树中叶子的数量。每个gi对应一个叶子权重为ω,树结构为q的独立分类树。为了学习得到模型中使用的函数集合,需最小化目标损失函数L

(9)

(10)

使用二阶泰勒展开式进行近似逼近

(11)

将式(11)中的常数项消除,对目标损失函数进行化简

(12)

令集合Sk={j|q(Xj)=k} 表示叶子节点k的实例集合,将目标函数中的正则化项展开,则目标函数可表示为

(13)

将树的结构q(x) 固定,可计算出权重更新值和损失函数值

(14)

4 实验结果分析与比较

4.1 数据集和实验设置

本文在以下两个数据集上进行实验:Multiview Action 3D[13]数据集以及NTU RGB+D[14]数据集。

Multiview Action 3D数据集(MA-3D):Multiview Action 3D数据集是用3台Kinect相机从不同角度拍摄的多视角三维事件数据集。该数据集包含拿起,丢弃垃圾,坐下,站起来等10种单人行为动作。每个动作分别由10位不同的人执行。图5(a)~图5(d)给出了几类行为的图像样本。

NTU RGB+D数据集(NTU):NTU RGB+D数据集是目前最大的行为识别数据集,共56 880个视频序列,包含60个类别的行为数据,例如举手、合掌等。该数据集可以分为Cross-Subject和Cross-View两部分,本文使用NTU Cross-View(NTU-CV)这部分。图5(e)~图5(h)给出了几类行为的图像样本。

图5 数据集中几种行为样图

实现细节:实验过程中,通过对数据集中的行为视频长度进行分析,本文采用时间长度为3的时间窗将行为动作过程分为3个阶段。因此,对于一个完整的人体行为视频,通过上述的特征提取方式可生成一个336维的特征向量,此向量同时包含了空域特征和时域特征。通过对比实验发现,对336维的原始特征数据进行L2范数正则化,可以突出部分特征,提高特征向量的辨识度,改善了实验结果。因此,实验中本文对提取的空时融合特征向量均进行L2范数正则化处理。

4.2 可视化空时融合特征

为了验证本文提出的空时融合特征的有效性和鲁棒性,我们分别在MA-3D和NTU-CV数据集上将其与利用OpenPose提取的原始数据进行对比,如图6和图7所示。根据特征可视化结果可以看出原始数据具有很大的相似性,区分力比较小。本文在MA-3D数据集上分别采用两种特征数据进行对比实验,发现基于空时融合特征的人体行为识别准确率更高,见表1。这是因为原始数据是由人体18个关键点位置信息组成的集合,而实际上在行为分类过程中使用的监督信息仅是一些核心关节点组成的子集,引入被不同行为所共有的特征数据会对实验造成干扰,降低行为间的区分度。与原始数据相比,空时融合特征数据突出了一个完整行为序列中的关键序列以及核心关节点集合,降低了数据冗余度的同时,提高了特征数据在不同类别间的辨识度。

图6 MA-3D数据集原始行为数据与空时融合特征数据可视化结果

图7 NTU数据集原始行为数据与空时融合特征数据可视化结果

表1 各种方法在MA-3D数据集上的实验结果比较

4.3 实验结果分析

为了验证KPCA-XGBoost识别算法的有效性,我们将本文所述的方法与其它基于人体骨架信息的行为识别算法相比较,表1和表2分别给出了在两种数据集上不同方法的表现。实验结果表明:在MA-3D数据集上,采用KPCA-XGBoost算法进行人体行为特征分类,准确率达到94.52%,优于Nguyen等[15]提出的PCA-SVM算法。在NTU-CV数据集上,与几种先进的行为识别算法相比,本文提出的行为特征分类算法亦表现更佳。

图8为在MA-3D数据集上采用KPCA-XGBoost算法对空时融合特征进行分类生成的混淆矩阵。从混淆矩阵可以发现,对于实验的3个行为类别,坐下的行为识别率最高,扔和捡两个行为的识别率稍差,二者容易混淆。实际上,“扔”和“捡”这两类动作的核心关节点组成的集合存在交集,3个主要行为阶段中的部分关节点运动状态非常相似,容易导致分类错误。

表2 各种方法在NTU-CV数据集上的实验结果比较

图8 本文方法在Multiview Action 3D数据库上的混淆矩阵

5 结束语

全面考虑实际场景中的行为识别问题,本文给出了基于人体骨架的空时特征融合方法,利用KPCA-XGBoost分类算法进行人体行为特征的分类。该方法与前人的算法对比表明,空时融合特征能更有效表征不同的行为序列,使用KPCA-XGBoost算法对该特征进行分类,在MA-3D数据集上准确率达到94.52%。该算法具有较低的时间复杂度以及较高的准确率,适用于实际场景中的单人行为识别。未来工作的方向是将尝试将此方法用于人体交互行为(例如,打架)识别上,使得该模型对于不同类别的人体行为泛化能力更强。

猜你喜欢
关节点集上人体
人体“修补匠”
人体冷知识(一)
基于深度学习和视觉检测的地铁违规行为预警系统研究与应用
关节点连接历史图与卷积神经网络结合的双人交互动作识别
Cookie-Cutter集上的Gibbs测度
链完备偏序集上广义向量均衡问题解映射的保序性
人体可笑堂
R语言在统计学教学中的运用
奇妙的人体止咳点
搞好新形势下军营美术活动需把握的关节点