一种基于深度图的实时低复杂度手指运动轨迹形状识别算法的制作方法

文档序号:15449567发布日期:2018-09-14 23:48阅读:1253来源:国知局

本发明涉及3d深度相机的信号处理技术领域,具体为一种基于深度图实时低复杂度手指运动轨迹形状识别算法。



背景技术:

手指动作识别是基于人体动作的人机交互技术的重要手段,传统的基于rgb相机的方法由于其无法直接得到3d距离信息,需要大量的运算才能够获取手指位置信息,计算复杂度高、效率低且错误率高。随着3d深度相机的技术成熟和普及,利用3d深度相机提供的深度图,能够克服传统rgb相机在手指运动轨迹检测方面遇到的困难,直接利用手指在空间3d的运动轨迹,精确计算轨迹的3d曲线参数,并通过识别不同的曲线类型,为基于手指运动轨迹的人机交互技术提供支撑。

由于3d深度相机得到的深度图中除了反映手指形状和位置信息的像素点之外,还有不少噪声和干扰像素点。为了可靠稳定的得到手指轨迹信息,需要进行像素点的处理,通过多帧深度图中的指尖像素的统计特性计算,降低噪声和干扰带来的轨迹误差,并提高识别准确率。



技术实现要素:

本发明的目的在于提供一种基于深度图实时低复杂度手指运动轨迹形状识别算法,以解决上述背景技术中提出的问题。

为实现上述目的,本发明提供如下技术方案:一种基于深度图实时低复杂度手指运动轨迹形状识别算法,该方法包括如下步骤:

(1)根据深度图切割获得指尖像素点,找出深度图中指尖对应的像素点集;

(2)计算深度图像素统计参数得到指尖位置和图像质量,根据指尖所在位置像素点对应3d点云的形状参数,得到指尖坐标和指尖深度图的质量指标;

(3)对连续多帧指尖轨迹形状进行判别,基于连续多帧得到的指尖位置和质量指标,对指尖轨迹坐标进行计算,判别出轨迹形状。

优选的,所述的基于深度图实时低复杂度手指运动轨迹形状识别算法,所述的步骤(1)根据深度图切割获得指尖像素点算法,由近到远切割深度图,并根据空间距离对像素点聚类,从深度图中找到得到和指尖物理尺寸相符合的指尖像素点集。

优选的,所述的基于深度图实时低复杂度手指运动轨迹形状识别算法,所述的步骤(2)计算深度图像素统计参数得到指尖位置和图像质量算法,计算指尖所在位置像素点对应3d点云的均值、方差,并以此计算得到指尖的3d坐标和深度图中指尖图像的质量指标。

优选的,所述的基于深度图实时低复杂度手指运动轨迹形状识别算法,所述的步骤(3)基于连续多帧得到的指尖位置和质量指标,计算指尖轨迹坐标的特征数据,并在此基础上比对特定的轨迹线条的特征,判别出垂直和水平、圆圈、静止这几种轨迹形状。

与现有技术相比,本发明的有益效果是:该基于深度图实时低复杂度手指运动轨迹形状识别算法通过多帧深度图中的指尖像素的统计特性计算,降低噪声和干扰带来的轨迹误差,并提高识别准确率。

附图说明

图1为本发明框图。

图2为本发明识别指尖圆周运动轨迹的例子图。

图3为本发明识别指尖垂直直线运动轨迹的例子图。

图4为本发明识别指尖水平直线运动轨迹的例子。

图5为本发明识别指尖静止的例子图。

具体实施方式

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

请参阅图1-图5,本发明提供一种技术方案:

实施例1:

一种基于深度图实时低复杂度手指运动轨迹形状识别算法,该方法包括如下步骤:

(1)根据深度图切割获得指尖像素点,找出深度图中指尖对应的像素点集;

(2)计算深度图像素统计参数得到指尖位置和图像质量,根据指尖所在位置像素点对应3d点云的形状参数,得到指尖坐标和指尖深度图的质量指标;

(3)对连续多帧指尖轨迹形状进行判别,基于连续多帧得到的指尖位置和质量指标,对指尖轨迹坐标进行计算,判别出轨迹形状。

实施例2:

根据实施例1所述的基于深度图实时低复杂度手指运动轨迹形状识别算法,所述的步骤(1)根据深度图切割获得指尖像素点算法,由近到远切割深度图,并根据空间距离对像素点聚类,从深度图中找到得到和指尖物理尺寸相符合的指尖像素点集。

实施例3:

根据实施例1或2所述的基于深度图实时低复杂度手指运动轨迹形状识别算法,所述的步骤(2)计算深度图像素统计参数得到指尖位置和图像质量算法,计算指尖所在位置像素点对应3d点云的均值、方差,并以此计算得到指尖的3d坐标和深度图中指尖图像的质量指标。

实施例4:

