基于Kinect的人体动作识别算法制造技术

技术编号:16233567 阅读:55 留言:0更新日期:2017-09-19 14:54
基于Kinect的人体动作识别算法,首先,读取kinect传来的人体骨骼数据,获取人体20个关节点的三维图像坐标并将其转化为世界坐标,其次,对人体20个关节点的世界坐标进行滤波,然后对滤波后的关节点坐标进行特征提取,得到关节点坐标向量所成的角度特征,最后,制作人体标准动作模板并输入到TXT文本中,然后根据当前采集的角度特征与标准动作模板进行匹配,实现对人体动作的识别,能够实现对人体动作的识别,降低人体动作识算法的复杂度,提高动作的识别率和识别速度,具有识别快速、准确、算法简单的特点。

Human action recognition algorithm based on Kinect

Human action recognition algorithm based on Kinect, first of all, read human bone data from Kinect, the three-dimensional images of 20 coordinates of the body joints and transformed into world coordinates, secondly, the world coordinates of the 20 joints of the human body is filtered, then the coordinates of joints after filtering and feature extraction are characteristics of joint coordinate vector angles finally, making human standard action template and input to the TXT text, and then, according to the current collection point features and standard action template to achieve recognition of human action, to achieve the recognition of human action, reduce the human action recognition algorithm complexity, improve action the recognition rate and recognition speed, has the characteristics of quick and accurate identification, simple algorithm.

【技术实现步骤摘要】
基于Kinect的人体动作识别算法
本专利技术涉及人体动作识别
,特别涉及一种基于Kinect的人体动作识别算法。
技术介绍
已知的人机交互体验包括声音交互、脑电波交互、人体肢体姿态交互、手势交互等。人体动作识别的研究在计算机视觉、人工智能等领域都具有重要意义,而人体动作识别面临的主要问题是动作的多变性和时空的复杂性。随着动作数量的增加,误识别问题也会凸显。目前,可通过穿戴式传感器,如陀螺仪、加速度传感器等,采集人体运动参数对人体动作进行识别,这种方法准确性、实时性高,但附着传感器使穿戴者舒适感降低。在基于计算机视觉的方法中,当前的研究主要是基于2D视觉的动作识别,而系统受到计算机图像处理能力的极大制约,特别是实时图像处理,会受到光照、遮蔽、阴影等因素的制约,对最终的识别结果造成影响。
技术实现思路
为了克服上述现有技术的缺点,本专利技术的目的在于提供一种基于Kinect的人体动作识别算法,能够实现对人体动作的识别,降低人体动作识算法的复杂度,提高动作的识别率和识别速度,具有识别快速、准确、算法简单的特点。为了达到上述目的,本专利技术采取的技术方案为:基于Kinect的人体动作识别算法,步骤如下:首先,通过Kinect骨架追踪技术,采用基于Java的Processing开发环境来读取kinect传来的人体骨骼数据,获取人体20个关节点的三维图像坐标并将其转化为世界坐标;其次,采用加权递推平均滤波算法对人体20个关节点的世界坐标进行滤波,去除世界坐标的波动,然后对滤波后的关节点坐标进行特征提取,得到关节点坐标向量所成的角度特征;最后,制作人体标准动作模板并输入到TXT文本中,然后根据当前采集的角度特征与标准动作模板进行匹配实现对人体动作的识别。所述人体20个关节点具体为:头部、颈部、脊柱、左肩、左肘、左手腕、左手、臀部、左臀部、左膝盖、左脚腕、左脚、右肩、右肘、右手腕、右手、右臀部、右膝盖、右脚腕、右脚。所述将三维图像坐标换算为世界坐标的具体步骤为:根据如下变换公式将三维图像坐标(ximage,yimage,zimage)转化为世界坐标(xworld,yworld,zworld):其中,Kinect的分辨率W×H为640×480;h=3.5×10-4rad,K=12.36cm,L=1.18rad,O=3.7cm,D′=-10,F=0.0021。所述进行特征提取以得到关节点坐标向量所成的角度特征的具体操作步骤为:先由三维世界坐标计算出某一个关节点与两个相邻关节点之间的向量,分别用Vi、Vj表示,然后根据三维向量角度计算公式计算角度特征,Vi与Vj之间的夹角θi-j可以表示为:则角度θi-j就是当前某一个关节点的角度特征,依次对整个人体关节点的角度特征进行提取。所述关节点之间的向量具体为:上半身需要计算九个向量,分别是:头部到颈部、颈部到脊柱、左肩到颈部、左肘到左肩、左腕到左肘、左手到左腕、右肩到颈部、右肘到右肩、右腕到右肘、右手到右腕的向量;下半身需要计算六个向量,分别是:臀部到左膝部、左膝部到左脚踝、左脚踝到左脚、臀部到右膝部、右膝部到右脚踝、右脚踝到右脚的向量。本专利技术与现有技术相比的有益效果为:本专利技术利用Kinect的骨骼追踪技术来获取操受试者关键点三维坐标,提取出人体的关节向量,并与事先保存在TXT文本中的标准模板进行模板匹配,实现对人体动作的识别,可降低人体动作识算法的复杂度,提高动作的识别率和识别速度。本专利技术基于Kinect的人体动作识别算法不受kinect相机位置、光照、识别者的影响,识别率较高且识别快速,在相同实验条件下测得算法的平均识别率为95.2%,平均识别时间为32.5ms。基于Kinect的动作识别算法可以作为模式识别和人工智能的基础,对人体动作识别具有重要意义。附图说明图1为本专利技术人体动作识别算法的流程图。图2为本专利技术Kinect追踪人体关节点的示意图。具体实施方式下面结合实施例对本专利技术做进一步详细说明。本专利技术的算法流程如附图1所示,具体实施步骤如下:Step1、利用Kinect骨架追踪技术,在坐标输出之前追踪人体的20个关节点,形成一副人体骨架系统,通过每个像素中的关节点与kinect标准的骨架系统相比较,可以准确地确定人体的关节部位。通过基于Java的Processing开发环境来读取人体关节点的数据。图2为Kinect实时追踪的人体的20个关键点的示意图。由图2可知,这20个关节点覆盖了整个人体,可以完成对人体动作的识别。Step2、通过Kinect的骨骼追踪技术获取的坐标为深度图像坐标,而人体动作识别要在世界坐标中进行,所以首先要将图像坐标换算为世界坐标。图像坐标(ximage,yimage,zimage)到世界坐标(xworld,yworld,zworld)的变换公式如下:其中,Kinect的分辨率W×H为640×480;h=3.5×10-4rad,K=12.36cm,L=1.18rad,O=3.7cm,D′=-10,F=0.0021。利用以上公式就得到了人体20个关键点的世界三维坐标,是特征提取和模板匹配的基础。Step3、通过Kinect的骨骼追踪技术获取的坐标为深度图像坐标,由于Kinect每秒钟获取30帧图像,也就是关节点的坐标每秒刷新30次,再加上人身体的抖动,所以Kinect骨骼追踪技术采集到的关节点坐标会有波动,首先采用加权递推平均滤波算法对坐标进行滤波,去除坐标的波动,公式为:其中Wi为权系数,yi和yk为滤波前和滤波后的关节点坐标,且将每十个数据作为一组,将一秒数据分为三组进行滤波处理,也就是一秒钟可得到三组滤波后的关节点三维坐标。Step4、在滤波基础上计算角度特征,先由三维坐标计算出关键点之间的向量。将上下半身的向量分开计算,上半身需要计算九个向量,分别是:头部到颈部、颈部到脊柱、左肩到颈部、左肘到左肩、左腕到左肘、左手到左腕的向量,右肩到颈部、右肘到右肩、右腕到右肘、右手到右腕的向量。下半身需要计算六个向量,分别是:臀部到左膝部、左膝部到左脚踝、左脚踝到左脚的向量,臀部到右膝部、右膝部到右脚踝、右脚踝到右脚的向量。利用这些人体关节向量来提取角度特征,例如我们利用肩部坐标与肘部坐标相减得到向量Vi,用肘部坐标减去腕部坐标得到向量Vj,然后根据三维向量角度计算公式计算角度特征。Vi与Vj之间的夹角θi-j可以表示为:那么角度θi-j就是当前人体肘部的角度特征。根据以上公式,对整个人体的角度进行提取,上半身提取七个角度特征,下半身提取六个角度特征。抽取出的角度特征是一个相对的特征鲁棒性好,只与关键点相对位置有关,与光照、背景变化、操作者以及操作者的位置无关。Step5、确定标准动作模板,对10名受试者(5男5女)进行数据采集。Kinect设备水平放置,距离地面48cm。背景是一面白墙,测试者面对着Kinect设备,全身处在视野范围内,距离其240cm的位置,按顺序做动作。对测试者每个动作进行采集,然后进行上述的滤波和特征提取,对不同测试者的相同动作特征分别取平均值,得到标准的人体动作各个关节的角度特征,最后确定动作模板和匹配阈值。Step6、进行模板匹配,首先提取出当前动作的特征向量,分为上半身和下半身。判断上半身特征是否变化,如果变化就匹配上半身模本文档来自技高网...
基于Kinect的人体动作识别算法

