首页> 中国专利> 一种基于三维骨骼信息的人体动作识别方法

一种基于三维骨骼信息的人体动作识别方法

摘要

本发明公开了一种基于三维骨骼信息的人体动作识别方法,该方法首先对多个不同性别和身高的个体样本分别作出多种动作时得到的彩色数据流、深度数据流和骨骼数据流进行处理,以构建得到分别对应每种动作的SVM模型,之后再采集被识别目标在Kinect深度传感器的采集范围内作出任一动作时的骨骼数据流,并由该骨骼数据流得到的归一化后的人体骨骼关节点与参考点之间的距离以及14个向量夹角,将上述数据分别输入多个SVM模型,输出概率最大的SVM模型对应的动作即为该识别目标作出的动作。本发明采用Kinect深度传感器进行图像获取,受光照条件、阴影等因素影响较小,能够实时获取人体动作的深度图和骨骼信息,从而准确地定位场景中的人体目标。

著录项

  • 公开/公告号CN106022213A

    专利类型发明专利

  • 公开/公告日2016-10-12

    原文格式PDF

  • 申请/专利权人 北方工业大学;

    申请/专利号CN201610289796.6

  • 发明设计人 叶青;张丽;张永梅;

    申请日2016-05-04

  • 分类号G06K9/00(20060101);G06K9/62(20060101);

  • 代理机构11139 北京科龙寰宇知识产权代理有限责任公司;

  • 代理人孙皓晨

  • 地址 100144 北京市石景山区晋元庄5号

  • 入库时间 2023-06-19 00:38:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-06-07

    授权

    授权

  • 2016-11-09

    实质审查的生效 IPC(主分类):G06K9/00 申请日:20160504

    实质审查的生效

  • 2016-10-12

    公开

    公开

说明书

技术领域

本发明涉及人体动作识别领域,具体而言,涉及一种基于三维骨骼信息的人体动作识别方法。

背景技术

动作识别的主要任务是从深度图上提取出表征不同动作的特征数据,而不同人体在表达相同动作时,存在着形状、穿着以及运动习惯等差异性。因此,如何选取有效的动作特征描述是动作识别的关键问题之一。由于人体的动作可以简单地划分为上肢动作、下肢动作、躯干动作,而且人体自身运动过程中存在自遮挡问题,这使得提取出的特征数据存在信息冗余,也会影响后续的动作识别结果。因此,选择合适的动作特征数据区分不同动作类型就显得尤为重要。

人体动作识别技术融合了图像处理和分析、信号处理、模式识别、机器学习、人工智能等诸多学科的内容,由于存在着人体外形和运动习惯的差异,一直是计算机视觉领域研究的热点与难点。另外,人体动作识别技术在许多领域中具有重要的实用价值,例如智能视频监控、高级人机交互、智能机器人、医疗监护、体育运动分析、虚拟现实等。其中,在当前的医疗系统中,随着社会老龄化问题的加剧,传统的专人照料不能完全解决问题。而以动作识别技术为基础构建的智能化医疗监护系统也就应运而生,通过自动检测老人独立完成某项日常活动,并对一些突然摔倒等异常行为及时准确地发出警报。用户在室内进行的动作行为是没有被人为控制的自然行为,如果这些特殊行为能够被系统所理解,这将给医疗监控节省了大量的人力、物力,也更加符合人类的生活需求。

人体动作识别的最终目标是,在完成人体动作捕获、动作特征提取的前提下,无人为干预地识别出人体动作的类型。传统的动作识别算法大多数是通过单目视觉摄像头获取到有关人体动作的彩色图像序列,而且提取出的动作特征大多是基于二维轮廓信息,识别的实时性与准确性依赖于检测与动作分类算法。同时,目前多数识别算法只是对简单或周期性重复的动作进行研究,还不能满足现实的需求。

人体动作运动过程其实可以看成是三维关节点之间的刚性运动,如头与躯干是由肩关节连接,下肢由膝关节连接的上下关节臂等等,而且每个关节的空间位置是相互独立的。因此,基于人体三维信息的识别方法给动作识别带来新的思路。获取人体的三维信息的方法主要有标记式和无标记式。其中标记式需要在人身上附加一些特殊的标志,这种方法限制了运动目标的自然运动,在实际生活中佩戴标记不方便,难以广泛应用。无标记式主要是通过深度设备,如双目立体视觉、TOF相机、Kinect结构光传感器等。其中双目立体视觉是以左右相机获取不同视觉下的两幅图像位置偏差来估计出物体的空间三维几何信息,但该设备对光照十分敏感,增加了立体匹配的难度。TOF相机是以计算发射与接收脉冲的时间差来评估物体与相机的深度值,但相机价格较高、分辨率较低,不适合实际的应用。

