基于可靠性评估的人体骨架重建方法的研究

2016-06-08 05:48战荫伟吴齐云
计算机应用与软件 2016年5期
关键词:关节点骨架姿势

蔡 俊 战荫伟 吴齐云

(广东工业大学计算机学院 广东 广州 510006)



基于可靠性评估的人体骨架重建方法的研究

蔡俊战荫伟吴齐云

(广东工业大学计算机学院广东 广州 510006)

摘要针对Kinect在跟踪有遮挡或噪声的人体骨架时会出现严重视觉误差的问题,提出一种基于可靠性评估的骨架重建新方法。首先设计一套测量方法,客观评估身体各个部分的可靠性程度,然后在数据库中查询并获得一组相似的姿势,结合主成分分析法构造一个自然姿势空间,最后合成自然的姿势。实验结果表明,与原始设备相比,该方法能够有效重建遮挡环境下质量低下的骨架,识别精度提高了17%至35%。

关键词Kinect可靠性评估主成分分析法骨架重建

0引言

Kinect是微软公司发布的一款体感设备[1,2],最初应用于XBOX360游戏机上,设备如图1所示。它能提供包括彩色视频流、深度数据流、音频数据流三类原数据,并能实现一系列新的技术,如深度传感、骨架追踪、语音识别等。

图1 Kinect设备图

近年来,基于Kinect体感设备的人体动作识别和重建在很多方面尤其是康复领域表现出很大的应用价值[3],由于它具有很好的成本优势和智能性,国内外很多机构都在开展相关研究。例如Shotton等人[4]通过 Kinect获得的深度图像检测人体的关节点,利用随机森林分类器将深度图像像素分类为身体的多个部位;Schwarz等人[5]利用Kinect并结合人体解剖学标记和人体骨架模型,利用测地距离来测量身体部位之间的距离,从而进行人体全身的姿势估计;Kim等人[6]利用Kinect的深度数据来进行物体表面的实时三维重建。张毅等人[7]基于改进朴素贝叶斯分类器的方法,利用动作识别选择机制来提升康复训练动作的识别率。这些方法都在一定程度上实现了姿势估计或者识别,但是对于跟踪有遮挡或噪声的人体骨架的情况却鲜有研究。

在我们以前的工作中,已经可以利用Kinect基于角度测量进行人体姿势识别[8],当Kinect与外部用户进行交互时,它的红外传感器需要跟踪用户身体的每个部分,为了达到较高的识别精确度,这种方法要求用户面对设备并没有任何遮挡。一旦被遮挡,Kinect将无法追踪到准确的关节点,导致某些身体部分的不稳定,从而使用这样的姿势构建虚拟角色与应用程序进行交互时,将导致严重的失真。为了解决这个问题,Hubert等人[9]通过创建运动数据库,采用PD控制器来重建运动缺陷的姿势。这种方法在小范围遮挡的情况下能够取得较好效果,但在用户身体被大范围遮挡时仍会产生较大误差。

一个优秀的Kinect应用方案不仅需要设备在无噪声的情况下有很好的识别效果,更需要在有遮挡有噪声的环境下仍能达到很高的识别精度。为了达到这个目的,本文提出了一种基于可靠性评估的人体骨骼重建方法,创新性地通过可靠性评估和运动数据库来重建有缺陷的骨架姿势:首先,在获取用户骨架后计算运动的可靠性值并把他作为权重,然后在运动数据库中提取类似的姿势,结合主成分分析法构建一个满足运动学约束的自然姿势空间,最后合成自然准确的骨架。实验表明,当被不同程度的遮挡时,基于可靠性评估的骨骼重建方法仍能重建质量较高的运动骨架。

1相关知识

1.1设备介绍

Kinect由RGB彩色摄像头、红外线发射器、红外线接收器、转动马达和一排四元线性麦克风阵列组成,它的RGB相机最大分辨率为1280×960,红外相机最大分辨率为640×480。深度相机采集深度信息的最大范围为0.4~8米,有默认和近景两种工作模式。其中,在默认模式下,深度相机可采集范围为0.8~4米,但在0.4~0.8米和4~8米范围内数据精度不高,近景模式下深度相机可以准确采集0.4~3米范围内的深度数据。

1.2主成分分析法(PCA)

