一种基于深度图像的手掌跟踪方法和系统与流程

文档序号:12035793阅读:267来源:国知局
一种基于深度图像的手掌跟踪方法和系统与流程

本申请涉及图像处理领域,尤其涉及一种基于深度图像的手掌跟踪方法和系统。



背景技术:

传统的基于rgb的手势跟踪受背景环境、光照等因素影响较大,深度图能获取物体在3d空间中的位置信息,因此在目标跟踪方面有很大的优势。基于深度图的传统的手势跟踪方法有基于检测跟踪,基于连通集的分割与跟踪等。然而,由于手势跟踪时手型变化很多,手的速度时快时慢,并且受背景、身体、头等的干扰,这些方法可以在特定条件下实现手势跟踪,但是鲁棒性较差即持续跟踪能力较差。例如参考文献(chia-pingchen,yu-tingchen,ping-hanlee,yu-paotsai,andshawminlei,“real-timehandtrackingondepthimages”,(vcip),2011ieee)中公开了一种方法:以初始点加上速度预估手心位置,找出深度图中距离它最近的点进行区域生长,设定一个阈值限定生长范围,从而找出一个连通集,并找出连通集边界。然后对于分割出的连通集拟合一个球体,对球内所有点做加权,得到要跟踪的掌心。此方法生长点不稳,手部区域经常生长不完整,并且生长容易受手掌附近物体例如身体的影响,在运动速度过快或者与其他区域连通时,将导致目标跟踪失败并且无法恢复。



技术实现要素:

本申请的目标在于提供一种可以实现实时鲁棒的手掌跟踪的方法和系统。

本申请的目标由一种基于深度图像的手掌跟踪方法实现,该方法包括:

将包含手势的多个深度图像中的第一深度图像转换为3d点云并获得预估手掌心点;

以预估手掌心点作为初始点在测地线距离阈值范围内进行区域生长并获得手掌连通集;

获取手掌连通集的边界点集合;

确定手掌连通集中每个点到手掌连通集范围之外的逆区域生长种子点的测地线距离;根据测地线距离和边界点集合确定跟踪点;及基于跟踪点跟踪手掌。

本申请的目标还由一种基于深度图像的手掌跟踪系统实现,该系统包括:

预估手掌心点获取模块,用于将包含手势的多个深度图像中的第一深度图像转换为3d点云并获得预估手掌心点;

手掌连通集获取模块,用于以预估手掌心点作为初始点在测地线距离阈值范围内进行区域生长并获得手掌连通集;

边界点集合获取模块,用于获取手掌连通集的边界点集合;

测地线距离确定模块,用于确定手掌连通集中每个点到手掌连通集范围之外的逆区域生长种子点的测地线距离;

跟踪点确定模块,用于根据测地线距离和边界点集合确定跟踪点;及

手掌跟踪模块,用于基于跟踪点跟踪手掌。

通过本发明方法,使用测地线距离取代欧式距离,给出深度摄像机参数,可以基于深度图像恢复出的3d点云,根据区域生长找出手臂测地线方向,然后逆区域生长,实现对任意手型实时鲁棒的手掌跟踪,解决了现有技术在手型变化时容易跟丢的问题。

除非明确指出,在此所用的单数形式“一”、“该”均包括复数含义(即具有“至少一”的意思)。应当进一步理解,说明书中使用的术语“具有”、“包括”和/或“包含”表明存在所述的特征、步骤、操作、元件和/或部件,但不排除存在或增加一个或多个其他特征、步骤、操作、元件、部件和/或其组合。如在此所用的术语“和/或”包括一个或多个列举的相关项目的任何及所有组合。除非明确指出,在此公开的任何方法的步骤不必精确按照所公开的顺序执行。

附图说明

本发明将在下面参考附图并结合优选实施例进行更完全地说明。

图1为根据本发明方法的一实施例的流程图。

图2为根据本发明方法的另一实施例的流程图。

图3为根据本发明方法的另一实施例的流程图。

图4为根据本发明系统的一实施例的结构示意图。

图5为根据本发明系统的另一实施例的结构示意图。

为清晰起见,这些附图均为示意性及简化的图,它们只给出了对于理解本发明所必要的细节,而省略其他细节。

具体实施方式

通过下面给出的详细描述,本发明的适用范围将显而易见。然而,应当理解,在详细描述和具体例子表明本发明优选实施例的同时,它们仅为说明目的给出。