传统的动作识别方法大多是基于二维图像序列的人体动作识别,很容易受到光照条件、遮挡与阴影的影响,只有在人体衣服颜色和背景颜色差别很大或者不存在遮挡的情况下,才能得到较好的识别结果。虽然有些深度相机能够获取到三维信息,但是立体相机的有效距离只取决于基线的设置以及场景中环境光质量,TOF相机依赖于光线的反射,其有效距离取决于光线发出以及接受的范围,并且设备成本较高。

发明内容

本发明提供一种基于三维骨骼信息的人体动作识别方法,用以对人体动作进行识别。

为了达到上述目的,本发明提供了一种基于三维骨骼信息的人体动作识别方法,其包括以下步骤:

S1:将Kinect深度传感器固定于与地面平行的相机支架上,保证Kinect深度传感器与地面水平线平行且具有一定的垂直高度,并能拍摄到场景中完整的人体目标;

S2:使用Kinect深度传感器分别采集多个不同性别和身高的个体样本分别做出弯腰、单手举手、水平举手、双手举手、拍手、叉腰、踢腿、喝水、站立、抱头、坐、打拳12种动作时的彩色数据流、深度数据流和骨骼数据流;

S3:采用计算机中的OpenCV分别将每个个体样本作出12种动作时采集到的彩色数据流、深度数据流以及骨骼数据流转换为彩色图像、深度图像和骨骼图像,并将彩色图像、深度图像和骨骼图像在计算机屏幕上进行显示;

S4:分别从每个个体样本作出12种动作时采集到的骨骼数据流中获取到相对应的人体骨骼关节点的三维坐标值,其中,人体骨骼关节点为人体中的以下20个骨骼关节点:头、肩膀中心、左肩、左手肘、左手腕、左手、右肩、右手肘、右手腕、右手、脊柱、臀部中心、左臀、左膝、左脚踝、左脚、右臀、右膝、右脚踝和右脚;

S5:分别根据每一个个体样本于站立时,头的空间位置坐标(x0,H,y0,H,z0,H),左脚踝的空间坐标(x0,AL,y0,AL,z0,AL),右脚踝的空间坐标(x0,AR,y0,AR,z0,AR)计算出每个个体样本的身高H,其中,身高H的计算公式如下:

x0=(x0,AL+x0,AR)/2y0=(y0,AL+y0,AR)/2z0=(z0,AL+z0,AR)/2---(1)

H=(x0,H-x0)2+(y0,H-y0)2+(z0,H-z0)2---(2)

其中,(x0,y0,z0)为左脚踝与右脚踝中心点的坐标;

S6:以臀部中心为参考点,分别计算出每个个体样本作出12种动作时的其余19个人体骨骼关节点与参考点之间的距离;

S7:将计算出的每个个体样本作出12种动作时的其余19个人体骨骼关节点与参考点之间的距离分别除以相应的个体样本的身高H,得到归一化后的人体骨骼关节点与参考点之间的距离;

S8:根据S4中得到的人体骨骼关节点的三维坐标值,计算以下14对向量之间的向量夹角:【(肩膀中心,头),(肩膀中心,左肩)】、【(肩膀中心,头),(肩膀中心,右肩)】、【(肩膀中心,脊柱),(肩膀中心,左肩)】、【(肩膀中心,脊柱),(肩膀中心,右肩)】、【(肩膀中心,左肩),(左肩,左手肘)】、【(左肩,左手肘),(左手肘,左手腕)】、【(肩膀中心,右肩),(右肩,右手肘)】、【(右肩,右手肘),(右手肘,右手腕)】、【(脊柱,臀部中心),(臀部中心,左臀)】、【(脊柱,臀部中心),(臀部中心,右臀)】、【(臀部中心,左臀),(左臀,左膝)】、【(左臀,左膝),(左膝,左脚踝)】、【(臀部中心,右臀),(右臀,右膝)】、【(右臀,右膝),(右膝,右脚踝)】,分别得到每一个体样本在每一种动作时的14个向量夹角;

S9:将S7中得到的归一化后的人体骨骼关节点与参考点之间的距离以及S8中得到的向量夹角经过多分类SVM模型训练,得到12种动作的SVM模型,其中,通过S3步骤中显示在计算机屏幕上的彩色图像、深度图像和骨骼图像与SVM模型进行对应;

S10:当识别目标出现在Kinect深度传感器的采集范围内时,该识别目标作出站立动作,并使用Kinect深度传感器采集该识别目标的骨骼数据流;

