体感手势识别方法技术

技术编号:7448535 阅读:968 留言:0更新日期:2012-06-21 12:43
本发明专利技术公开了一种体感手势识别方法,包括以下步骤:步骤一、采集人体关节点,建立人体关节点坐标系;步骤二、将每个关节点原始坐标数据存入数据组;步骤三、采集当前的各个关节点坐标数据,并将各个关节点的坐标数据存入数据组;步骤四、将当前各个关节点的坐标数据与相应关节点的原始坐标数据进行对比,判断手是否抬起、是否前伸;步骤五、步骤四中,如手前伸,则进一步对比相应关节点当前坐标与原始坐标,判断手是否前推;步骤六、步骤四中,如手抬起,则进一步对比相应关节点当前坐标与原始坐标,判断手移动方向、手是否画圆、是否双手缩放;步骤七、步骤六中,进一步对比相应关节点当前坐标与原始坐标,判断再见手势。

【技术实现步骤摘要】

本专利技术涉及一种。
技术介绍
Kinect骨架追踪处理流程的核心是一个无论周围环境的光照条件如何,都可以让 Kinect感知世界的CMOS红外传感器。该传感器通过黑白光谱的方式来感知环境纯黑代表无穷远,纯白代表无穷近。黑白间的灰色地带对应物体到传感器的物理距离。它收集视野范围内的每一点,并形成一幅代表周围环境的景深图像。传感器以每秒30帧的速度生成景深图像流,实时3D地再现周围环境。Kinect需要做的下一件事是寻找图像中较可能是人体的移动物体,就像人眼下意识地聚焦在移动物体上那样。接下来,Kinect会对景深图像进行像素级评估,来辨别人体的不同部位。同时,这一过程必须以优化的预处理来缩短响应时间。Kinect采用分割策略来将人体从背景环境中区分出来,即从噪音中提取出有用信号。Kinect可以主动追踪最多两个玩家的全身骨架,或者被动追踪最多四名玩家的形体和位置。在这一阶段,我们为每个被追踪的玩家在景深图像中创建了所谓的分割遮罩,这是一种将背景物体(比如椅子和宠物等)剔除后的景深图像。在后面的处理流程中仅仅传送分割遮罩的部分,以减轻体感计算量。分割化玩家图像的每一个像素都被传送进一个辨别人体部位的机器学习系统中。 随后该系统将给出了某个特定像素属于哪个身体部位的可能性。比如,一个像素有80%的几率属于脚,60%的几率属于腿,40%的几率属于胸部。看起来这时候我们就可以把几率最大的可能性当作结果,但这么做未免太过武断了。此时系统的做法是将所有的这些可能性输入到接下来的处理流程中并且等到最后阶段再做判断。处理流程的最后一步是使用之前阶段输出的结果,根据追踪到的20个关节点来生成一幅骨架系统。Kinect会评估Exemplar输出的每一个可能的像素来确定关节点。通过这种方式Kinect能够基于充分的信息最准确地评估人体实际所处位置。另外我们在模型匹配阶段还做了一些附加输出滤镜来平滑输出以及处理闭塞关节等特殊事件。随着人机交互技术的发展,体感设备作为一种代替或补充普通键盘和鼠标的输入设备已经在许多场合和领域逐渐得到了使用。体感互动技术使得人们通过各种动作和计算机等设备进行交互成为可能,操作者可以通过在体感传感器上做出特定的手势轨迹配合显示器来实现与计算机等设备的交互功能。微软Kinect是目前比较流行的体感摄像机之一。 Kinect通过体感摄像头分析取到的数据并分析,最终返回追踪到的20个关节点的三维数据来生成一幅骨架系统,此套系统只包含人体各个关节点的三维信息,并不能进行手势识别。
技术实现思路
本专利技术的目的就是提供一种,通过对得到的人体骨骼三维信息进行分析运算编码,封装成一系列体感手势,使计算机能对人做出的各种手势进行识别。为了达到上述设计目的,本专利技术采用的技术方案如下一种,包括以下步骤步骤一、采集人体20个关节点,建立人体关节点坐标系,定义每个关节点的原始坐标数据;步骤二、将每个关节点原始坐标数据存入数据组;步骤三、采集当前的各个关节点坐标数据,并将各个关节点的坐标数据存入数据组;步骤四、将当前各个关节点的坐标数据与相应关节点的原始坐标数据进行对比, 判断手是否抬起、是否前伸;步骤五、步骤四中,如手前伸,则进一步对比相应关节点当前坐标与原始坐标,判断手是否前推;步骤六、步骤四中,如手抬起,则进一步对比相应关节点当前坐标与原始坐标,判断手移动方向、手是否画圆、是否双手缩放;步骤七、步骤六中,进一步对比相应关节点当前坐标与原始坐标,判断再见手势。判断手是否抬起的步骤为步骤一、获取手部关节点的当前y值yl ;步骤二、获取肩部关节点的当前y值y2 ;步骤三、计算手部关节点的当前y值与肩部关节点的当前y值的差是否为-0. 1 < yl-y2 < 0. 2 ;步骤四、如手部关节点的当前y值与肩部关节点的当前y值的差在-0. 1与0. 2之间,则手抬起;如手部关节点的当前1值与肩部关节点的当前1值的差未在-0. 1与0. 2之间,则手未抬起。判断手是否前伸的步骤为步骤一、获取脊椎关节点的当前ζ值Zl ;步骤二、获取手部关节点的当前ζ值z2 ;步骤三、计算脊椎关节点的当前ζ值与手部关节点的当前ζ值的差是否在为zl-z2 > 0. 5 ;步骤四、如脊椎关节点的当前ζ值与手部关节点的当前ζ值的差大于0. 5,则手前伸;如脊椎关节点的当前ζ值与手部关节点的当前ζ值的差不大于0. 5,则手未前伸。判断手是否前推的步骤为步骤一、判断手是否前伸;步骤二、如手未前伸,则返回;步骤三、步骤一中,如手前伸,则获取当前手部关节点的坐标;步骤四、步骤三中,如当前手部关节点的坐标与手前伸状态手部关节点坐标相同, 则手未前推;如当前手部关节点的坐标与手前伸状态手部关节点坐标不同,则手前推。判断是否双手缩放的步骤为步骤一、获取双肩关节点的当前坐标值,计算双肩的距离dl ;步骤二、获取双手关节点的当前坐标值,计算双手的距离d2 ;步骤三、如双肩的距离dl大于双手的距离d2,则双手伸展;步骤四、如双肩的距离dl小于双手的距离d2,则双手收缩;步骤五、如双肩的距离dl等于双手的距离d2,则双手无缩放。判断手移动方向的步骤为步骤一、判断手是否抬起;步骤二、如手未抬起,则返回;步骤三、如手抬起,获取手部关节点坐标的上一帧的χ值Xl ;步骤四、获取手部关节点坐标的当前帧χ值x2 ;步骤五、如手部关节点坐标的当前帧χ值x2与手部关节点坐标的上一帧的χ值Xl 的差值大于0. 1,则手向右移动,返回常量字符串;步骤六、如手部关节点坐标的当前帧χ值x2与手部关节点坐标的上一帧的χ值xl 的差值不大于0. 1,则判断手部关节点坐标的当前帧χ值x2与手部关节点坐标的上一帧的 χ值xl的差值是否小于-0. 1 ;步骤七、步骤六中,如手部关节点坐标的当前帧χ值x2与手部关节点坐标的上一帧的X值Xl的差值小于-0. 1,则手向左移动,返回常量字符串;如不小于,则返回。判断手是否画圆的步骤为步骤一、获取手部关节点的当前二维坐标;步骤二、获取肘部关节点的当前二维坐标;步骤三、以肘部关节点为圆心计算手部关节点所在坐标的象限;步骤四、如果此时手部关节点所在坐标象限发生变化,则记录该变化并存储;步骤五、每变化四次,进行一次判断,如果是顺时针方向变化,则手顺时针画圆;如果是逆时针方向变化,则手针方向画圆;如果是乱序,则未画圆。判断再见手势的步骤为步骤一、获取手部当前状态移动方向,并记录;步骤二、获取手部上一状态移动方向,并记录;步骤三、步骤一与步骤二中手部为静止状态,则手未移动,返回;步骤四、步骤一与步骤二中手部两个状态移动方向相反,则记录一次变化,重复步骤一、二,当发生三次变化,即摆了两下手,做出再见动作,返回。本专利技术所述的的有益效果是通过对得到的人体骨骼三维信息进行分析运算编码,封装成一系列体感手势,使计算机能对人做出的各种手势进行识别,便于后续开发利用;与自然动作十分契合,所以使用起来相当容易上手;选取了人体不同部位进行计算,所以在判断人体手势效果准确。附图说明图1是本专利技术所述的的流程图。图2为本专利技术所述的的手抬起的流程图。图3为本专利技术所述的的手移动方向的流程图。图4为本专利技术所述的的手前伸的流程图。图5为本专利技术所述的的手前推的流程图。图6为本专利技术所述的的本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:卢辰
申请(专利权)人:北京华达诺科技有限公司
类型:发明
国别省市:

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

1
相关领域技术