图1示出了本发明方法的一实施例,该实施例用于基于深度图像对手掌进行跟踪。该实施例的方法开始于步骤s10,采集包含手势的多个深度图像并基于相机参数将其转换为3d点云,根据静态或动态检测获得上一帧的手掌心位置。之后,处理进行到步骤s20,根据上一帧的跟踪位置和运动速度velocity等因素预估出当前帧手掌心大概位置以获得预估手掌心点。具体地,根据上一帧的手掌心位置ht-1,加上一个速度求取当前帧大概手掌位置。速度指上两帧之前的掌心位置之差。设当前帧手掌心为t时刻的掌心位置则:

可作为初始点找出手的部分即手掌连通集。然而,在实际情况中,由于速度估计与实际情况的误差,的稳定性很差。为了增加稳定性,求出之后,处理进行到步骤s30,首先根据画一个半径为r的球,取r的范围为70-150mm如100-120mm,对所有属于这个球内的点取加权平均,然 后再在3d点云空间中找出一个距离加权平均点seedpred最近的点作为矫正后的预估手掌心点。由于是3d上的距离,通常不可能存在完全相等的两个距离加权平均点最近的点。如果在极端情形下有多个距离加权平均点最近的点,选取其中任意一个即可。设p为3d点云集合,p为点云中一个点,seed为矫正后的预估手掌心点,则:

之后,处理进行到步骤s40,以矫正后的预估手掌心点作为初始点在测地线距离阈值范围内进行区域生长以获得手掌连通集作为初始手的部分,其中测地线距离阈值可在400-600mm之间选择,例如选择为500mm。定义3d空间的连通:3d空间中两个点a和b连通的条件是他们之间的距离dist(a,b)小于某个阈值δ,即

在实施例中,将δ值设置为20-40mm,优选25-30mm。然后使用区域生长,一种串行区域分割的图像分割方法,来找出连通集。区域生长指从某个初始点出发,按照一定的准则,逐步加入邻近像素(一般四邻域或者八邻域),当满足一定的条件时,区域生长终止。在该实施例中,设置一个测地线距离阈值限制区域生长范围。从而避免将身体其他部分包含进连通集。测地线距离是指从某个点沿着某个路径达到种子结点的最近距离。与欧式距离不同,测地线距离对拓扑结构敏感,从而有效避免了因为深度图像的噪声点把手掌和身体区域连在一起的问题。

如果区域生长的连通集点数过少例如少于预设连通集点数第一阈值时,就以矫正后的预估手掌心点的邻域作为新的初始点重新生长,其中第一阈值可以是100-300点之间的任意点数。这样操作后,基本排除了初始点无法生长的可能性。初始点的选取对结果影响非常大。如果初始点选取不好,它和周围点的 距离都大于δ,那么区域生长就无法生长出手部区域,容易造成手掌跟踪丢失。为此,在获得手掌连通集之后,处理进行到步骤s50,根据区域生长终止位置判断出手掌方向,然后逆区域生长。手掌方向也是建立在测地线距离基础上。区域生长时,由于手臂因为离手的部分测地线距离最远,我们以最后停止生长的方向为指向手臂的方向。找到指向手臂的方向之后,在此方向上选取在测地线距离第二阈值范围内的点并求出这些点的中值以得到逆区域生长种子点,其中测地线距离第二阈值为200-250mm之间的任意数值;然后以逆区域生长种子点为初始点朝向与指向手臂的方向相反的方向即手掌方向进行逆区域生长。逆区域生长主要是为了根据测地线距离的不同设定不同的权重。之后,处理进行到步骤s60,求取手掌连通集边界。在计算连通集边界时,我们采用较为直接的判断逻辑,即判断每个点的四邻域或者八邻域是否都属于连通集。如果都属于,则不是边界;如果存在某个邻域不属于连通集,则此点就是边界。对所述连通集内的每个点进行是否为边界点的判断从而得到连通集边界点集合。在实施例中,步骤s50和s60的顺序也可交换。之后,处理进行到步骤s70,根据所述连通集中每个点到逆区域生长种子点的测地线距离和所述边界点集合确定跟踪点以跟踪手掌。首先,根据所述连通集中每个点到逆区域生长种子点的测地线距离设定权重,测地线距离越大,权重越高。权重的设定可以使用很多方法实现,比如指数形式、平方形式等。然后,以手掌的非边界点为中心,如果周围边界点到该点的测地线距离小于r,则将其加入备选非边界点集合,然后找出备选非边界点集合中权重最大的非边界点。设连通集集合为ω,边界点集合为,为权重最大的点,geodesic_dist(p,q)表示p和q的测地线距离,weight(dist)表示某个测地线距离的权重,则:

