在手势识别中确定手掌区域的方法、装置及设备与流程

文档序号:11693747阅读:335来源:国知局
在手势识别中确定手掌区域的方法、装置及设备与流程

本发明涉及智能控制领域,更具体地说,涉及一种在手势识别中确定手掌区域的方法、装置及设备。



背景技术:

在智能控制领域中,手势识别是一种重要的控制方法。通常,在具有视觉功能的智能设备的视觉范围内,使用者做出特定形状的、事先设定其对应操作的手势,当设备识别到这些手势后,查找到其对应的操作,就能够自动进行对应的操作。在这个过程中,要进行设定的操作,必然要对手势进行识别,而识别手势的基础,是要确定手掌的区域,在该区域内对手势进行识别。一般来讲,是通过判断手掌的区域的轮廓形状,进而进行手势识别的。在现有技术中,是通过取得手掌轮廓的距离图中最大值(每个像素点到轮廓边沿的最小欧拉距离),然后将该最大值所在位置设定为掌心,进而得到手势轮廓的。虽然在多数时候能够正确识别,但是,现有技术中的识别方案存在算法复杂、开销大、位置误差较大的缺点。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术的上述算法复杂、开销大、位置误差较大缺陷,提供一种算法简单、开销小、位置误差较小的在手势识别中确定手掌区域的方法、装置及设备。

本发明解决其技术问题所采用的技术方案是:构造一种在手势识别中确定手掌区域的方法,包括如下步骤:

a)取得手势图像,提取该手势图像在设定范围内的最大轮廓;

b)计算所述最大轮廓的中的多个凹陷点的坐标值,得到所述多个凹陷点的平均点;

c)使用腐蚀法多次处理所述最大轮廓,使处理后的轮廓的面积小于所述最大轮廓的面积且和所述最大轮廓的面积为设定比例;

d)对处理后的轮廓的各像素点的坐标值进行加权,权值为该像素点在所述处理后的轮廓中的高度;计算加权后的像素点的平均点,得到第一平均点;

e)判断所述第一平均点和凹陷点的平均点的欧拉距离是否小于设定阈值,如是,以所述第一平均点为手掌中心,对所述处理后的轮廓进行选择,去掉手臂部分,得到手势轮廓;否则,在所述最大轮廓中删除所述凹陷点的平均点和第一平均点点的中线一侧的像素,并返回步骤c)。

更进一步地,所述步骤c)中,第一次腐蚀以所述最大轮廓为处理对象,以后均以前一次腐蚀得到的轮廓为处理对象;每次腐蚀处理的步长相同,每次腐蚀处理后均计算该处理后的轮廓的面积与最大轮廓的面积的比例是否符合设定,如是,执行下一步骤,否则,继续进行下一次腐蚀处理;其中,每次腐蚀处理的步长为s,总共进行n次腐蚀处理。

更进一步地,所述设定阈值包括n(s-1)。

更进一步地,所述步骤e)中当所述第一平均点和凹陷点的平均点的欧拉距离小于设定阈值时,进一步包括如下步骤:

以所述第一平均点为圆心,以所述设定阈值为半径做圆,在得到的圆周每隔设定角度选择一个点,得到多个选择点;

遍历所述选择点,判断是否有超过设定值的、连续的选择点位于所述处理后的轮廓内,如是,则以位于所述处理后的轮廓内的选择点所在圆弧为选择圆弧,删除所述选择圆弧外的轮廓,得到所述手势轮廓。

更进一步地,所述步骤e)中删除所述凹陷点的平均点和第一平均点的中线一侧的像素进一步包括:

连接所述凹陷点的平均点和第一平均点所在的点,并在该连线的中点作一垂直于该连线的直线,得到所述凹陷点的平均点和第一平均点的中线;

删除由所述中线划分的、与所述第一平均点位于同一侧的轮廓。

更进一步地,所述最大轮廓是在深度摄像头取得深度图像中,按照设定的深度范围提取的该深度图像该深度范围内的最大轮廓。

更进一步地,所述步骤a)中进一步包括对所述最大轮廓进行消除不平边沿的线化处理步骤。

在本实施例中,还包括一种实现上述方法的装置,包括:

最大轮廓取得单元:用于取得手势图像,提取该手势图像在设定范围内的最大轮廓;

凹陷计算单元:用于计算所述最大轮廓的凹陷点,得到所述凹陷点的平均点;

轮廓处理单元:用于使用腐蚀法多次处理所述最大轮廓,使处理后的轮廓的面积小于所述最大轮廓的面积且和所述最大轮廓的面积为设定比例;