S11:从采集到的骨骼数据流中获取到该识别目标的头、左脚踝和右脚踝的三维坐标值;

S12:根据步骤S5中的方法计算得到该识别目标的身高H1;

S13:在时刻t,当该识别目标在Kinect深度传感器的采集范围内作出任一动作时,Kinect深度传感器采集该识别目标的骨骼数据流;

S14:从该识别目标的骨骼数据流中获取到该识别目标的20个人体骨骼关节点的三维坐标值,20个人体骨骼关节点分别为:头、肩膀中心、左肩、左手肘、左手腕、左手、右肩、右手肘、右手腕、右手、脊柱、臀部中心、左臀、左膝、左脚踝、左脚、右臀、右膝、右脚踝和右脚;

S15:根据该识别目标的20个人体骨骼关节点的三维坐标值和S12中得到的该识别目标的身高H1,按照步骤S6和S7中的方法计算出该识别目标的归一化后的人体骨骼关节点与参考点之间的距离;

S16:根据S14中得到的人体骨骼关节点的三维坐标值,计算以下14对向量之间的向量夹角:【(肩膀中心,头),(肩膀中心,左肩)】、【(肩膀中心,头),(肩膀中心,右肩)】、【(肩膀中心,脊柱),(肩膀中心,左肩)】、【(肩膀中心,脊柱),(肩膀中心,右肩)】、【(肩膀中心,左肩),(左肩,左手肘)】、【(左肩,左手肘),(左手肘,左手腕)】、【(肩膀中心,右肩),(右肩,右手肘)】、【(右肩,右手肘),(右手肘,右手腕)】、【(脊柱,臀部中心),(臀部中心,左臀)】、【(脊柱,臀部中心),(臀部中心,右臀)】、【(臀部中心,左臀),(左臀,左膝)】、【(左臀,左膝),(左膝,左脚踝)】、【(臀部中心,右臀),(右臀,右膝)】、【(右臀,右膝),(右膝,右脚踝)】,得到该识别目标在时刻t时的14个向量夹角;

S17:将S15中得到的归一化后的人体骨骼关节点与参考点之间的距离以及S16中的得到的14个向量夹角分别输入至12种动作的SVM模型;

S18:比较每种SVM模型的输出概率,输出概率最大的SVM模型对应的动作即为该识别目标在时刻t作出的动作。

本发明提供的基于三维骨骼信息的人体动作识别方法具有以下有益技术效果:

(1)采用Kinect深度传感器进行图像获取,受光照条件、阴影等因素影响较小,能够实时获取人体动作的深度图和骨骼信息,从而准确地定位场景中的人体目标;

(2)采用归一化后的人体骨骼关节点与参考点之间的距离与关节角度表征不同动作的特征,使得动作数据具有平移和缩放不变性;

(3)通过多分类SVM模型来完成特征数据的训练与分类识别,运行成本较低。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为20个骨骼关节点的示意图;

图2为深度图像坐标系、骨骼坐标系、屏幕坐标系和彩色图像坐标系之间的转换关系;

图3a为一彩色图像的示意图;

图3b为一深度图像的示意图;

图3c为一骨骼图像的示意图;

图4a为人体摆手运动过程中臀部中心与左肩关节的相对位置变化曲线;

图4b为人体摆手运动过程中臀部中心与左肘关节的相对位置变化曲线;

图4c为人体摆手运动过程中臀部中心与左腕关节的相对位置变化曲线;

图4d为人体摆手运动过程中(左肩,左手肘)与(左手肘,左手腕)这两个向量之间的角度的变化曲线。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供的基于三维骨骼信息的人体动作识别方法包括以下步骤:

S1:将Kinect深度传感器固定于与地面平行的相机支架上,保证Kinect深度传感器与地面水平线平行且具有一定的垂直高度,并能拍摄到场景中完整的人体目标;

S2:使用Kinect深度传感器分别采集多个不同性别和身高的个体样本分别做出弯腰、单手举手、水平举手、双手举手、拍手、叉腰、踢腿、喝水、站立、抱头、坐、打拳12种动作时的彩色数据流、深度数据流和骨骼数据流;

其中,个体样本应尽量覆盖较宽的人体身高范围以及覆盖男性和女性两种性别,例如,应选择身高在155-170之间的女性以及身高在165-180之间的男性作为个体样本,且个体样本的身高在上述范围内尽量均匀分布。另外,个体样本所作的动作不限于上述12种动作,可根据被识别目标可能做出的动作进行调整,以提高成功识别几率。