找到权重最大点后,再进行一次加权平均,即根据权重最大的非边界点画一个半径为r的球,其中r为70-150mm如100-120mm;对所有属于该球内的点取加权平均得到要跟踪的点。

在实施例中,为使跟踪点更加稳定,通过取权值最大的前几个如3-5个点分别进行加权平均得到多个手掌中心候选点,然后再对多个手掌中心候选点进行加权平均,从而得到更加稳定的跟踪点。

本发明根据运动连续性预估手掌心位置,并基于测地线距离完成区域生长,利用测地线距离对拓扑结构敏感的特性,增加了手掌分割的鲁棒性。在找出指向手臂方向后,在特定位置找出鲁棒点进行逆区域生长,然后根据测地线距离设置权重,并基于边界信息找出权重最大的几个点,对这几个点分别画球进行加权平均估计手掌心候选点,最后对手掌心候选点再进行加权平均获取更稳的手掌跟踪点,从而确保了跟踪点的鲁棒性,进而提高了持续跟踪的能力。

图2示出了本发明方法的另一实施例,除包括图1所示方法的所有步骤之外,对手掌进行跟踪还包括步骤s80,判断手掌跟踪是否跟踪丢失。在下述情形之一出现时确定手掌跟踪丢失:

1)生长出手部区域连通集过小。如果连通集点数少于预设连通集点数第二阈值如3-10个,即可判断跟踪丢失。

2)在确定矫正后的预估手掌心点时,计算初预估手掌心点与矫正后的预估手掌心点的距离,如果距离大于预设掌心间距离阈值如500-1000mm,判断为跟踪丢失。

3)如果区域生长在一距离范围内的边界点个数多于预设边界点阈值,判断为跟踪丢失。该距离范围根据区域生长情况确定。预设边界点阈值与根据上面求出的距离范围内的点确定的距离有关,阈值跟距离满足反函数关系。边界点突然增多,即意味着连通集包含了身体除手以外的其他部分。

4)根据跟踪点的位置(x,y,z),在平面深度图上找出与跟踪点深度差别不大于深度阈值如120-150mm的连通集。根据跟踪点在空间中的位置即根据摄像头参数和手到摄像头的距离,得出在平面上包含手的第一圆的半径,该半径可 比手适当小一点。然后预设比例如0.25-0.5,得到包含手和手之外部分的第二圆,手之外部分指与手(掌)相连的手腕和/或手臂部分。然后求出第一圆内像素个数与第一圆面积之比r1及两个圆之间圆环内像素个数与圆环面积之比r2,如果r2与r1的比值大于预设比值阈值如0.5-0.8,则连通集包含了除手以外的其他部分,即可判断为跟踪丢失。

在确定跟踪丢失时,处理进行到步骤s90,删除当前跟踪对象。

图3示出了本发明方法的另一实施例,除包括图1所示方法的所有步骤之外,该实施例的方法在步骤s40获得手掌连通集之后还包括步骤s45,进行第一次判断手掌跟踪是否跟踪丢失。在下述情形之一出现时确定手掌跟踪丢失:

1)生长出手部区域连通集过小。如果连通集点数少于预设连通集点数第二阈值如3-10个,即可判断跟踪丢失。

2)在确定矫正后的预估手掌心点时,计算预估手掌心点与矫正后的预估手掌心点的距离,如果距离大于预设掌心间距离阈值如500-1000mm,判断为跟踪丢失。

在步骤s45确定手掌跟踪丢失时,处理进行到步骤s90,删除当前跟踪对象;否则,处理进行到步骤s50,并继续执行步骤s50-s70。在步骤s70之后还包括步骤s80’,进行第二次判断手掌跟踪是否跟踪丢失。在下述情形之一出现时在第二次判断时确定手掌跟踪丢失:

a)如果区域生长在一距离范围内的边界点个数多于预设边界点阈值,判断为跟踪丢失。该距离范围根据区域生长情况确定。预设边界点阈值与根据上面求出的距离范围内的点确定的距离有关,阈值跟距离满足反函数关系。边界点突然增多,即意味着连通集包含了身体除手以外的其他部分。

