一种基于手指高级特征的手势识别方法转让专利

申请号 : CN201110258962.3

文献号 : CN102368290B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 林耀荣江国来李映辉

申请人 : 华南理工大学

摘要 :

一种基于手指高级特征的手势识别方法,包括如下步骤:(1)手势粗分割;(2)手势边缘的提取;(3)手指中心区域提取;(4)手势高级特征提取;(5)手势识别;直接利用步骤(4)得到的手掌中心位置、手势方向、手腕位置、5根手指的定位点、5根手指的角度特征、5根手指的伸缩状态构成的手势高级特征,构造手势模型,得到手势识别的结果。本发明直接利用5根手指的伸出/收起状态可以识别25=32种不同手势,且与手的旋转角度无关。在需要考虑手势方向的应用场景中,可以利用获得的手势方向,识别更多用户手势。

权利要求 :

1.一种基于手指高级特征的手势识别方法,包括如下步骤:(1)手势粗分割;(2)手势边缘的提取;(3)手指中心区域提取;(4)手势高级特征提取;(5)手势识别;其特征在于,所述手指中心区域提取:根据手指两侧边缘的近似平行特征,利用设计的算子提取手指的中心区域;算子为各向同性的环形算子,可表示为:其中N=0.25Dfinger,Dfinger为手指平均宽度,d表示算子某点到算子中心的距离,K为任意正数;对手势边缘采用该算子进行卷积,并进行阈值二值化,阈值的取值范围为对二值化结果进行膨胀运算,得到手指中心区域图;

所述手势高级特征提取:对手指中心区域图计算质心,作为手指中心点;利用手指中心点重新分割手区域,去除手臂部分,得到更准确的手区域;对分割出的手区域进行腐蚀运算,腐蚀结果的质心作为手掌中心;由手指中心和手掌中心可以确定手势方向;根据手掌中心、手势方向以及手掌半径,定位手腕位置;以手腕位置为极点,对提取的手指中心区域图进行以极径为加权系数的加权径向投影变换,得到一维手势特征序列;对该序列进行低通滤波并归一化处理,得到处理后的手势特征序列;提取该手势特征序列5个最大的局部极大值,在手势外轮廓上局部极大值对应的角度范围内搜索距离手腕位置最远的点,作为5根手指的定位点;手腕位置到每根手指定位点的向量角度作为手指角度特征;根据手腕位置到每根手指定位点的距离,判别手指是伸出还是收起;

所述手势识别:直接利用步骤(4)得到的手掌中心位置、手势方向、手腕位置、5根手指的定位点、5根手指的角度特征、5根手指的伸缩状态构成的手势高级特征,构造手势模型,得到手势识别的结果。

2.根据权利要求1所述的识别方法,其特征在于,步骤(1)所述手势粗分割:采用基于YCbCr颜色空间的肤色分割,用于初步分离背景;采用形态学滤波,分割出手区域,并得到手势外轮廓。

3.根据权利要求1所述的识别方法,其特征在于,步骤(2)所述手势边缘的提取:由Canny边缘检测算法初步提取手势边缘,通过对Canny边缘上像素点的灰度值进行阈值判断,并根据收起手指的两侧边缘灰度值较低的特点,从Canny边缘中提取出收起手指的两侧边缘,再与外轮廓进行并集运算,得到手势边缘。

4.根据权利要求1所述的识别方法,其特征在于,步骤(3)中对于离散图像信号,所述环形算子是一个(6N+1)×(6N+1)的环形算子。

说明书 :

一种基于手指高级特征的手势识别方法

技术领域

[0001] 本发明涉及一种手势识别方法,具体是一种基于手指高级特征的手势识别方法,属于人机交互领域。

背景技术