S3:采用计算机中的OpenCV分别将每个个体样本作出12种动作时采集到的彩色数据流、深度数据流以及骨骼数据流转换为彩色图像、深度图像和骨骼图像,并将彩色图像、深度图像和骨骼图像在计算机屏幕上进行显示;

其中,在深度图像中,每个像素用2个字节表示,其中低3位表示用户索引编号,高13位表示Kinect深度传感器与个体样本的深度距离,本发明以伪灰度图像(灰度值为0-255)来表示获取到的深度图像。

图2为深度图像坐标系、骨骼坐标需、屏幕坐标系和彩色图像坐标系之间的转换关系,如图所示,骨骼空间坐标系与深度图像坐标系都是三维坐标系,以红外摄像头为原点,与红外摄像头和彩色摄像头平行的方向为X轴,与它们垂直的方向为Y轴,红外摄像头的光轴方向为Z轴;彩色图像坐标系为二维坐标系。计算机屏幕坐标系是以窗口的左上角为原点,水平向右为X轴,垂直向下为Y轴。当采集到某时刻的动作图像帧时,将它们显示到屏幕中需要进行空间坐标的转换。

图3a、图3b和图3c分别为一彩色图像、一深度图像和一骨骼图像的示意图,如图所示,由彩色图像、深度图像和骨骼图像均能分辨出个体样本所作出的动作为哪一种。

S4:分别从每个个体样本作出12种动作时采集到的骨骼数据流中获取到相对应的人体骨骼关节点的三维坐标值,其中,图1为20个骨骼关节点的示意图,如图所示,人体骨骼关节点为人体中的以下20个骨骼关节点:头、肩膀中心、左肩、左手肘、左手腕、左手、右肩、右手肘、右手腕、右手、脊柱、臀部中心、左臀、左膝、左脚踝、左脚、右臀、右膝、右脚踝和右脚;

其中,为了减少图像帧中关节点的抖动情况以及人体自身的关节点遮挡,设置了平滑处理参数以获取较准确的骨骼关节点坐标值。

S5:分别根据每一个个体样本于站立时,头的空间位置坐标(x0,H,y0,H,z0,H),左脚踝的空间坐标(x0,AL,y0,AL,z0,AL),右脚踝的空间坐标(x0,AR,y0,AR,z0,AR)计算出每个个体样本的身高H,其中,身高H的计算公式如下:

x0=(x0,AL+x0,AR)/2y0=(y0,AL+y0,AR)/2z0=(z0,AL+z0,AR)/2---(1)

H=(x0,H-x0)2+(y0,H-y0)2+(z0,H-z0)2---(2)

其中,(x0,y0,z0)为左脚踝与右脚踝中心点的坐标;

S6:以臀部中心为参考点,分别计算出每个个体样本作出12种动作时的其余19个人体骨骼关节点与参考点之间的距离;

S7:将计算出的每个个体样本作出12种动作时的其余19个人体骨骼关节点与参考点之间的距离分别除以相应的个体样本的身高H,得到归一化后的人体骨骼关节点与参考点之间的距离;

S8:根据S4中得到的人体骨骼关节点的三维坐标值,计算以下14对向量之间的向量夹角:【(肩膀中心,头),(肩膀中心,左肩)】、【(肩膀中心,头),(肩膀中心,右肩)】、【(肩膀中心,脊柱),(肩膀中心,左肩)】、【(肩膀中心,脊柱),(肩膀中心,右肩)】、【(肩膀中心,左肩),(左肩,左手肘)】、【(左肩,左手肘),(左手肘,左手腕)】、【(肩膀中心,右肩),(右肩,右手肘)】、【(右肩,右手肘),(右手肘,右手腕)】、【(脊柱,臀部中心),(臀部中心,左臀)】、【(脊柱,臀部中心),(臀部中心,右臀)】、【(臀部中心,左臀),(左臀,左膝)】、【(左臀,左膝),(左膝,左脚踝)】、【(臀部中心,右臀),(右臀,右膝)】、【(右臀,右膝),(右膝,右脚踝)】,分别得到每一个体样本在每一种动作时的14个向量夹角;

S9:将S7中得到的归一化后的人体骨骼关节点与参考点之间的距离以及S8中得到的向量夹角经过多分类SVM模型训练,得到12种动作的SVM模型,其中,通过S3步骤中显示在计算机屏幕上的彩色图像、深度图像和骨骼图像与SVM模型进行对应;

其中,由显示在计算机屏幕上的彩色图像、深度图像和骨骼图像能够看出每一个体样本的动作,将其与相应的SVM模型对应后,可以观察构建出的SVM模型的是否与实际动作相符。

S10:当识别目标出现在Kinect深度传感器的采集范围内时,该识别目标作出站立动作,并使用Kinect深度传感器采集该识别目标的骨骼数据流;