主成分分析法算法是模式识别中一个比较成熟的算法,它的主要思想是,在多维空间模型中,为了实现提取海量数据的特征,用样本的位置信息作为参数输入判别式,从而得到一个矢量值,使方差最大化。

定义准则函数式:

J(X)=XTStX

(1)

选取一组标准正交向量X1,…,Xd作为投影轴,使式(1)达到极值,使投影后所得特征的总体散布量最大[10]。

2方法流程与实现

本文姿势重建方法主要由骨架获取、运动可靠性评估、利用主成分分析法构造自然姿势空间、骨架合成等几个部分组成。

2.1骨架获取

图2 人体骨架关节点

首先,Kinect的红外线摄像头透过透明介质向外发出红外线,红外线在三维场景中形成激光散斑。然后,红外线接收器拍摄散斑图像并进行编码,感应器读取编码光线,生成深度图像[11]。利用获取到的深度图像,Kinect可以得到人体的20个骨骼关节点的三维坐标,最后根据所有关节点来生成一套骨架系统,图2为人体的骨架关节点图。

2.2可靠性评估

可靠性评估是指客观评估身体各部分的稳定性和可靠性,包括行为有效性、骨架可靠性、跟踪状态可靠性三个方面。

2.2.1行为可靠性

行为有效性是指用户运动行为的正确性。当用户身体部分被挡住时,Kinect获得的深度图像会错误识别身体部分,从而无法得到用户身体部分的准确位置。由于缺乏预期的目标特征,未进行可靠性评估的方法识别出的位置非常不稳定[11]。所以,方法首先应该衡量用户行为的可靠性。

假设pi(f)、pi(f+1)、pi(f+2)是三维空间里的用户被跟踪身体部分i的连续三帧,则位移向量的计算公式为:

di(f)=pi(f+1)-pi(f)

(2)

di(f+1)=pi(f+2)-pi(f+1)

(3)

两向量之间的夹角可以由它们的点积计算:

(4)

其中,dmin是可接受位移大小的最小值,当身体部分基本稳定时,它将不会有大的角度变化。

人体行为,可以看成一连串的运动序列,可靠性定义为:

(5)

其中,Rbi(f)∈[0,1],fb是检测到运动帧数的总数量,θf是每帧可接受的旋转角度,θr是每帧不可接受的最小旋转角度,经多次实验证明,当fb=3、θf=90°、θr=135°时,效果比较好。

2.2.2骨架可靠性

骨架可靠性是指骨架姿势的正确性。当Kinect捕获身体姿势时,不同身体大小的用户的骨架尺寸是不同的。我们定义两个参考姿势,一个T型姿势,另一个标准站立的姿势。根据骨架结构,身体的每个部分可以连接到其他多个部分。假设身体部分i共连接到st个其他部分,对于每一个连接段s,在第f帧的差异率可以计算为:

(6)

其中,lc是相关骨架部分的长度,ls(f)是第f帧中s段骨架的当前长度。

身体部分的骨架可靠性是所有连接部分不同比例的平均段,定义为:

(7)

其中,Rki(f)∈[0,1]。

2.2.3跟踪状态可靠性

跟踪状态可靠性指设备是否跟踪到用户的身体部分,定义为:

(8)

2.2.4可靠率

通过以上评估得到的行为、骨架和跟踪状态的可靠性,不同身体部分的可靠率可以定义为:

(9)

其中,Ri∈[0,1],ftotal表示总帧数,ω(f)是f帧的高斯权重,Rbi(f)、Rki(f)、Rti(f)分别表示行为有效性、骨架可靠性和跟踪状态可靠性。可靠率的意思是当身体部分没有被跟踪检测时,它提取相邻几帧可靠的数据来进行重建,从而提高了识别的精确度。

2.3运动数据库

进行人体骨架重建时需要构建一个自然姿势空间,这就需要构建一个运动数据库。构建数据库可以使用传统的光学捕捉系统来捕获合适的运动动作,剔除相似的姿势,除了可以提高运行效率,还可以控制姿势空间样本的密度。本文使用的运动数据库来自于卡梅隆大学(CMU)的图形实验室[12],运动数据的格式有ASF-AMC、HTR、BVH等。本文主要采用ASF-AMC数据格式,因为此格式数据可以修改骨骼模型的运动数据,有利于本文研究。