加权单元:用于对处理后的轮廓的各像素点的坐标值进行加权,权值为该像素点在所述处理后的轮廓中的高度;计算加权后的像素点的平均点,得到第一平均点;

手势轮廓取得单元:用于判断所述第一平均点和凹陷点的平均点的欧拉距离是否小于设定阈值,如是,以所述第一平均点为手掌中心,对所述处理后的轮廓进行选择,去掉手臂部分,得到手势轮廓;否则,删除所述凹陷点的平均点和第一平均点的中线一侧的像素,并返回调用轮廓处理单元。

更进一步地,所述轮廓处理单元中,第一次腐蚀以所述最大轮廓为处理对象,以后均以前一次腐蚀得到的轮廓为处理对象;每次腐蚀处理的步长相同,每次腐蚀处理后均计算该处理后的轮廓的面积与最大轮廓的面积的比例是否符合设定,如是,调用加权单元,否则,继续进行下一次腐蚀处理;其中,每次腐蚀处理的步长为s,总共进行n次腐蚀处理;所述设定阈值包括n(s-1)。

更进一步地,所述手势轮廓取得单元中进一步包括:

选择点取得模块:用于以所述第一平均点为圆心,以所述设定阈值为半径做圆,在得到的圆周每隔设定角度选择一个点,得到多个选择点;

选择圆弧取得模块:用于遍历所述选择点,判断是否有超过设定值的、连续的选择点位于所述处理后的轮廓内,如是,则以位于所述处理后的轮廓内的选择点所在圆弧为选择圆弧,删除所述选择圆弧外的轮廓,得到所述手势轮廓;

中线取得模块:用于连接所述凹陷点的平均点和第一平均点所在的点,并在该连线的中点作一垂直于该连线的直线,得到所述凹陷点的平均点和第一平均点的中线;

轮廓选择模块:用于删除由所述中线划分的、与所述第一平均点位于同一侧的轮廓。

本实施例中,还包括一种手势识别设备,包括设置在手势识别设备中的深度摄像组件和处理器,所述深度摄像组件用于取得出现在所述深度摄像组件的作用视野范围内的手势图像,所述处理器进一步包括用于深度摄像组件深度摄像组件提取该手势图像在设定范围内的最大轮廓;计算所述最大轮廓的中的多个凹陷点的坐标值,得到所述多个凹陷点的平均点;使用腐蚀法多次处理所述最大轮廓,使处理后的轮廓的面积小于所述最大轮廓的面积且和所述最大轮廓的面积为设定比例;对处理后的轮廓的各像素点的坐标值进行加权,权值为该像素点在所述处理后的轮廓中的高度;计算加权后的像素点的平均点,得到第一平均点;判断所述第一平均点和凹陷点的平均点的欧拉距离是否小于设定阈值,如是,以所述第一平均点为手掌中心,对所述处理后的轮廓进行选择,去掉手臂部分,得到手势轮廓;否则,在所述最大轮廓中删除所述凹陷点的平均点和第一平均点的中线一侧的像素,并以得到的图像为最大轮廓再次进行腐蚀处理的数字信号处理器。

更进一步地,所述处理器在对所述最大图像轮廓进行腐蚀时,第一次腐蚀以所述最大轮廓为处理对象,以后均以前一次腐蚀得到的轮廓为处理对象;每次腐蚀处理的步长相同,每次腐蚀处理后均计算该处理后的轮廓的面积与最大轮廓的面积的比例是否符合设定比例,如是,执行下一步骤,否则,继续进行下一次腐蚀处理;其中,每次腐蚀处理的步长为s,总共进行n次腐蚀处理。

更进一步地,所述处理器还包括对所述最大轮廓进行消除不平边沿的线化处理的数字信号处理器。

更进一步地,所述手势识别设备包括移动数字终端、桌面数字终端、可穿戴数字终端或车载数字终端。

实施本发明的在手势识别中确定手掌区域的方法、装置及设备,具有以下有益效果:由于取得最大轮廓的凹陷点的平均点,然后在对最大轮廓进行采用腐蚀算法进行处理,使得处理后的轮廓面积小于最大轮廓面积且与最大轮廓面积成设定的比例,然后对处理后的轮廓中的像素点的坐标值进行加权平均,得到第一平均点;比较第一平均点和凹陷点平均点的差值,在其小于设定阈值时以第一平均点作为手掌中心;而在上述差值较大时,去掉部分轮廓再重复上述腐蚀算法;这样,可以在取得的轮廓包括较大的手臂部分时将其去除,从而逐步缩小手掌区域的判断范围。因此,其算法简单、开销小、位置误差较小。

