一种基于深度传感器的实时手部追踪方法与流程

文档序号:16133249发布日期:2018-12-01 00:34阅读:289来源:国知局

本发明涉及一种手部运动追踪方法,尤其是一种基于深度传感器的实时手部追踪方法,属于人机交互技术领域。

背景技术

随着计算机和传感器技术不断进步,人机交互(human-computerinteraction)技术已发展到以人为核心的自然用户界面(naturaluserinterface)交互阶段,要求机器能够像人类一样自然地与用户进行交流、互动。而日常中,人类最常用的交流手段是视、听、说结合,而手部在日常互动过程中起到了至关重要作用。相应的,基于手部运动的人机交互技术也在自然用户界面交互阶段不可或缺、应用前景广泛。但是由于每只手具有27个自由度(dof)且能够在空间中自由旋转,所以实现高精度的实时手部追踪仍然存在困难。

随着图像处理、机器视觉、人工智能等学科地不断发展,尤其是深度传感器(如microsoft的kinect)出现后,基于深度传感器获得手部运动状态信息成为可能。由于光学传感器通过光线反射时间计算被检测物体的参数,不需要佩戴额外的穿戴设备,因而基于深度传感器进行人机交互是一种更加自然、也更加便捷的人机交互方式。现在运用光学传感器是人机交互技术中最为前沿和热门的领域之一,基于深度传感器的应用开发使人机交互可以从二维平面互动扩展到三维空间自由交互,并且能够提供非接触的交互体验,使用户在与机器的交互过程中更自由。

当前基于深度传感器手部运动信息交互可以分为两类:基于视觉的方法和基于模型的方法。考虑到实时性要求,而基于视觉的追踪方法更加符合实时性的要求,该方法面临的挑战就是要能够准确、稳健、高效地检测和追踪运动中的各个手部参数。



技术实现要素:

本发明的目的在于:针对现有技术存在的缺陷,提出一种基于深度传感器的实时手部追踪方法,能够实时捕获手部运动信息,在手部运动过程中提供实时、稳定、准确的手部特征构造,为基于手部运动信息的科研开发提供了有效的数据来源,为基于手部运动信息的应用开发提供了可靠的交互数据。

为了达到以上目的,本发明提供了一种基于深度传感器的实时手部运动追踪方法,包括如下步骤:

步骤1,原始数据优化,通过深度传感器获取手部在三维空间的深度信息,采用前向运动学完成手部骨骼信息的遮挡修复;基于优化后的骨骼关节点信息,采用卡尔曼滤波算法,对手掌运动信息进行平滑处理;

步骤2,提取手部区域,利用深度传感器提供的实时三维空间信息,采取连续区域分析算法从深度图像中提取手部区域,并计算手部三维质心位置;

步骤3,指尖三维位置的实时获取,将距离边缘最远的像素点作为手指骨骼点,以三维测地距离作为几何特征和手指骨骼位置点为备选点。

进一步的,所述步骤1包括如下步骤:

步骤1.1,遮挡恢复:当手部被遮挡或部分遮挡时,深度传感器反馈的实时数据存在剧烈的抖动,数据可信度不高,需预测未被深度传感器跟踪的关节位置;通过深度传感器提供的深度数据和骨骼数据相结合方式,对遮挡手部关节点进行修复,利用人体骨骼的长度不变性,将手肘、手、手腕及指尖构成关节链,计算出各个相邻关节间的长度,并将关节的长度与标准的人体骨架进行比对作为遮挡关节修复的依据;

根据已知空间中的两点a(xa,ya,za)、b(xb,yb,zb)的坐标信息,由欧几里德度量可得骨骼长度公式:

利用骨骼的长度不变性以及正向运动学来实现对关节潜在位置的预测。

步骤1.2,数据平滑:在受到复杂背景与光照影响时,为了获取更稳定的追踪从而为应用提供更可靠的数据来源,利用卡尔曼滤波器来预测修复当前帧的各个关节位置;利用前一帧数据对当前位置进行预测,并结合关节点本身的可信度对参数进行选取确定,通过对参数的选择,完成算法对于追踪状态可信度的自适应。

进一步的,所述步骤2包括如下步骤:

步骤2.1,粗提取:选取步骤1中追踪到的各个关节间的骨架长度中的最大值作为分离手部的搜索半径,对搜索半径以内的各像素点进行提取,并进行下一步的过滤选择;其中,小于所述搜索半径的像素点作为下一步细提取的输入,大于所述搜索半径的像素点则默认为背景像素点,将其深度值置为0;