2.4PCA法构建姿势空间

由于运动数据之间具有关联性,若只提取关键帧信息会在一定程度上丢失某些运动数据的信息,从而导致失真。本文采用主成分分析法(PCA)来对我们的运动数据进行降维。在数据库中使用K邻域搜索来找到相似姿势,不同姿势函数被定义为:

(10)

2.5骨架合成

人体姿势合成的重点是通过Kinect获得的低维控制信号和数据库中提取的数据姿势{p1,p2,…,pn}并结合前面t-1帧{p1,p2,…,pt-1}生成t时刻的运动姿势pt。为了重建用户骨架信息,本文使用局部线性模型作为一个强制性的约束,并且利用平滑项优化处于低维空间wt的当前动作pt,最后通过人体姿势平滑、控制等手段对局部线性模型进行优化。

平滑项测量将pt排在[p1,p2,…,pt-1]之后,保证了合成运动姿势的连续性。假设t时刻的动作只和t-1,t-2时刻的动作有关,公式为:

Es=(pt-2pt-1+pt-2)2

(11)

其中,qt-1和qt-2为前两帧生成的动作。

当前帧计算的标记位置与当前帧捕获的标记位置的偏差即为控制项测量:

Ec=D(px,pk)

(12)

为了使合成的姿势满足运动学约束,我们在数据库中使用的骨骼大小应与标准体型类似,因此:

(13)

最后,合成连续的身体姿势,定义为:

(14)

为了优化目标姿势,在自然姿势空间里随机选取一定数量的潜在姿势样本进行迭代,每一个样本的最终结果为各能量条件的加权总和。

E=ωcEm+ωsEs+ωkEk

(15)

其中,ωc、ωs、ωs表示权重,分别设置为1.0、0.5、1.5。

3实验与结果分析

本文利用VS2010平台结合Microsoft Kinect SDK 1.8来进行动作仿真,仅使用原始设备进行实验,当身体被不同物体遮挡时,效果如图3-图5所示。

图3 身体被书本遮挡骨骼识别图(小范围)    图4 身体被椅子遮挡骨骼识别图(中范围)

图5 身体被衣服遮挡骨骼识别图(大范围)

实验图中,灰点为Kinect跟踪正确的点,白点为跟踪错误的点。从图可以看出,当身体部分被不同程度的遮挡物遮挡时,Kinect都有识别错误的关节点,遮挡范围越大,识别错误的关节点越多,导致形成了严重错误的骨架信息。

使用本文方法后,由于增加了可靠性评估等相关步骤,识别精度有明显提高,实验效果如图6-图8所示。

图6 身体被书本遮挡骨骼识别图(小范围)    图7 身体被椅子遮挡骨骼识别图(中范围)

图8 身体被衣服遮挡骨骼识别图(大范围)

从图中可以看出,基于可靠性评估进行骨架重建,识别准确度有明显提高,即使人体被遮挡住大部分下半身,Kinect仍能检测到人体准确的关节点位置信息,仅有个别关节点识别错误。

为验证实验的准确性,本文选取了10个测试者,要求测试者面对Kinect设备,距离在2米左右,对以上三组遮挡情况进行测试。识别率为识别正确的点占总关节点数的比例。方法一为文献[9]的重建方法,方法二为本文的重建方法,由实验得知,仅使用原始设备进行骨架跟踪时,识别率在48%到81%之间,采用文献[9]的方法识别率在63%到96%之间,而本文方法的识别率在94%至98%之间。尤其当遮挡范围较大时,由于增加了运动可靠性的评估步骤,本文方法比文献方法识别率更高,能达到理想的效果。

图9 三种方法识别率示意图

4结语

为解决Kinect传感器在有遮挡或噪声情况下识别精确度不高的问题,本文提出一种基于可靠性评估的骨骼重建方法。该方法创新性地基于可靠性评估并利用运动数据库自动重建有缺陷的骨架信息。首先,该方法评估身体每个部分的可靠性程度,然后通过一个运行的数据库创建一个自然姿态空间来合成有效的姿势。实验结果表明,此方法能够大幅提高Kinect在遮挡情况下骨架关节点的识别精度,准确度较高。下一步的工作重点将是如何结合虚拟角色进一步提高姿势重建准确度和运行速率,同时Kinect还提供了语音识别等其他方式,结合多种方式进行识别和重建,相信其准确性会大幅提高,从而提供更好更自然的交互方式。