[0002] 随着计算机技术的不断发展,人与计算机的交互活动逐渐成为人们日常生活的重要组成部分。在这种情况下,更加自然,更加符合人交流习惯的人机交互技术得到了较大的发展。这些技术包括手势识别、语音识别和视线跟踪等等。
[0003] 基于计算机视觉的手势识别技术提供了一种自然的人机交互接口。手势的图像特征提取是手势识别的重要组成部分,将直接影响识别的速度和鲁棒性。当前最常用的手势特征有:
[0004] (1)肤色,人体皮肤在一些颜色空间中具有高度的聚类特性,利用肤色来区分人手与背景是一种常用的粗略分割手势方法。
[0005] (2)边缘,边缘特征受光照影响较小,能反映手势的结构,常被用作图像匹配,进而定位识别手势。
[0006] (3)轮廓,指分割手势之后得到的手势外轮廓。轮廓特征既可以直接用于图像匹配以识别手势,也可以通过分析曲率等局部特性,得到指尖位置等高级特征。
[0007] (4)指尖,即手指尖在图像中的位置。指尖特征可通过指尖模板匹配或对手势轮廓的曲率分析得到。指尖位置与数量可以直接反映手势。
[0008] (5)手势中心位置,即手势在空间中的位置信息,中心位置的连续移动可用于定义动态手势。直接用手势剪影图的质心或轮廓点的质心来定位手势中心位置是一种常用的方法。但是这种方法受不同手势形状的影响较大。
[0009] (6)手势的方向,即手势在空间中的方向信息,可用于定义指示性的手势。手势的方向可由手臂确定,但是图像序列中不一定能检测到手臂;手势的方向也可通过拟合手势外轮廓的椭圆长轴方向确定,但是并不适用于所有手势。
[0010] 由于手的形状比较复杂,即使是同一手势,随着位置和角度的不同以及手指夹角的细微变化,在图像中也会呈现较大区别。现有的手势识别方法存在如下不足:
[0011] (1)较准确的实时手势估计方法通常要求用户配戴颜色标记物,在实际应用中很不方便;
[0012] (2)基于模板匹配的方法通常需要准备大量的模板,只能应用于有限数量手势的识别;
[0013] (3)在高级特征方面,现有的手指检测方法一般只能检测伸出的手指,无法检测收起的手指,不利于整体手势的估计;
[0014] (4)识别结果会受到裸露手臂区域干扰;
[0015] (5)难以估计出准确的手势方向;
[0016] (6)识别结果会受手指夹角变化、手旋转角度影响。

发明内容