该搜索半径的定义如下:

步骤2.2,精准提取:采用级联结构的递归连续区域分析算法,精准提取手部区域,通过比较种子像素点与周围像素点的深度差,来判断相邻两点是否属于连续区域,对于连续区域的点进一步判断,层层递归,直至得到搜索区域内在三维空间上所有连续的像素点;

步骤2.3,确定手掌心点位置:通过对实时获取的手部区域进行三维空间的质心进行计算,实时获取手部掌心位置。

进一步的,所述步骤3包括如下步骤:

步骤3.1,手部骨骼点提取:基于手部区域边缘距离对手部骨骼点进行提取,为了提高算法效率和计算准确度,同时从两个方向计算像素点到边缘距离,并选取两者中的较小值作为该点到边界的距离,而目标点与边缘的距离为两个方向计算结果的较小值;对于手部区域的任一像素点,当距离大于周围点的距离,则认为其对应的坐标为手指骨骼点的位置;

像素点到边缘的距离计算公式为:

distance(x,y)=min{distance1(x,y),distance2(x,y)},

对于手部区域的任一像素点,当distance值大于周围点的distance值时,则认为其对应的坐标为手指骨骼点位置。

步骤3.2,实时指尖定位:将测地距离应用于三维信息,使用最小三维测地距离作为特征参数,选取与掌心位置最小三维测地距离最大的备选骨骼像素点作为指尖点,并且在计算后续指尖点时消除前序指尖点附近点的干扰。各点间测地距离关系由下式给出:

,其中,origin为测地距离测量的原点,target为当前求解的目标点,neighbor为目标点target周围已求得3dgsp的临近点;

各像素点之间距离关系由下式给出,

本发明采用以上技术方案与现有技术相比,具有以下技术效果:

1、本发明采用的数据优化方法能够消除深度传感器提供的原始数据的抖动,并在手被部分遮挡而传感器无法准确定位的情况下预测用户手部关节位置,提高被追踪的关节点位置的精确度。

2、本发明中提取手部区域采用的级联递归连续区域分析算法保留了原始数据的更多有效信息,并大大提高了手部区域的提取效率,进一步提高了整个系统的实时性。

3、本发明提出的指尖获取方案无论是手部完全张开还是局部弯曲、手腕旋转、用户未正对深度传感器,相对于其他方法,都能够更加准确稳定地确定指尖点位置;并且选取手部骨架像素作为指尖备选像素点也提高了系统的实时性。

附图说明

下面结合附图对本发明作进一步的说明。

图1是本发明的系统框图。

图2是本发明中基于卡尔曼滤波算法的手部位置信息追踪的示意图。

图3是本发明中递归连通区域关系的建立与存储的连通表。

图4是本发明中像素点与边缘距离示意图。

图5是本发明中三维测地线距离的计算方法示例图。

具体实施方式

本实施例提供了一种基于深度传感器的实时手部运动追踪方法,具体流程如图1所示,包括如下步骤:

步骤1:原始数据优化;

步骤1.1:遮挡恢复;当手部被遮挡或部分遮挡时,深度传感器反馈的实时数据存在剧烈的抖动,数据可信度不高,此时需要预测未被深度传感器跟踪的关节位置。本文采用深度传感器kinect提供的深度数据和骨骼数据相结合方式,对遮挡手部关节点进行修复。由于人体骨骼具有长度不变性,用手肘、手、手腕、指尖构成关节链,计算出各个相邻关节间的长度即并将关节的长度与标准的人体骨架进行比对作为遮挡关节修复的依据。已知空间中的两点a(xa,ya,za)、b(xb,yb,zb)的坐标信息,由欧几里德度量可得骨骼长度公式:

利用骨骼的长度不变性以及正向运动学来实现对关节潜在位置的预测。

步骤1.2:数据平滑;以kinect为例,该种深度传感器采用光学反射成像,因此在稳定性上易受环境与噪声的影响,hand、handtips、thumb关节点在追踪过程中即使没有丢失,也存在较大的抖动。为了获取更稳定的追踪从而为应用提供更可靠的数据来源,本发明采用卡尔曼滤波算法,对深度传感器提供的关节信息进行进一步处理。