参考文献

[1] 余涛.Kinect应用开发实战:用最自然的方式与机器对话[M].北京:机械工业出版社,2012.

[2] Webb J,Ashley J.Beginning Kinect Programming with the Microsoft Kinect SDK[M].Apress,2012.

[3] 丁晨,王君泽,瞿畅,等.Kinect体感交互技术及其在医疗康复领域的应用[J].中国康复理论与实践,2013,19(2):136-138.

[4] Hu R Z L,Hartfiel A,Tung J,et al.3D Pose tracking of walker users’ lower limb with a structured-light camera on a moving platform[C]//Computer Vision and Pattern Recognition Workshops,2011:29-36.

[5] Schwarz L A,Mkhitaryan A,Mateus D,et al.Human skeleton tracking from depth data using geodesic distances and optical flow[J].Image and Vision Computing,2012,30(3):217-226.

[6] Shahram Izadi,David Kim,Otmar Hilliges,et al.KinectFusion:Real-time 3D reconstruction and interaction using a moving depth camera[C]//Proc. ACM Symposium on User Interface Software.Technology,2011:559-568.

[7] 张毅,黄聪,罗元.基于改进朴素贝叶斯分类器的康复训练行为识别方法[J].计算机应用,2013,33(11):3187-3189.

[8] 战荫伟,于芝枝,蔡俊.基于Kinect角度测量的姿势识别算法[J].传感器与微系统,2014,33(7):129-132.

[9] Shum H P H,Ho E S L.Real-time physical modeling of character movements with Microsoft Kinect[C]//Proc.ACM Symposium on Virtual Reality Software Technology.(VRST),2012:17-24.

[10] Duda R,Hart P.Pattern classification and scene analysis[M].Wiley,New York,1973.

[11] John Stowers,Michacl Haycs.Quadrotor Helicopter Flight Control Using Hough Transform Depth Map from a Microsoft Kinect Sensor[C]//Conference on Machine Vision Applications(MVA),2011:13-15.

[12] Shotton J,Fitzgibbon A,Cook M,et al.Real-time human pose recognition in parts from single depth images[C]//2011 IEEE Conference on Computer Vision and Pattern Recognition(CVPR),2011:1297-1304.

[13] http://mocap.cs.cmu.edu/.

ON HUMAN SKELETON RECONSTRUCTION BASED ON RELIABILITY EVALUATION

Cai JunZhan YinweiWu Qiyun

(FacultyofComputer,GuangdongUniversityofTechnology,Guangzhou510006,Guangdong,China)

AbstractConcerning the problem that it will cause severe visual error when the Kinect is tracking the human skeleton with occlusion or noise, we proposed a new skeleton reconstruction method which is based on reliability evaluation. First, we designed a set of measurement methods to objectively evaluate the reliability degree of each part of the body. Then we queried in database and obtained a group of similar postures, and constructed a natural postures space in combination with PCA. Finally, we synthesised the natural posture. Experimental result showed that compared with primitive equipments, this method could effectively reconstruct the skeleton with poor quality in occluded environment, and the recognition accuracy was improved by 17% to 35%.

KeywordsKinectReliability evaluationPrincipal component analysis (PCA)Skeleton reconstruction

收稿日期:2014-12-30。广州市科技计划项目(132000785)。蔡俊,硕士生,主研领域:人机互换。战荫伟,教授。吴齐云,硕士生。

中图分类号TP3

文献标识码A

DOI:10.3969/j.issn.1000-386x.2016.05.036

猜你喜欢
关节点骨架姿势
浅谈管状骨架喷涂方法
基于深度学习和视觉检测的地铁违规行为预警系统研究与应用
关节点连接历史图与卷积神经网络结合的双人交互动作识别
倒挂在树上,我的主要姿势
看书的姿势
骨架密度对炭/炭多孔骨架压力浸渗铜的影响
解锁咳嗽的正确姿势
搞好新形势下军营美术活动需把握的关节点
RGBD人体行为识别中的自适应特征选择方法
内支撑骨架封抽技术在突出煤层瓦斯抽采中的应用