根据实施例1或2或3所述的基于深度图实时低复杂度手指运动轨迹形状识别算法,所述的步骤(3)基于连续多帧得到的指尖位置和质量指标,计算指尖轨迹坐标的特征数据,并在此基础上比对特定的轨迹线条的特征,判别出垂直和水平、圆圈、静止这几种轨迹形状。

实施例5:

根据实施例1或2或3所述的基于深度图实时低复杂度手指运动轨迹形状识别算法,本发明是通过图1给出的总体算法架构实现的。算法包括几个处理步骤:1)根据深度图切割获得指尖像素点(图1中标号1)——找出深度图中指尖对应的像素点集;2)计算深度图像素统计参数得到指尖位置和图像质量(图1中标号2)——根据指尖所在位置像素点对应3d点云的坐标均值和方差,得到指尖坐标和指尖深度图的质量指标;3)对连续多帧指尖轨迹进行形状判别(图1中标号3)——基于连续多帧得到的指尖位置和质量指标,对指尖轨迹坐标进行计算,根据轨迹坐标特征判别出特定的轨迹形状。这3个步骤的每一步都是后续步骤的支撑,是保证识别准确率和效率的关键。

对图1中各个算法步骤的具体实现原理如下给出。

步骤1.根据深度图切割获得指尖像素点(图1中标号1)

对于输入深度图,找出距离最近的像素点,记录该像素的深度d。然后依次找出深度图中距离小于lk=d+k*1cm的像素,其中k依次取值为0,1,2,…,直到lk大于深度图中的最远距离像素的距离值。

对于每个k,对深度图中距离小于lk=d+k*1cm的像素根据其对应的点云的3d距离进行聚类,将像素点分为多个集合。对于每个像素集合内任意两个像素点,在该集合内存在一个像素序列,以这两个像素点为序列首尾,序列内相邻两个像素对应的点云的空间距离小于1mm。

对于每一个k的取值,根据上述聚类方法对距离小于lk=d+k*1cm的像素聚类,然后计算每个像素集合内的像素数量,只要任意一个像素集合的像素数量超过特定门限c,则将其标注为指尖对应的像素点集,并且进入下一步的处理(图中标号3),而不再根据k的后续取值计算了。这里的门限c是根据成年人手指指尖的平均物理尺寸对应的深度图上的像素数量决定的。

步骤2.计算深度图像素统计参数得到指尖位置和图像质量(图1中标号2)

对于步骤1得到深度图中的指尖像素集合,计算像素对应的点云的3d物理坐标,记为{(xn,yn,zn)},n=1,2,3,…,n,其中n是指尖像素集合中像素数量。根据上述物理坐标计算下面以下统计量:

1)均值:

x=(n=1nxn)/n,y=(n=1nyn)/n,z=(n=1nzn)/n

2)方差:

x2=n=1n(xn-x)2/n,y2=n=1n(yn-y)2/n,z2=n=1n(zn-z)2/n

根据上述方差统计量计算质量指标:q=max(1/x2,1/y2,1/z2)

质量指标越大,表明深度图中指尖像素图像质量越好。

计算出来的均值作为检测出来的指尖中心位置(fx,fy,fz),其中:fx=x,fy=y,fz=z。

步骤3.对连续多帧指尖轨迹进行形状判别(图1中标号3)

记录最近1.5秒内每帧深度图得到的指尖位置和质量指标,计算平均质量指标:q=(m=1mqm)/m,其中m是1.5秒内获得的深度图的帧数,qm是第m帧深度图得到质量指标,m=1,2,…,m。如果对于第m帧图像,在步骤1中没有检出手指,则规定该帧的质量指标qm=0。

当平均质量指标q小于特定门限时,认为图像质量过低,不再继续识别手指轨迹。个否则计算形状参数,具体包括两个部分:

1)计算x,y方向的像素运动范围

对于m帧深度图中,对于检出手指的深度图,计算手指x坐标的最大最小值(记作:xmax和xmin)和y坐标的最大最小值(记作:ymax和ymin)

x和y方向运动范围分别定义为:wx=xmax-xmin和wy=ymax-ymin

2)根据运动范围判定指尖轨迹形状,判别条件如下

a)如果wx<t,并且wy<t,则识别出手指静止,其中t是给定的门限值。图5给出一个识别的例子,图中粗线对应手指运动轨迹。

b)如果条件a)不满足,且0.5<wx/wy<2,则识别出圆周运动轨迹。图2给出一个识别的例子,图中粗线对应手指运动轨迹。

c)如果条件a)不满足,且wx/wy>4,则识别出水平直线运动轨迹。图3给出一个识别的例子,图中粗线对应手指运动轨迹。

d)如果条件a)不满足,且wy/wx>4,则识别出垂直直线运动轨迹。图4给出一个识别的例子,图中粗线对应手指运动轨迹。

如果以上a)、b)、c)、d)都不满足,则表示指尖轨迹识别失败。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

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