由于深度传感器每秒输出一定数目的帧数据(如30帧),而根据人体运动学规律,可认为在常规运动中,在短时间内,人体关节点不会发生位置突变,即人体运动始终保持连续的状态。因此,可使用前面的帧对当前位置进行预测。在参数选取时,本项目结合关节点本身的可信度进行确定。通过对参数的选择,完成算法对于追踪状态可信度的自适应。在如图2所示的追踪过程中,从kinect读取、修复得到当前位置信息xk,yk,通过运动学分析,从多帧的数据中获取速度信息以及控制信息axk,ayk。控制矩阵bk由运动学关系确定,关系矩阵fk描述当前变量对下一时刻变量的影响、hk描述了目标变量与kinect读取的变量之间的关系。pk为各变量之间的协方差矩阵,rk为预测过程中的高斯偏差,kgain为卡尔曼增益,可由如下公式得到:

步骤2:提取手部区域;根据手部在运动中实时变化且目标区域相对集中的特性,本发明采用基于目标区域连续特征的目标追踪实现手部区域提取。

步骤2.1:粗提取。在这一步中,我们选取步骤1中计算到的各个关节间的骨架长度中的最大值作为分离手部的搜索半径,小于该搜索半径的像素点作为下一步细提取的输入,大于该范围的默认为背景像素点,将其深度值置为0。该搜索半径的定义如下:

步骤2.2:采用递归方式在三维空间上完成连续区域分析,精准提取手部区域。如图3所示,x表示种子像素点,通过比较种子像素点与周围像素点的深度差,来判断相邻两点是否属于连续区域,对于连续区域的点进一步判断,层层递归,直至得到搜索区域内在三维空间上所有连续的像素点。该算法保留了手部区域的三维连通信息,为下一步掌心与指尖定位做出了贡献。

步骤2.3:确定手掌心点位置。在上一步中保留了手部区域连通关系的三维信息,可以有效解决手部在空间中运动时因张闭、旋转、自遮挡带来的像素点重叠而导致的追踪手部区域信息与实际信息之间的偏差对掌心位置计算的影响。因此对于手部掌心位置的实时获取只需要通过对实时获取的手部区域进行三维空间的质心进行计算。

步骤3:指尖三维位置的实时获取。

步骤3.1:手部骨骼点提取:由于手指骨骼点位于手指的中心位置,因此通过以手部区域的各像素点到边缘的距离作为筛选条件,从手部连续区域中提取骨骼信息,对于三维空间连通区域的边缘点到达掌心位置的测地距离计算几乎没有影响。为了提高算法效率和计算准确度,本发明同时从两个方向计算像素点到边缘的距离,并选取两者中较小的值所为该点到边界的距离,如图4所示。而目标点与边缘的距离为两个方向计算结果的较小的值,具体公式如下:

distance(x,y)=min{distance1(x,y),distance2(x,y)};

对于手部区域的任一像素点,当distance值大于周围点的distance值时,则认为其对应的坐标为手指骨骼点位置。

步骤3.2:实时指尖定位:传统的根据欧式距离远近关系决定指尖位置的实现方法中,在手指弯曲、张闭时以及手部运动过程中未正对传感器等情况下,会出现计算得到位置的不稳定以及与实际位置有较大偏差的情况。针对上述问题,本发明将测地距离应用于三维信息,使用最小三维测地距离(3-dimensiongeodesicshortestpath,3dgsp)作为特征参数,选取与掌心位置最小三维测地距离最大的备选骨骼像素点作为指尖,并且在计算后续指尖点时消除前序指尖点附近点的干扰。图5表示区域各像素点到原点的最小三维测地距离计算结果,各点间测地距离关系由下式给出,

,其中,origin为测地距离测量的原点,target为当前求解的目标点,neighbor为目标点target周围已求得3dgsp的临近点。各像素点之间距离关系由下式给出,

综上所述,本发明通过深度传感器实时捕捉手部位置、骨架和指尖来追踪手部运动。为了修正复杂背景和光照对传感器提供的原始数据的影响,本发明添加了遮挡恢复和抖动消除步骤,并将卡尔曼滤波算法应用于跟踪用户关节的运动以及未跟踪关节预测,随后根据准确性和鲁棒性要求提出了基于三维最小测地距离定位指尖位置的特征提取方案,根据实时性要求,提出了基于手部骨骼点的特征提取,提高了算法运行效率;将特征提取应用于骨骼点,构成了完整的满足实时手部运动分析要求的特征提取方案。最后通过实验验证了本发明提出的实时手部运动追踪方法结果的准确性、实时性和鲁棒性。

除上述实施例外,本发明还可以有其他实施方式。凡采用等同替换或等效变换形成的技术方案,均落在本发明要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1