b)根据跟踪点的位置(x,y,z),在平面深度图上找出与跟踪点深度差别不大于深度阈值如120-150mm的连通集。根据跟踪点在空间中的位置即根据摄像头参数和手到摄像头的距离,得出在平面上包含手的第一圆的半径,该半径可比手适当小一点。然后预设半径比如0.25-0.5,第一圆的半径除以预设半径比即得到包含手和手之外部分的第二圆的半径。然后求出第一圆内像素个数与第 一圆面积之比a1及两个圆之间圆环内像素个数与圆环面积之比a2,如果a2与a1的比值大于预设比值阈值如0.5-0.8,则连通集包含了除手以外的其他部分,即可判断为跟踪丢失。

在步骤s80’确定跟踪丢失时,处理进行到步骤s90,删除当前跟踪对象。

该实施例的方法由于在不同阶段多次进行手掌跟踪丢失判断,有利于提高手掌跟踪的处理效率。

图4示出了本发明系统的一实施例的结构示意图,该系统用于基于深度图像对手掌进行跟踪,该系统包括:深度图像采集模块10,用于采集包含手势的深度图像;预估手掌心点获取模块20,用于将深度图像转换为3d点云并根据上一帧的跟踪位置和运动速度等因素预估出当前帧手掌心大概位置以获得预估手掌心点;预估手掌心点矫正模块30,用于根据预估手掌心点画一个半径为r的球,对所有属于这个球内的点取加权平均,然后再在3d点云空间中找出一个距离加权平均点最近的点作为矫正后的预估手掌心点;手掌连通集获取模块40,用于以矫正后的预估手掌心点作为初始点在测地线距离阈值范围内进行区域生长以获得手掌连通集;边界点集合获取模块50,用于获取手掌连通集的边界点集合;测地线距离确定模块60,用于确定手掌连通集中每个点到手掌连通集范围之外的逆区域生长种子点的测地线距离;跟踪点确定模块70,用于根据测地线距离和边界点集合确定跟踪点;及手掌跟踪模块80,用于基于跟踪点跟踪手掌。

图5示出了本发明系统的另一实施例的结构示意图,除包括图4所示系统的所有模块之外,在该实施例的系统中,手掌跟踪模块80还包括手掌跟踪丢失判断子模块81,用于判断手掌跟踪是否跟踪丢失;及跟踪对象删除子模块82,用于在确定跟踪丢失时,处删除当前跟踪对象。手掌跟踪丢失判断子模块81在下述情形之一出现时确定手掌跟踪丢失:

1)生长出手部区域连通集过小。如果连通集点数少于预设连通集点数第二阈值如3-10个,即可判断跟踪丢失。

2)在确定矫正后的预估手掌心点时,计算预估手掌心点与矫正后的预估手掌心点的距离,如果距离大于预设距离阈值如500-1000mm,判断为跟踪丢失。

3)如果区域生长在一距离范围内的边界点个数多于预设边界点阈值,判断为跟踪丢失。

4)根据跟踪点的位置(x,y,z),在平面深度图上找出与跟踪点深度差别不大于深度阈值如120-150mm的连通集。根据跟踪点在空间中的位置,得出在平面上包含手的第一圆的半径,然后预设半径比如0.25-0.5,第一圆的半径除以预设半径比即得到包含手和手之外部分的第二圆的半径。然后求出第一圆内像素个数与第一圆面积之比a1及两个圆之间圆环内像素个数与圆环面积之比a2,如果a2与a1的比值大于预设比值阈值如0.5-0.8,则判断为跟踪丢失。

在另一实施例中,提供一种基于深度图像的手掌跟踪装置,所述装置包括:存储器,用于存储程序代码;及处理器,用于执行所述程序代码以执行下述步骤:将包含手势的多个深度图像中的第一深度图像转换为3d点云并获得预估手掌心点;以所述预估手掌心点作为初始点在测地线距离阈值范围内进行区域生长并获得手掌连通集;获取所述手掌连通集的边界点集合;确定所述手掌连通集中每个点到所述手掌连通集范围之外的逆区域生长种子点的测地线距离;根据所述测地线距离和所述边界点集合确定跟踪点;及基于所述跟踪点跟踪手掌。

一些优选实施例已经在前面进行了说明,但是应当强调的是,本发明不局限于这些实施例,而是可以本发明主题范围内的其它方式实现。

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