附图说明

图1是本发明在手势识别中确定手掌区域的方法实施例中确定手掌区域的方法流程图;

图2是所述实施例中选择手掌轮廓的位置示意图;

图3是所述实施例中删除轮廓部分的位置示意图;

图4是所述实施例中在手势识别中确定手掌区域的装置的结构示意图。

具体实施方式

下面将结合附图对本发明实施例作进一步说明。

如图1所示,在本发明的在手势识别中确定手掌区域的方法实施例中,该方法包括如下步骤:

步骤s11取得手势图像的最大轮廓:在所有的手势识别中,都是以取得手势图像作为开始步骤的。在本实施例中也不例外。在本步骤中,通过摄像头取得手势图像,提取该手势图像在设定范围内的最大轮廓;在本实施例中,上述摄像头是深度摄像头,所述最大轮廓是在该深度摄像头取得深度图像中,按照设定的深度范围提取的该深度图像该深度范围内的最大轮廓。在实际操作中,通过上述步骤得到的最大轮廓是可以使用的。但是,在本实施例中,由于后续的步骤中涉及到凹陷点的平均点的计算,因此直接使用上述步骤得到的最大轮廓虽然也是可行的,但是,可能会出现在取得图像有瑕疵时,凹陷点的平均点出现偏移的情况。例如,在手指或手掌边沿有微小的凹陷(当然不是两个手指之间的凹陷这么大)时,可能会出现偏差。为此,在本实施例中,在一些情况下,在本步骤中,还可以对取得最大轮廓进行线化处理,消除该最大轮廓边沿部分存在的一些微小的凹陷,使得该最大轮廓边沿较为整齐,不存在向该轮廓内部突出的较小的凹陷,从而使得后续步骤中得到的凹陷点的平均点较为准确。从某种意义上来讲,上述线化过程也是一个使得上述最大轮廓边沿平滑的过程。

步骤s12取得最大轮廓的凹陷点的平均点:在本步骤中,计算所述最大轮廓的中的多个凹陷点的坐标值,得到所述多个凹陷点的平均点。也就是说,在本步骤中,例如,在垂直方向上,对上述最大轮廓或线化处理后的最大轮廓进行处理,找到该最大轮廓中的所有凹陷点的坐标值(例如,所有凹陷点的纵坐标值),并得到这些凹陷点在垂直方向上距该最大轮廓顶部的距离或者这些凹陷点下陷的深度,将这些深度相加,并除以凹陷点的个数,就得到上述凹陷点在垂直方向上的平均值;采用同样的步骤对上述凹陷点的水平方向上坐标值(例如,横坐标值)进行处理。得到所述凹陷点在水平方向上的平均值。这两个平均值在上述坐标系中表示的点,就是上述凹陷点的平均点。从某种意义上来讲,这些凹陷点表示两个手指之间的凹陷。

步骤s13使用腐蚀算法处理最大轮廓,得到处理后的轮廓:在本步骤中,使用腐蚀法多次处理上述最大轮廓,使处理后的轮廓面积和上述最大轮廓面积的为设定比例;换句话说,就是使用腐蚀算法对上述最大轮廓进行腐蚀,使得轮廓的面积逐渐减小,直到得到的轮廓面积是上述最大轮廓面积的一个百分比,例如80%,90%等等;每次腐蚀后都会比较得到的轮廓面积与最大轮廓面积的比例是否符合上述规定;例如,假设上述比例是90%,第一次腐蚀后,得到的轮廓与最大轮廓的比例是95%,需要进行第二次腐蚀,第二次腐蚀后,再次判断其比例,直到该比例小于或等于设定比例,则结束腐蚀,得到处理后的轮廓;同时也得到了腐蚀的次数。其中,第一次腐蚀以所述最大轮廓为处理对象,以后的每次腐蚀均以前一次腐蚀得到的轮廓为处理对象;每次腐蚀处理的步长相同,每次腐蚀处理后均计算该处理后的轮廓与最大轮廓的比例是否符合设定,如是,执行下一步骤,否则,继续进行下一次腐蚀处理;其中,每次腐蚀处理的步长为s,总共进行n次腐蚀处理。