[0017] 本发明的目的是克服现有技术存在的上述缺陷,提供了一种基于手指高级特征的手势识别方法。用户不必配戴任何标记物,也不必预先训练大量用于匹配的模板,即可实时提取手的掌心位置、手腕位置、手势方向、所有手指(包括伸出与收起手指)的位置等手势高级特征,进而识别手势。该方法具有旋转不变性和很好的实时性,而且不受裸露的手臂肤色区域影响。
[0018] 本发明通过如下技术方案实现:
[0019] 一种基于手指高级特征的手势识别方法,包括如下步骤:(1)手势粗分割;(2)手势边缘的提取;(3)手指中心区域提取;(4)手势高级特征提取;(5)手势识别;其特征在于,
[0020] 所述手指中心区域提取:根据手指两侧边缘的近似平行特征,利用设计的算子提取手指的中心区域;算子为各向同性的环形算子,可表示为:
[0021]
[0022] 其中N=0.25Dfinger,Dfinger为手指平均宽度,d表示算子某点到算子中心的距离,K为任意正数;对手势边缘采用该算子进行卷积,并进行阈值二值化,阈值的取值范围为对二值化结果进行膨胀运算,得到手指中心区域图;
[0023] 所述手势高级特征提取:对手指中心区域图计算质心,作为手指中心点;利用手指中心点重新分割手区域,去除手臂部分,得到更准确的手区域;对分割出的手区域进行腐蚀运算,腐蚀结果的质心作为手掌中心;由手指中心和手掌中心可以确定手势方向;根据手掌中心、手势方向以及手掌半径,定位手腕位置;以手腕位置为极点,对提取的手指中心区域图进行以极径为加权系数的加权径向投影变换,得到一维手势特征序列;对该序列进行低通滤波并归一化处理,得到处理后的手势特征序列;提取该手势特征序列5个最大的局部极大值,在手势外轮廓上局部极大值对应的角度范围内搜索距离手腕位置最远的点,作为5根手指的定位点;手腕位置到每根手指定位点的向量角度作为手指角度特征;根据手腕位置到每根手指定位点的距离,判别手指是伸出还是收起;
[0024] 所述手势识别:直接利用步骤(4)得到的手掌中心位置、手势方向、手腕位置、5根手指的定位点、5根手指的角度特征、5根手指的伸缩状态构成的手势高级特征,构造手势模型,得到手势识别的结果。
[0025] 步骤(1)所述手势粗分割:采用基于YCbCr颜色空间的肤色分割,用于初步分离背景;采用形态学滤波,分割出手区域,并得到手势外轮廓。
[0026] 步骤(2)所述手势边缘的提取:由Canny边缘检测算法初步提取手势边缘,通过对Canny边缘上像素点的灰度值进行阈值判断,并根据收起手指的两侧边缘灰度值较低的特点,从Canny边缘中提取出收起手指的两侧边缘,再与外轮廓进行并集运算,得到手势边缘。
[0027] 对于离散图像信号,所述环形算子是一个(6N+1)×(6N+1)的环形算子。
[0028] 所述方法可以在计算机系统上通过软件实现,也可以在嵌入式系统、数字信号处理器和FPGA上通过固件实现。
[0029] 与现有技术相比,本发明具有下列优点和效果:
[0030] (1)用户不需要佩戴任何标记物;
[0031] (2)不需要预先训练大量匹配模板就能有效识别多种手势;
[0032] (3)能提取所有手指的特征,包括收起的手指;
[0033] (4)能有效避免裸露手臂区域的干扰;
[0034] (5)能准确提取手势方向特征;
[0035] (6)不受手旋转角度以及手指夹角变化的影响;
[0036] (7)算法简单,可以实时实现。

附图说明

[0037] 图1是本发明手势识别方法的流程图。
[0038] 图2是平行线中心区域环形检测算子示意图,图2(a)是连续信号的检测算子,图2(b)是离散信号的检测算子(大小为7×7),图2(c)是离散信号的检测算子(大小为13×13)。
[0039] 图3是环形检测算子检测的平行线中心区域示意图。
[0040] 图4是去除手臂区域以及确定手指中心点、手势方向、手腕位置等特征的方法示意图。
[0041] 图5是手指定位方法示意图。

具体实施方式