【技术保护点】
基于Kinect的人体动作识别算法,其特征在于,包括如下步骤:首先,通过Kinect骨架追踪技术,采用基于Java的Processing开发环境来读取kinect传来的人体骨骼数据,获取人体20个关节点的三维图像坐标并将其转化为世界坐标;其次,采用加权递推平均滤波算法对人体20个关节点的世界坐标进行滤波,去除世界坐标的波动,然后对滤波后的关节点坐标进行特征提取,得到关节点坐标向量所成的角度特征;最后,制作人体标准动作模板并输入到TXT文本中,然后根据当前采集的角度特征与标准动作模板进行匹配实现对人体动作的识别。

【技术特征摘要】
1.基于Kinect的人体动作识别算法,其特征在于,包括如下步骤:首先,通过Kinect骨架追踪技术,采用基于Java的Processing开发环境来读取kinect传来的人体骨骼数据,获取人体20个关节点的三维图像坐标并将其转化为世界坐标;其次,采用加权递推平均滤波算法对人体20个关节点的世界坐标进行滤波,去除世界坐标的波动,然后对滤波后的关节点坐标进行特征提取,得到关节点坐标向量所成的角度特征;最后,制作人体标准动作模板并输入到TXT文本中,然后根据当前采集的角度特征与标准动作模板进行匹配实现对人体动作的识别。2.根据权利要求1所述的基于Kinect的人体动作识别算法,其特征在于,所述人体20个关节点具体为:头部、颈部、脊柱、左肩、左肘、左手腕、左手、臀部、左臀部、左膝盖、左脚腕、左脚、右肩、右肘、右手腕、右手、右臀部、右膝盖、右脚腕、右脚。3.根据权利要求1所述的基于Kinect的人体动作识别算法,其特征在于,所述将三维图像坐标换算为世界坐标的具体步骤为:根据如下变换公式将三维图像坐标(ximage,yimage,zimage)转化为世界坐标(xworld,yworld,zworld):

【专利技术属性】
技术研发人员:李颀强华候金良
申请(专利权)人:陕西科技大学
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1