步骤s14对处理后的轮廓的像素点加权,得到第一平均点:在本在步骤中,对处理后的轮廓的各像素点进行加权,权值为该像素点在所述处理后的轮廓中的高度;计算加权后的像素点的平均值,得到第一平均点;具体来讲,首先是对每个像素点所在位置的纵坐标值进行加权,权值为该像素点在所述处理后的轮廓中的高度,将多个像素点加权后的纵坐标值相加,除以像素点的个数,得到处理后的轮廓的像素点的纵坐标平均值;然后在对上述像素点的横坐标值进行加权,权值仍然是该像素点在所述处理后的轮廓中的高度,将多个像素点加权后的纵坐标值相加,除以像素点的个数,得到处理后的轮廓的像素点的横坐标平均值;得到的像素点的纵坐标平均值和横坐标平均值在上述坐标系中表示的点,就是第一平均点。在本实施例中的一些情况下,为了减少运算开销,节约处理时间,也可以不对上述像素点的横坐标值进行加权,而是直接取其平均值作为上述第一平均点的横坐标平均值;还可以不对上述像素点的横坐标值进行运算,而是直接使用上述凹陷点的平均点的横坐标作为第一平均点的横坐标。这样虽然可能带来一定的偏差,但是也减少了运算成本,节省了处理时间。在一些要求不是太高、处理器能力有限的场合,具有一定的使用价值,不失为一种较佳的实施方式。

步骤s15第一平均点和凹陷点的平均点的欧拉距离是否小于设定阈值,如是,执行步骤s16;否则,执行步骤s17。在本步骤中,上述设定阈值为n(s-1);其中,n是上述对最大轮廓进行腐蚀处理的次数,s是每次腐蚀处理的步长。

步骤s16以第一平均点为掌心,得到手势轮廓:在本步骤中,以所述第一平均点为手掌中心,对所述处理后的轮廓进行选择,去掉手臂部分,得到手势轮廓;

步骤s17在所述最大轮廓中删除凹陷平均点和第一平均点的中线一侧的轮廓:在本步骤中,在所述最大轮廓中删除所述凹陷点的平均点和第一平均点之间的中线一侧的像素,并返回步骤s13,重新以删除部分线条的轮廓作为最大轮廓,进行腐蚀处理并重复后面的步骤。

请参见图2,图2示出了在本实施例中选择手掌轮廓的位置示意图。在选择手掌轮廓时,也就是当判断上述第一平均点和凹陷点的平均点的欧拉距离小于设定阈值时,选择上述第一平均点(图2中,第一平均点以c1表示)作为手掌中心,即以所述第一平均点为圆心,以所述设定阈值(在本实施中,如上所述,设定阈值为n(s-1))为半径做圆(在图2中,该圆标记为a),在得到的圆周每隔设定角度选择一个点,得到多个选择点(在图2中,这些选择点标记为b);值得一提的是,为简便清晰起见,在图2中,并没有标记处全部选择点,实际上,上述选择点遍布圆a的圆周上。当上述选择点选定后,遍历所述选择点,判断是否有超过设定值个数的、连续的选择点位于所述处理后的轮廓内,如是,则以位于所述处理后的轮廓内的选择点所在圆弧为选择圆弧,删除所述选择圆弧外侧的轮廓,得到所述手势轮廓。在图2中,标记有斜线部分的轮廓是被删除的轮廓。在本实施例中的设定角度和判断选择圆弧时的设定值是相关的,同时,也是事先设定的,这两个参数相互配合,保证了得到的选择圆弧的正确性。例如,当上述设定角度是10度时,上述圆a上共有36个选择点,此时,在轮廓内的连续的选择点的设定值可以设定为8个,使得选择圆弧大于整个圆周的20%,从而保证了选择圆弧的正确性。从实际操作的角度出发,上述选择圆弧在上述圆周中的占比取值为10-30%时,能够适应不同人群的手掌识别,例如,小孩的手臂和专业运动员的手臂。

图3示出了当上述第一平均点和凹陷点的平均点的欧拉距离大于或等于设定阈值时,删除部分轮廓的位置情况。在本实施例中,当上述第一平均点和凹陷点的平均点的欧拉距离大于或等于设定阈值时,说明初始得到的最大轮廓较大,包括太多的手臂部分,需要对其进行修整,删除手臂部分的一些轮廓,使得对于手掌区域的判断更为准确。具体来讲,在这种情况下,连接所述凹陷点的平均点和第一平均点在上述坐标系中表示的点(图3中分别标记为c0和c1,其中,c0表示凹陷点的平均点,c1表示第一平均点),并在该连线的中点作一垂直于该连线的直线,得到所述凹陷点的平均点和第一平均点的中线(图3中所示的、水平方向的直线);然后,删除由所述中线划分的、与所述第一平均点位于同一侧的轮廓。在图3中,填充斜线部分的轮廓是被删除的轮廓。删除掉这些轮廓之后,原先的最大轮廓发生了变化,得到新的最大轮廓,这个新的最大轮廓在返回步骤s13时,作为被腐蚀处理的最大轮廓,进行腐蚀处理,于是在这个新的最大轮廓的基础上得到一个第一平均点,再次将得到的第一平均点与凹陷点的平均点进行比较。重复这一步骤,直到得到的第一平均点与凹陷点的平均点的欧拉距离小于上述设定阈值。