[0042] 下面结合附图对本发明具体实施方式作进一步说明,但需要说明的是,实施例并不构成对本发明要求保护范围的限制。
[0043] 本发明具体实施方法流程如图1所示,主要步骤如下:
[0044] 步骤1:手势粗分割
[0045] 本实施方式采用基于YCbCr颜色空间的肤色分割方法。对通过单目摄像头获取的RGB颜色空间的彩色图像,采用公式(1),将其转换到YCbCr颜色空间:
[0046]
[0047] 依据公式(2)的固定阈值边界模型进行肤色判别:
[0048]
[0049] 如果像素点的YCbCr值在Rst范围内,则判别为肤色点,将该点设为1,非肤色点设为0,从而得到肤色图Iskin。针对肤色图Iskin,采用形态学滤波,滤除较小的噪声点,提取面积满足阈值条件的连通域,得到手区域掩模Ihand_mask。将输入的RGB彩色图像转换为灰度图I,利用手区域掩模Ihand_mask从灰度图I中提取手区域的灰度图Ihand。
[0050] 步骤2:手势边缘的提取
[0051] 先采用Canny边缘检测算法对手区域灰度图Ihand进行边缘检测,得到Canny边缘图Icanny;因为收起的手指两侧边缘点灰度值较小,而皮肤皱褶边缘等干扰的灰度值较大,对手区域灰度图Ihand,取阈值T1(T1可取50)进行二值化,得到手区域中的低灰度值图Idark:
[0052]
[0053] 由手区域的外轮廓得到手轮廓Icontour,则手势边缘Iedge=Icanny∩Idark∪Icontour,其中∩表示交集运算,∪表示并集运算。
[0054] 步骤3:手指中心区域的提取
[0055] 图2为本实施方法中提取手指中心区域的检测算子G。对于离散图像信号,G是一个(6N+1)×(6N+1)的环形算子,其中N=0.25Dfinger,Dfinger为手指平均宽度。图2(b)、图2(c)分别表示N=1,2时的算子G。记d为某点到算子中心的距离,则环形算子可表示为:
[0056]
[0057] 其中K为任意正数,为了方便计算K可取1。
[0058] 手指中心区域提取的步骤为:首先采用环形算子G对Iedge进行卷积得到Iw=Iedge*G;然后以阈值T2(T2可以取 范围内的数值)对Iw进行二值化得到I′finger(x,y),见公式(5);
[0059]
[0060] 图3为通过检测算子提取的平行线中心区域示意图。最后取I′finger(x,y)与Iskin的交集,并进行膨胀运算,得到手指中心区域图Ifinger(x,y)。
[0061] 步骤4:手势高级特征提取
[0062] 本实施方式中,手势高级特征提取见图4、图5。
[0063] 其中,图4表示手指中心位置、手势方向和手腕位置的提取方法,用于计算手指中心以及手势方向等特征,步骤如下:计算手指中心区域图Ifinger的质心,记为手指中心Pfc;利用中心为Pfc,半径为2.5Rpalm的圆重新分割手区域,去除手臂区域,得到修正后的手势剪影Ihand_f,其中Rpalm为手掌平均半径;对Ihand_f进行腐蚀运算并计算腐蚀结果的质心,得到手掌中心位置Phc;手势方向单位向量 由公式(6)求得:
[0064]
[0065] 手腕位置Pw由公式(7)求得:
[0066]
[0067] 图5表示手指定位的方法。目的是计算各手指角度及指尖位置。将手指中心区域图Ifinger(x,y)转换为以手腕位置Pw为极点的极坐标表示If(r,θ),进行等角度间隔切分,计算每个角度间隔中的加权径向投影:
[0068] n=0,1,2,...,M-1 (8)
[0069] 其中,pn对应第n个极角范围[θn,θn+1)的特征值;r表示极径,作为加权系数;r1,r2为积分变量r的范围,可取r1=0.5Rpalm,r2=2.5Rpalm,M为角度切分的间隔数(可取
36~360)。将pn按角度从小到大排列,得到手指特征序列{pn};对{pn}进行低通滤波平滑,得到平滑后的结果{p′n};最后将{p′n}归一化得到{pn_norm}:
[0070] n=0,1,2,...,M-1 (9)
[0071] 依次求出归一化特征序列{pn_norm}的五个局部极大值点,其对应的极角范围即为5根手指对应的角度范围。手指的角度可取为(θn+θn+1)/2。在每根手指对应的角度范围内,在手势外轮廓上搜索距离手腕位置Pw最远的点Pti以及最远距离Dti。当Dti>αRpalm时,Pti判别为一根伸出的手指的指尖位置;当Dti≤αRpalm时,Pti对应于一根收起的手指的关节点。对中间三根手指,阈值α可取3,对两侧的手指(大拇指和小指),阈值α可取2.2。
手腕位置Pw到点Pti的向量角度作为手指角度特征。
[0072] 步骤5:手势识别
[0073] 直接利用上述步骤得到的手掌中心位置、手势方向、手腕位置、5根手指的定位点、5根手指的角度特征、5根手指的伸缩状态构成的手势高级特征,构造手势模型,得到手势识别的结果。
5
[0074] 本实施方法中,直接利用5根手指的伸出/收起状态可以识别2=32种不同手势,且与手的旋转角度无关。在需要考虑手势方向的应用场景中,可以利用获得的手势方向,识别更多用户手势。