让识别目标作出站立动作的目的是为了计算其身高,以便于后续的归一化计算。

S11:从采集到的骨骼数据流中获取到该识别目标的头、左脚踝和右脚踝的三维坐标值;

S12:根据步骤S5中的方法计算得到该识别目标的身高H1;

S13:在时刻t,当该识别目标在Kinect深度传感器的采集范围内作出任一动作时,Kinect深度传感器采集该识别目标的骨骼数据流;

S14:从该识别目标的骨骼数据流中获取到该识别目标的20个人体骨骼关节点的三维坐标值,20个人体骨骼关节点分别为:头、肩膀中心、左肩、左手肘、左手腕、左手、右肩、右手肘、右手腕、右手、脊柱、臀部中心、左臀、左膝、左脚踝、左脚、右臀、右膝、右脚踝和右脚;

S15:根据该识别目标的20个人体骨骼关节点的三维坐标值和S12中得到的该识别目标的身高H1,按照步骤S6和S7中的方法计算出该识别目标的归一化后的人体骨骼关节点与参考点之间的距离;

S16:根据S14中得到的人体骨骼关节点的三维坐标值,计算以下14对向量之间的向量夹角:【(肩膀中心,头),(肩膀中心,左肩)】、【(肩膀中心,头),(肩膀中心,右肩)】、【(肩膀中心,脊柱),(肩膀中心,左肩)】、【(肩膀中心,脊柱),(肩膀中心,右肩)】、【(肩膀中心,左肩),(左肩,左手肘)】、【(左肩,左手肘),(左手肘,左手腕)】、【(肩膀中心,右肩),(右肩,右手肘)】、【(右肩,右手肘),(右手肘,右手腕)】、【(脊柱,臀部中心),(臀部中心,左臀)】、【(脊柱,臀部中心),(臀部中心,右臀)】、【(臀部中心,左臀),(左臀,左膝)】、【(左臀,左膝),(左膝,左脚踝)】、【(臀部中心,右臀),(右臀,右膝)】、【(右臀,右膝),(右膝,右脚踝)】,得到该识别目标在时刻t时的14个向量夹角;

S17:将S15中得到的归一化后的人体骨骼关节点与参考点之间的距离以及S16中的得到的14个向量夹角分别输入至12种动作的SVM模型;

特征提取与描述是从运动序列中提取合理的数据来描述人体动作的不同类型,直接决定着机器学习分类结果,是动作识别的主要内容。人体之间存在体型的差异,在做相同动作时存在较大的差异性,若直接以采集到关节点坐标作为特征数据,很难做到特征数据的有效性。对于三维数据信息的人体动作识别,本发明采用归一化后的人体骨骼关节点与参考点之间的距离与向量夹角两类信息来进行特征提取与描述,减少人体肢体长度、体型以及身高的影响。

S18:比较每种SVM模型的输出概率,输出概率最大的SVM模型对应的动作即为该识别目标在时刻t作出的动作。

本发明中的计算机应采用较高性能的计算机,配置Win7系统或以上,以满足大量数据的实时处理要求。

图4a、图4b和图4c分别为人体摆手运动过程中-臀部中心与左肩关节、臀部中心与左肘关节、臀部中心与左腕关节之间的相对位置变化曲线。其中,横轴标注的数字表示数据流中图像帧的顺序,对相对位置的描述采用的是骨骼坐标系,参考点为臀部中心,以图4a为例,图4a中的三条曲线分别表示人体摆手运动过程,左肩关节在x轴、y轴和z轴方向相对于参考点的位置变化,如图所示,在人体摆手运动过程中,上述变化曲线呈现一定的规律性,从而能够用于人体动作识别。

图4d为人体摆手运动过程中(左肩,左手肘)与(左手肘,左手腕)这两个向量之间的角度的变化曲线,如图所示,在人体摆手运动过程中,(左肩,左手肘)与(左手肘,左手腕)这两个向量之间的角度呈现先增加后降低的规律,从而能够作为动作特征用于动作识别。

本发明提供的基于三维骨骼信息的人体动作识别方法具有以下有益技术效果:

(1)采用Kinect深度传感器进行图像获取,受光照条件、阴影等因素影响较小,能够实时获取人体动作的深度图和骨骼信息,从而准确地定位场景中的人体目标;

(2)采用归一化后的人体骨骼关节点与参考点之间的距离与关节角度表征不同动作的特征,使得动作数据具有平移和缩放不变性;

(3)通过多分类SVM模型来完成特征数据的训练与分类识别,运行成本较低。

本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。

本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号