在本实施例中,还涉及一种实现上述方法的装置。该装置如图4所示。在图4中,该装置包括最大轮廓取得单元1、凹陷计算单元2、轮廓处理单元3、加权单元4和手势轮廓取得单元5;其中,最大轮廓取得单元1用于取得手势图像,提取该手势图像在设定范围内的最大轮廓;凹陷计算单元2用于计算所述最大轮廓的凹陷点,得到所述凹陷点的平均点;轮廓处理单元3用于使用腐蚀法多次处理所述最大轮廓,使处理后的轮廓面积和所述最大轮廓面积的为设定比例;加权单元4用于对处理后的轮廓的各像素点进行加权,权值为该像素点在所述处理后的轮廓中的高度;计算加权后的像素点的平均值,得到第一平均点;手势轮廓取得单元5用于判断所述第一平均点和凹陷点的平均点的欧拉距离是否小于设定阈值,如是,以所述第一平均点为手掌中心,对所述处理后的轮廓进行选择,去掉手臂部分,得到手势轮廓;否则,在所述最大轮廓中删除所述凹陷点的平均点和第一平均点的中线一侧的像素,并返回调用轮廓处理单元3。

在所述轮廓处理单元3中,第一次腐蚀以所述最大轮廓为处理对象,以后均以前一次腐蚀得到的轮廓为处理对象;每次腐蚀处理的步长相同,每次腐蚀处理后均计算该处理后的轮廓与最大轮廓的比例是否符合设定,如是,调用加权单元4,否则,继续进行下一次腐蚀处理;其中,每次腐蚀处理的步长为s,总共进行n次腐蚀处理;所述设定阈值包括n(s-1)。

而所述手势轮廓取得单元5中进一步包括:选择点取得模块51、选择圆弧取得模块52、中线取得模块53和轮廓选择模块54;其中,选择点取得模块51用于以所述第一平均点为圆心,以所述设定阈值为半径做圆,在得到的圆周每隔设定角度选择一个点,得到多个选择点;选择圆弧取得模块52用于遍历所述选择点,判断是否有超过设定值的、连续的选择点位于所述处理后的轮廓内,如是,则以位于所述处理后的轮廓内的选择点所在圆弧为选择圆弧,删除所述选择圆弧外的轮廓,得到所述手势轮廓;中线取得模块53用于连接所述凹陷点的平均点和第一平均点所在的点,并在该连线的中点作一垂直于该连线的直线,得到所述凹陷点的平均点和第一平均点之间的中线;轮廓选择模块54用于删除由所述中线划分的、与所述第一平均点位于同一侧的轮廓。

在本实施例中,还涉及一种手势识别设备。这种手势识别设备包括深度摄像组件、处理器以及实现某些特定的功能的必要组件。上述手势识别设备除了识别手势外,还具有其主要的功能,这些主要的功能包括通信、数据处理、显示以及连接网络等等。在本市实施例中,这些手势识别设备包括移动数字终端、桌面数字终端、可穿戴数字终端或车载数字终端等等。例如平板电脑、桌上电脑、移动电话、通信设备、个人数字终端、车载或机载数字终端等等。该手势识别设备中的处理器可以是单独的数字信号处理器,也可以是和其他功能共享的处理器,还可以是共享处理器中的一个数字信号处理核等等。具体来讲,上述手势识别设备的处理器的特点是能够在驻留在设备中的程序的控制下实现由所述深度摄像组件取得出现在所述深度摄像组件作用范围内的手势图像、对该图像进行手掌区域识别、得到手势轮廓、并根据得到的手势轮廓控制执行部件进行对应的动作的功能。也就是说该处理器或处理器核具有上述特定功能的数字信号处理器或处理器核。更具体而言,在本实施例中,上述手势识别处理器通过程序控制,实现了本实施例中上述方法或装置中所记载的所有功能,并通过手势识别得到该手势表示的控制内容,控制执行机构实现该手势所代表的控制动作。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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