CN105160323B - 一种手势识别方法 - Google Patents
一种手势识别方法 Download PDFInfo
- Publication number
- CN105160323B CN105160323B CN201510563293.9A CN201510563293A CN105160323B CN 105160323 B CN105160323 B CN 105160323B CN 201510563293 A CN201510563293 A CN 201510563293A CN 105160323 B CN105160323 B CN 105160323B
- Authority
- CN
- China
- Prior art keywords
- hand
- sequence
- image
- characteristic point
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000012360 testing method Methods 0.000 claims abstract description 45
- 210000004247 hand Anatomy 0.000 claims description 36
- 238000013507 mapping Methods 0.000 claims description 29
- 238000012545 processing Methods 0.000 claims description 19
- 210000000707 wrist Anatomy 0.000 claims description 10
- 244000060701 Kaempferia pandurata Species 0.000 claims description 7
- 235000016390 Uvaria chamae Nutrition 0.000 claims description 7
- 241000905957 Channa melasoma Species 0.000 claims description 6
- 238000012217 deletion Methods 0.000 claims description 6
- 230000037430 deletion Effects 0.000 claims description 6
- 238000003708 edge detection Methods 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 5
- 230000003287 optical effect Effects 0.000 claims description 5
- 238000003384 imaging method Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 4
- 230000033001 locomotion Effects 0.000 description 35
- 230000008569 process Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 230000003247 decreasing effect Effects 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000004880 explosion Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/107—Static hand or arm
- G06V40/113—Recognition of static hand signs
Landscapes
- Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
Abstract
本发明提供了一种手势识别方法,该手势识别方法包括:获取含有深度信息的使用者手部的待测图像序列;根据图像深度信息和图像颜色信息,在待测图像序列的每帧图像中检测出使用者的手部轮廓;针对使用者的每只手,利用预设的手部结构模板,在待测图像序列的每帧图像中确定该只手的待测特征点序列;针对使用者的每只手,在多个预设特征点序列中确定该只手的待测特征点序列的匹配序列,以根据匹配序列确定该只手的动作名称和位置;在预设手势表中选择与使用者双手的动作名称和位置相匹配的手势,作为待测图像序列的手势识别结果。本发明的上述技术能够准确识别使用者的手势,识别精度较高,而且识别速度较快。
Description
技术领域
本发明涉及信号处理技术,尤其涉及一种手势识别方法。
背景技术
随着科学技术的发展,诸如笔记本电脑、手机、平板电脑等的电子设备逐渐具有越来越多的功能,而手势识别正是这诸多功能之一。
目前,现有的手势识别技术的识别处理过程利用的算法较为复杂,不仅耗费时间,而且由此识别手势的精度较低、准确度较差。此外,基于模式识别的现有手势识别技术的实时性较差,不适合即时交互需求的场合。
发明内容
在下文中给出了关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。
鉴于此,本发明提供了一种手势识别方法,以至少解决现有的手势识别技术所存在的手势识别精度地、准确度差的问题。
根据本发明的一个方面,提供了一种手势识别方法,所述手势识别方法包括:步骤一、获取含有深度信息的使用者手部的待测图像序列;步骤二、根据图像深度信息和图像颜色信息,在所述待测图像序列的每帧图像中检测出所述使用者的手部轮廓;步骤三、针对所述使用者的每只手,利用预设的手部结构模板,在所述待测图像序列的每帧图像中确定该只手的待测特征点序列;步骤四、针对所述使用者的每只手,在多个预设特征点序列中确定该只手的待测特征点序列的匹配序列,以根据所述匹配序列确定该只手的动作名称和位置;步骤五、在预设手势表中选择与所述使用者双手的动作名称和位置相匹配的手势,作为所述待测图像序列的手势识别结果。
进一步地,步骤三可以包括:步骤三一、针对所述使用者的每只手,利用预设的手部结构模板,在所述待测图像序列的每帧图像的手部轮廓中确定该只手的预定数目个特征点;步骤三二、针对所述使用者的每只手,利用该只手在所述待测图像序列的各帧图像中对应的预定数目个特征点,获得该只手的待测特征点序列。
进一步地,步骤一可以包括:通过捕获预定成像区域内的所述使用者手部的图像,获得可见光图像序列和红外图像序列为所述可见光图像序列第i帧图像坐标(x,y)处的像素值,而为所述红外图像序列第i 帧图像坐标(x,y)处的像素值,根据如下公式获得抽取使用者双手信息的图像序列:
其中,α、β、λ为预设参数阈值,为获取的含有深度信息的使用者双手的图像序列,作为所述待测图像序列,i=1,2,…,M,M为所述待测图像序列所包含的图像帧数。
进一步地,步骤二可以包括:针对所述待测图像序列中的每帧图像结合颜色信息删除该帧图像中的噪声点及非肤色区域,利用边缘检测算子E(·)对删除所述噪声点和所述非肤色区域后所得到的图像进行边缘检测,得到边缘图像所述边缘图像即为仅包含所述使用者手部轮廓的图像。
进一步地,步骤三一可以包括:针对所述待测图像序列的每帧图像执行以下处理:根据该图像的轮廓线中的曲率找到该轮廓线中的指尖点和指根关节点;将所述指尖点作为定位基点,匹配每个单指的指根关节点,得到各单指的长度作为尺度缩放的基准;基于所述指尖点和所述指根关节点的位置以及各单指的长度对相应的所述手部结构模板进行缩放和形变,通过匹配得到每只手的各指关节特征点和手腕中点特征点;其中,所述手部结构模板包括左手结构模板和右手结构模板,所述左手结构模板和右手结构模板各自包括:各手指的指尖特征点、各指关节特征点、各指根关节特征点、手腕中点特征点以及各特征点之间的拓扑关系。
进一步地,步骤四可以包括:步骤四一、针对每只手的待测特征点序列,根据预定时间窗将该待测特征点序列分割为多个子序列,并获得每个子序列对应的平均位置;步骤四二、针对每只手对应的每个子序列,将该子序列与所述多个预设特征点序列中的每一个分别进行匹配,在所述多个预设特征点序列中选择与该子序列的匹配程度高于预设的匹配阈值、并且最大的预设特征点序列,作为该子序列的匹配序列;步骤四三、将每个子序列对应的平均位置与该子序列的匹配序列对应的动作名称相关联;步骤四四、针对每只手,将该只手对应的各子序列的匹配序列作为该只手对应的多个匹配序列,并将该多个匹配序列各自对应的动作名称作为该只手的多个动作名称。
进一步地,步骤五可以包括:步骤五一、预先设置如下映射列表来作为所述预设手势表:该映射列表中的每个映射的左端是一组动作名称对及每个动作名称对的位置;该映射列表中的每个映射的右端是一个手势HandSignal;步骤五二、将所述预设手势表中的每个映射的左端与所述使用者双手的动作名称和位置进行匹配,其中,动作名称的匹配执行严格匹配,而位置则是通过使用者双手各自的平均位置计算得到相对位置信息,进而计算该相对位置信息与映射左端的位置之间的相似度来实现的。
上述根据本发明实施例的手势识别方法,采用先识别单手动作、再进而通过双手动作识别手势的方式来实现,能够准确识别使用者的手势,识别精度较高,而且识别速度较快。
本发明的上述手势识别方法采用层次化设计算法,算法复杂度低,便于实现。
此外,应用本发明的上述手势识别方法,当需要改变(例如修改、增加或减少等)对动作和/或手势的定义时,可以仅通过调整模板(即,通过修改预设特征点序列对应的动作名称来改变动作的定义,通过增加或减少预设特征点序列及其对应动作名称来增、减动作)以及预设手势表(即,通过修改预设手势表中手势对应的多个动作来改变手势的定义,通过增加或减少预设手势表中的手势及其对应动作来增、减手势),而不需改变算法或者重新训练分类器,大大提高了算法的适应性。
此外,本发明的上述手势识别方法的实时性强,能够适合即时交互需求的场合。
通过以下结合附图对本发明的最佳实施例的详细说明,本发明的这些以及其他优点将更加明显。
附图说明
本发明可以通过参考下文中结合附图所给出的描述而得到更好的理解,其中在所有附图中使用了相同或相似的附图标记来表示相同或者相似的部件。所述附图连同下面的详细说明一起包含在本说明书中并且形成本说明书的一部分,而且用来进一步举例说明本发明的优选实施例和解释本发明的原理和优点。在附图中:
图1是示出本发明的手势识别方法的一个示例处理的流程图;
图2是示出图1所示的步骤三的示例处理的流程图;
图3是示出图1所示的步骤四的示例处理的流程图;
图4是示出图1所示的步骤五的示例处理的流程图。
本领域技术人员应当理解,附图中的元件仅仅是为了简单和清楚起见而示出的,而且不一定是按比例绘制的。例如,附图中某些元件的尺寸可能相对于其他元件放大了,以便有助于提高对本发明实施例的理解。
具体实施方式
在下文中将结合附图对本发明的示范性实施例进行描述。为了清楚和简明起见,在说明书中并未描述实际实施方式的所有特征。然而,应该了解,在开发任何这种实际实施例的过程中必须做出很多特定于实施方式的决定,以便实现开发人员的具体目标,例如,符合与***及业务相关的那些限制条件,并且这些限制条件可能会随着实施方式的不同而有所改变。此外,还应该了解,虽然开发工作有可能是非常复杂和费时的,但对得益于本公开内容的本领域技术人员来说,这种开发工作仅仅是例行的任务。
在此,还需要说明的一点是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的装置结构和/或处理步骤,而省略了与本发明关系不大的其他细节。
本发明的实施例提供了一种手势识别方法,该手势识别方法包括:步骤一、获取含有深度信息的使用者手部的待测图像序列;步骤二、根据图像深度信息和图像颜色信息,在所述待测图像序列的每帧图像中检测出所述使用者的手部轮廓;步骤三、针对所述使用者的每只手,利用预设的手部结构模板,在所述待测图像序列的每帧图像中确定该只手的待测特征点序列;步骤四、针对所述使用者的每只手,在多个预设特征点序列中确定该只手的待测特征点序列的匹配序列,以根据所述匹配序列确定该只手的动作名称和位置;步骤五、在预设手势表中选择与所述使用者双手的动作名称和位置相匹配的手势,作为所述待测图像序列的手势识别结果。
图1示出了本发明的手势识别方法的一个示例处理的流程图。上述手势识别方法的示例性处理开始于步骤一。
如图1所示,在步骤一中,获取含有深度信息的使用者手部的待测图像序列。
根据一种实现方式,可以通过如下步骤来实现步骤一的处理:通过捕获预定成像区域内的使用者手部的图像,(例如可以利用深度摄像头上的可见光图像传感器和红外图像传感器)获得可见光图像序列和红外图像序列为可见光图像序列第i帧图像坐标(x,y)处的像素值,而为红外图像序列第i帧图像坐标(x,y)处的像素值,根据如下公式可以得到抽取使用者双手信息的图像序列:
其中,α、β、λ为预设参数阈值,这些预设参数阈值可以根据经验值来设定,也可以通过试验的方法来确定(例如通过实际使用特定型号的深度摄像头采集到的样本图像训练得到),这里不再赘述。为获取的含有深度信息的使用者双手的图像序列,作为上述待测图像序列。此外,i=1,2,…,M,M为待测图像序列中所包括的图像帧数。
需要说明的是,根据使用者手势所使用的手数量的不同(单只或双只),在预定成像区域内所捕获的图像可能是包含使用者双手的图像,也可能是仅包含使用者单只手的图像。另外,获取的待测图像序列可以是在一个时间段内获得的,该时间段可以预先根据经验值设置,例如可为10秒。
然后,在步骤二中,根据图像深度信息和图像颜色信息,在待测图像序列的每帧图像中检测出使用者的手部轮廓。其中,检测出的手部轮廓可能是双手轮廓,也可能是单手轮廓。
根据一种实现方式,可以通过如下步骤来实现步骤二的处理:针对待测图像序列中的每帧图像结合颜色信息删除该帧图像中的噪声点及非肤色区域,利用边缘检测算子E(·)对删除噪声点和非肤色区域后所得到的图像进行边缘检测,从而得到边缘图像
边缘图像即为仅包含使用者手部轮廓的图像。
其中,在“结合颜色信息删除该帧图像中的噪声点及非肤色区域”的处理过程中,可以利用现有的去噪方法来删除图像中的噪声点,并可以通过计算图像的均值来得到肤色区域,则肤色区域之外的区域即为非肤色区域,即可实现对非肤色区域的删除。例如,得到图像的均值之后,在该均值上下浮动一个范围,得到包含该均值的一个颜色范围,当图像中某点的颜色值落在这个颜色范围之内,则将该点确定是肤色点,否则认为不是肤色点;所有肤色点构成肤色区域,其余为非肤色区域。
由此,通过步骤二的处理,能够快速检测出使用者的手部轮廓,提高了整个处理的速度和效率。
接着,在步骤三中,针对使用者的每只手,利用预设的手部结构模板,在待测图像序列的每帧图像中确定该只手的待测特征点序列。
其中,手部结构模板包括左手结构模板和右手结构模板,左手结构模板和右手结构模板各自包括预定数目个特征点以及各特征点之间的拓扑关系。
在一个例子中,左手结构模板和右手结构模板可以各自包括如下20(作为预定数目的示例,但预定数目并不限于20,也可为19、21等数值)个特征点:各手指的指尖特征点(5个)、各指关节特征点(9个)、各指根关节特征点(5个)、手腕中点特征点(1个)。
根据一种实现方式,步骤三中的处理可以通过如图2所示的步骤三一和步骤三二来实现。
如图2所示,在步骤三一中,针对使用者的每只手,可以利用上述预设的手部结构模板,分别将待测图像序列的每帧图像中的手部轮廓与手部结构模板(左右结构模板和右手结构模板)进行匹配、对齐,得到该帧图像手部轮廓中的预定数目个(例如20个)特征点。
然后,在步骤三二中,针对使用者的每只手,可以利用该只手在待测图像序列的各帧图像中对应的预定数目个特征点(即特征点集),获得该只手的待测特征点序列。
这样,通过手部结构模板与之前获得的每个手部轮廓(即待测图像序列的每帧图像中的手部轮廓)进行匹配等处理,能够快速、准确地获得每个手部轮廓中的预定数目个特征点。由此,能够使得后续处理利用这些轮廓中的所述预定数目个特征点来进一步实现手势识别,相比于现有技术,提高了整个手势识别处理的速度和准确度。
在现有技术中,当根据不同应用场景需要改变(例如修改、增加或减少等) 对动作的定义时,需要修改算法以及重新训练分类器;在本发明中,可以仅通过调整动作模板(即预设特征点序列)来实现对动作定义的改变,大大提高了算法的适应性。
在一个例子中,可以通过如下方式来实现步骤三一的处理。
根据人类双手的生理结构特征,可以对每只手提取20(作为预定数目的示例)个特征点。针对待测图像序列的每帧图像执行以下处理:首先,根据该图像中的轮廓线的曲率找到该轮廓线中的指尖点和指根关节点;接着将指尖点作为定位基点,匹配每个单指的指根关节点,得到各单指的长度作为尺度缩放的基准;最后基于已找到的指尖点和指根关节点的位置以及得到的各单指的长度两方面的参数对相应的手部结构模板进行缩放和形变,通过匹配得到每只手其余的10个特征点,即每只手的各指关节特征点和手腕中点特征点。
例如,在找轮廓线中的指尖点和指根关节点的过程中,可以将其中曲率最大的凸点作为指尖点,将曲率最大的凹点作为指缝最低点,并将每个指尖点到该指尖点相邻的指缝最低点之间的距离定义为该指尖点对应的单位长度。对每两个相邻的指缝最低点,将此二点的中点再往手掌方向延伸三分之一单位长度(此时的单位长度为此二点之间的指尖点对应的单位长度)的点,定义为该指尖点对应的指根关节点,由此可以得到每只手的中间3个指根关节点。除此之外,对于每只手来说,可以通过在后续缩放和形变的过程中获得该只手的首尾两个指根关节点;或者,也可以将该只手的两个(例如任意选两个)相邻的指缝最低点之间的距离作为手指参考宽度,然后将该只手的首尾两个指缝最低点各沿切线方向、向外延伸半个手指参考宽度,得到的点分别作为该只手的首尾两个指根关节点。
需要说明的是,如果对于单只手所找到的凸点多于5个,可以在将其与手部结构模板进行匹配对齐的过程中将多余的凸点去除。
由此,用这样的方法匹配得到每一帧图像对应的左手的20个特征点 Pl={pl1,pl2,…,pl20}和右手的20个特征点Pr={pr1,pr2,…,pr20}。需要说明的是,若使用者手势仅包含单只手,则通过以上匹配所得到的是该单只手在每帧图像中的 20个特征点(称为特征点集),即Pl={pl1,pl2,…,pl20}或Pr={pr1,pr2,…,pr20}。其中, pl1,pl2,…,pl20分别为左手20个特征点的位置,而pr1,pr2,…,pr20分别为右手20个特征点的位置。
若使用者手势包含双手,则通过以上步骤三一和步骤三二的处理可以得到左手的待测特征点序列{Pli,i=1,2,...,M}和右手的待测特征点序列 {Pri,i=1,2,...,M}。其中,Pli为使用者左手在待测图像序列的第i帧图像中对应的 20(作为预定数目的示例)个特征点,而Pri为使用者右手在待测图像序列的第i 帧图像中对应的20(作为预定数目的示例)个特征点。
若使用者手势仅包含单只手,则捕获的待测图像序列中的每帧图像均是仅包含该单只手的图像,从而通过步骤三一和步骤三二的处理之后能够得到该单只手的待测特征点序列,即{Pli,i=1,2,...,M}或{Pri,i=1,2,...,M}。
这样,执行完步骤三之后执行如图1所示的步骤四。
在步骤四中,针对使用者的每只手,在多个预设特征点序列中确定该只手的待测特征点序列的匹配序列,以根据该匹配序列确定该只手的动作名称和位置。
由此,通过步骤四,利用每只手的待测特征点序列与每个预设特征点序列进行匹配,得到匹配序列,进而根据匹配序列对应的动作名称快速确定该只手的动作。
根据一种实现方式,可以通过如图3所示的步骤四一至步骤四四来实现步骤四的处理。
首先,预设一个手部动作名列表,包括基本的手部动作,例如:挥、推、拉、张、合、转等,每个动作都有唯一的名称标识以及用归一化的用手部特征点序列(即预设特征点序列)表示的模板。需要说明的是,对于使用者的双手来说,每只手都具有一个上述的手部动作名列表。也就是说,对于左手来说,左手的手部动作名列表(简称左手动作名列表)中包括的每个动作除了分别具有各自的名称之外,还具有一个左手模板(即左手的一个预设特征点序列);对于右手来说,右手的手部动作名列表(简称右手动作名列表)中包括的每个动作除了分别具有各自的名称之外,还具有一个右手模板(即右手的一个预设特征点序列)。
例如,单只手的多个预设特征点序列分别记为序列A1、序列A2、…、序列 AH,其中,H为该单只手的上述多个预设特征点序列所包含的序列数,则在该单只手的手部动作名列表中:动作1的名称标识为“挥”且对应的模板(即预设特征点序列)为序列A1;动作2的名称标识为“推”且对应的模板为序列A2 ;…;动作H的名称标识为“转”且对应的模板为序列AH 。
在步骤四一中,针对每只手的待测特征点序列,根据预定时间窗将该待测特征点序列分割为多个子序列,并获得每个子序列对应的平均位置。其中,每个子序列对应的平均位置可以选取指定特征点(如手腕中点,或者也可为其他特征点)在该子序列中的平均位置。其中,预定时间窗约为一个单手基本动作 (即单手的握、抓等)从开始到结束的时间,可根据经验值来设定,或可以通过试验的方法来确定,例如可以为2.5秒。
在一个例子中,假设待测特征点序列是在10秒内采集的,利用2.5秒的时间窗可以将左手的待测特征点序列以及右手的待测特征点序列分别分割成4个子序列。以左手的待测特征点序列{Pli,i=1,2,...,M}为例(右手的待测特征点序列 {Pri,i=1,2,...,M}与其类似,这里不再详述),假设每秒采集10帧图像,则待测特征点序列对应的是100帧图像,即M=100,也就是说,{Pli,i=1,2,...,M}包括100组特征点集Pl1、Pl2、…、Pl100。这样,通过上述2.5秒的时间窗,可以将{Pli,i=1,2,...,M} 分割为{Pli,i=1,2,...,25}、{Pli,i=25,26,...,50}、{Pli,i=51,52,...,75}和 {Pli,i=76,77,...,100}4个子序列,且每个子序列各对应25帧图像,也即,每个子序列各包括25组特征点集。指定特征点选取手腕中点,以子序列{Pli,i=1,2,...,25}为例(其余三个子序列与其处理相似,这里不再详述),手腕中点在{Pli,i=1,2,...,25} 对应的25组特征点集中的位置分别为位置p1、p2、…、p25,于是手腕中点在子序列{Pli,i=1,2,...,25}中的平均位置为(p1+p2+…+p25)/25,作为子序列{Pli,i=1,2,...,25} 对应的平均位置。
然后,在步骤四二中,针对每只手对应的每个子序列,将该子序列与多个预设特征点序列中的每一个分别进行匹配,在多个预设特征点序列中选择与该子序列的匹配程度高于预设的匹配阈值(该匹配阈值可以根据经验值来设定,或者也可以通过试验的方法来确定)、并且最大的那个预设特征点序列,作为该子序列的匹配序列。其中,可以计算子序列与预设特征点序列之间的相似度,来作为二者之间的匹配程度。
需要说明的是,对于每个子序列,并非一定能够在多个预设特征点序列中找到该子序列对应的匹配序列。当对于单只手的某个子序列并未找到其匹配序列时,则将该子序列的匹配序列记为“空”,但该子序列的平均位置可以不为“空”。根据一种实现方式,若子序列的匹配序列为“空”,则将该子序列的平均位置设为“空”;根据另一种实现方式,若子序列的匹配序列为“空”,该子序列的平均位置为该子序列中指定特征点的实际平均位置;根据其他一种实现方式,若子序列的匹配序列为“空”,将该子序列的平均位置设为“+∞”。
此外,根据一种实现方式,若子序列中不存在指定特征点(也即不存在该指定特征点的实际平均位置),可以将该子序列的平均位置设为“+∞”。
然后,在步骤四三中,将每个子序列对应的平均位置与该子序列的匹配序列对应的动作名称相关联。
在步骤四四中,针对每只手,可以将该只手对应的各子序列的匹配序列作为该只手对应的多个匹配序列,并将该多个匹配序列各自对应的动作名称(按时间顺序排序后)作为该只手的多个动作名称。
例如,假设对于左手的待测特征点序列的多个子序列为{Pli,i=1,2,...,25}、{Pli,i=25,26,...,50}、{Pli,i=51,52,...,75}和{Pli,i=76,77,...,100},分别在左手的多个预设特征点序列中找到{Pli,i=1,2,...,25}、{Pli,i=25,26,...,50}、{Pli,i=51,52,...,75}的匹配序列依次为Pl1'、Pl2'、Pl3',而未找到{Pli,i=76,77,...,100}的匹配序列。假设Pl1'、 Pl2'、Pl3'在左手动作名列表中对应的动作名称依次分别为“挥”、“推”、“拉”, {Pli,i=1,2,...,25}、{Pli,i=25,26,...,50}、{Pli,i=51,52,...,75}和{Pli,i=76,77,...,100}各自的平均位置分别为pm1、pm2、pm3和pm4,则由此得到的左手的动作名称和位置包括:“挥”(位置pm1);“推”(位置pm2);“拉”(位置pm3);“空”(位置“pm4”)。需要注意到是,在不同实施例中,pm4可能是真实位置值,也可能是“空”或“+∞”等。
由此,通过步骤四一至步骤四四的处理,能够得到使用者每只手对应的多个动作名称(作为该只手的动作名称,也就是说,该只手的动作名称),且每个动作名称分别关联有一个平均位置(作为该只手的位置,“该只手的位置”中包括一个或多个平均位置,数量与动作名称的数量相同)。相比于单单识别单个动作作为手势的识别技术来说,上述处理所识别的双手各自的多个动作和位置,提供了更灵活的组合方式,一方面使得手势的识别精度更高,另一方面使得能够识别的手势更多样、丰富。
最后,在步骤五中,在预设手势表中选择与使用者双手的动作名称和位置相匹配的手势,作为待测图像序列的手势识别结果。
根据一种实现方式,可以通过如图4所示的步骤五一和步骤五二来实现步骤五的处理。
如图4所示,步骤五一、预定义一个从两只手动作和位置两个要素到手势的映射列表作为预设手势表:每个映射的左端是一组动作名称对及每个动作名称对的位置;每个映射的右端是一个手势HandSignal。然后,执行步骤五二。
其中,“一组动作名称对”包括多个动作名称对,每个动作名称对包括左手动作名称ActNameleft和右手动作名称ActNameright,每个动作名称对的位置包括两只手的相对位置。
例如,在预设手势表中,映射一为{(“拉”,“空”)、(“拉”,“拉”)、(“空”,“合”)、(“空”,“空”)}(作为要素一)、{(x1,y1),(x2,y2),(x3,y3),(x4, y4)}(相对位置,作为要素二)到手势“开关”的映射;映射二为{(“拉”,“拉”)、 (“张”,“张”)、(“空”,“空”)、(“空”,“空”)}、{(x5,y5),(x6,y6),(x7, y7),(x8,y8)}到手势“***”的映射;等等。其中,每个动作对(如(“拉”,“空”))中左边的动作名称对应于左手动作,而右边的动作名称对应于右手动作。
以映射一为例,(x1,y1)表示的是左手第一个动作“拉”与右手第一个动作“空”之间的相对位置(即动作对(“拉”,“空”)中左手动作和右手动作对应的两只手的相对位置);(x2,y2)表示的是左手第二个动作“拉”与右手第二个动作“拉”之间的相对位置;(x3,y3)表示的是左手第三个动作“空”与右手第三个动作“合”之间的相对位置;而(x4,y4)表示的是左手第四个动作“空”与右手第四个动作“空”之间的相对位置。其他映射中的表述意义与此类似,不再赘述。
在步骤五二中,将预设手势表中的每个映射的左端与使用者双手的动作名称和位置进行匹配。
其中,动作名称的匹配执行严格匹配,也即,在两个动作名称之间一字不差的情况下判定这两个动作名称是匹配的;而位置则是通过使用者双手各自的平均位置计算得到相对位置信息,进而计算该相对位置信息与映射左端的位置之间的相似度来实现的(如可以设定一个相似度阈值,当计算的相似度大于或等于该相似度阈值时判定位置是匹配的)。
例如,假设通过步骤四得到使用者双手各自的动作名称为{(“拉”,“拉”)、 (“张”,“张”)、(“空”,“空”)、(“空”,“空”)},位置为{(x11,y12)、(x21, y22)、(x31,y32)、(x41,y42)(对应左手);(x’11,y’12)、(x’21,y’22)、(x’31,y’32)、 (x’41,y’42)(对应右 手)}。
然后,将使用者双手的动作名称与预设手势表中的每个映射的左端进行匹配。
当与映射一进行匹配时,可以得出,使用者双手的动作名称与映射一的左端的动作名称不匹配,因此忽略映射一,继续匹配映射二。
当与映射二进行匹配时,可以得出,使用者双手的动作名称与映射二的左端的动作名称完全匹配,然后再将使用者双手的位置与映射二的左端的相对位置进行匹配。
在将使用者双手的位置与映射二的左端的相对位置进行匹配的过程中,首先计算使用者双手的相对位置如下:{(x’11-x11,y’12-y12)、(x’21-x21,y’22-y22)、 (x’31-x31,y’32-y32)、(x’41-x41,y’42-y42)(对应左手)}。然后,将计算得到的使用者双手的上述相对位置与映射二左端的相对位置{(x5,y5),(x6,y6),(x7, y7),(x8,y8)}进行匹配,也即,计算{(x’11-x11,y’12-y12)、(x’21-x21,y’22-y22)、 (x’31-x31,y’32-y32)、(x’41-x41,y’42-y42)(对应左手)}与{(x5,y5),(x6,y6), (x7,y7),(x8,y8)}之间的相似度,假设计算得到的相似度为95%。在该例子中,设相似度阈值为80%,于是判定计算得到的使用者双手的相对位置与映射二左端的相对位置是匹配的。由此,在该例子中,手势识别的结果为“***”。
以上步骤五一和步骤五二,通过双手各自的多个动作和位置与预定手势表之间的匹配,来确定使用者的手势,识别的精度较高;当根据不同应用场景需要改变(例如修改、增加或减少等)对手势的定义时,不需要修改算法或重新训练分类器,可以仅通过调整预定手势表中的手势名称或者手势对应的动作名称等方式来实现对手势定义的改变,大大提高了算法的适应性。
上述根据本发明实施例的手势识别方法,采用先识别单手动作、再进而通过双手动作识别手势的方式来实现,能够准确识别使用者的手势,识别精度较高,而且识别速度较快。
本发明的上述手势识别方法采用层次化设计算法,算法复杂度低,便于实现。
此外,应用本发明的上述手势识别方法,当需要改变(例如修改、增加或减少等)对动作和/或手势的定义时,可以仅通过调整模板以及/或预设手势表来实现(即,通过修改预设特征点序列对应的动作名称来改变动作的定义,通过增加或减少预设特征点序列及其对应动作名称来增、减动作;通过修改预设手势表中手势对应的多个动作来改变手势的定义,通过增加或减少预设手势表中的手势及其对应动作来增、减手势),而不需改变算法或者重新训练分类器,大大提高了算法的适应性。
此外,本发明的上述手势识别方法的实时性强,能够适合即时交互需求的场合。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
Claims (6)
1.一种手势识别方法,其特征在于,所述手势识别方法包括:
步骤一、获取含有深度信息的使用者手部的待测图像序列;
步骤二、根据图像深度信息和图像颜色信息,在所述待测图像序列的每帧图像中检测出所述使用者的手部轮廓;
步骤三、针对所述使用者的每只手,利用预设的手部结构模板,在所述待测图像序列的每帧图像中确定该只手的待测特征点序列;
步骤四、针对所述使用者的每只手,在多个预设特征点序列中确定该只手的待测特征点序列的匹配序列,以根据所述匹配序列确定该只手的动作名称和位置;
步骤五、在预设手势表中选择与所述使用者双手的动作名称和位置相匹配的手势,作为所述待测图像序列的手势识别结果;
其中,步骤五包括:
步骤五一、预先设置如下映射列表来作为所述预设手势表:该映射列表中的每个映射的左端是一组动作名称对及每个动作名称对的位置;该映射列表中的每个映射的右端是一个手势;
步骤五二、将所述预设手势表中的每个映射的左端与所述使用者双手的动作名称和位置进行匹配,其中,动作名称的匹配执行严格匹配,而位置则是通过使用者双手各自的平均位置计算得到相对位置信息,进而计算该相对位置信息与映射左端的位置之间的相似度来实现的。
2.根据权利要求1所述的手势识别方法,其特征在于,步骤三包括:
步骤三一、针对所述使用者的每只手,利用预设的手部结构模板,在所述待测图像序列的每帧图像的手部轮廓中确定该只手的预定数目个特征点;
步骤三二、针对所述使用者的每只手,利用该只手在所述待测图像序列的各帧图像中对应的预定数目个特征点,获得该只手的待测特征点序列。
3.根据权利要求1或2所述的手势识别方法,其特征在于,步骤一包括:
通过捕获预定成像区域内的所述使用者手部的图像,获得可见光图像序列和红外图像序列为所述可见光图像序列第i帧图像坐标(x,y)处的像素值,而为所述红外图像序列第i帧图像坐标(x,y)处的像素值,根据如下公式获得抽取使用者双手信息的图像序列:
其中,α、β、λ为预设参数阈值,为获取的含有深度信息的使用者双手的图像序列,作为所述待测图像序列,i=1,2,…,M,M为所述待测图像序列所包含的图像帧数。
4.根据权利要求1或2所述的手势识别方法,其特征在于,步骤二包括:
针对所述待测图像序列中的每帧图像结合颜色信息删除该帧图像中的噪声点及非肤色区域,利用边缘检测算子E(·)对删除所述噪声点和所述非肤色区域后所得到的图像进行边缘检测,得到边缘图像
所述边缘图像即为仅包含所述使用者手部轮廓的图像。
5.根据权利要求2所述的手势识别方法,其特征在于,步骤三一包括:
针对所述待测图像序列的每帧图像执行以下处理:根据该图像中的轮廓线的曲率,找到该轮廓线中的指尖点和指根关节点;将所述指尖点作为定位基点,匹配每个单指的指根关节点,得到各单指的长度作为尺度缩放的基准;基于所述指尖点和所述指根关节点的位置以及各单指的长度对相应的所述手部结构模板进行缩放和形变,通过匹配得到每只手的各指关节特征点和手腕中点特征点;
其中,所述手部结构模板包括左手结构模板和右手结构模板,所述左手结构模板和右手结构模板各自包括:各手指的指尖特征点、各指关节特征点、各指根关节特征点、手腕中点特征点以及各特征点之间的拓扑关系。
6.根据权利要求1或2所述的手势识别方法,其特征在于,步骤四包括:
步骤四一、针对每只手的待测特征点序列,根据预定时间窗将该待测特征点序列分割为多个子序列,并获得每个子序列对应的平均位置;
步骤四二、针对每只手对应的每个子序列,将该子序列与所述多个预设特征点序列中的每一个分别进行匹配,在所述多个预设特征点序列中选择与该子序列的匹配程度高于预设的匹配阈值、并且最大的预设特征点序列,作为该子序列的匹配序列;
步骤四三、将每个子序列对应的平均位置与该子序列的匹配序列对应的动作名称相关联;
步骤四四、针对每只手,将该只手对应的各子序列的匹配序列作为该只手对应的多个匹配序列,并将该多个匹配序列各自对应的动作名称作为该只手的多个动作名称。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510563293.9A CN105160323B (zh) | 2015-09-07 | 2015-09-07 | 一种手势识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510563293.9A CN105160323B (zh) | 2015-09-07 | 2015-09-07 | 一种手势识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105160323A CN105160323A (zh) | 2015-12-16 |
CN105160323B true CN105160323B (zh) | 2018-11-27 |
Family
ID=54801175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510563293.9A Expired - Fee Related CN105160323B (zh) | 2015-09-07 | 2015-09-07 | 一种手势识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105160323B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106971135A (zh) * | 2016-01-14 | 2017-07-21 | 芋头科技(杭州)有限公司 | 一种滑动手势识别方法 |
CN106971131A (zh) * | 2016-01-14 | 2017-07-21 | 芋头科技(杭州)有限公司 | 一种基于中心位置的手势识别方法 |
CN106971130A (zh) * | 2016-01-14 | 2017-07-21 | 芋头科技(杭州)有限公司 | 一种以人脸为参照的手势识别方法 |
CN106327486B (zh) * | 2016-08-16 | 2018-12-28 | 广州视源电子科技股份有限公司 | 跟踪指蹼位置的方法及其装置 |
CN106648068A (zh) * | 2016-11-11 | 2017-05-10 | 哈尔滨工业大学深圳研究生院 | 一种双手三维动态手势识别方法 |
CN106650628B (zh) * | 2016-11-21 | 2021-03-23 | 南京邮电大学 | 一种基于三维k曲率的指尖检测方法 |
CN106791763B (zh) * | 2016-11-24 | 2019-02-22 | 深圳奥比中光科技有限公司 | 一种用于3d显示和3d交互的专用处理器 |
CN107038424B (zh) * | 2017-04-20 | 2019-12-24 | 华中师范大学 | 一种手势识别方法 |
CN111045511B (zh) * | 2018-10-15 | 2022-06-07 | 华为技术有限公司 | 基于手势的操控方法及终端设备 |
CN109685037B (zh) * | 2019-01-08 | 2021-03-05 | 北京汉王智远科技有限公司 | 一种实时动作识别方法、装置及电子设备 |
CN110298314A (zh) * | 2019-06-28 | 2019-10-01 | 海尔优家智能科技(北京)有限公司 | 手势区域的识别方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102426480A (zh) * | 2011-11-03 | 2012-04-25 | 康佳集团股份有限公司 | 一种人机交互***及其实时手势跟踪处理方法 |
CN104281265A (zh) * | 2014-10-14 | 2015-01-14 | 京东方科技集团股份有限公司 | 一种应用程序的控制方法、装置及电子设备 |
CN104571482A (zh) * | 2013-10-22 | 2015-04-29 | 中国传媒大学 | 一种基于体感识别的数字设备操控方法 |
CN104598915A (zh) * | 2014-01-24 | 2015-05-06 | 深圳奥比中光科技有限公司 | 一种手势识别方法与装置 |
CN104750397A (zh) * | 2015-04-09 | 2015-07-01 | 重庆邮电大学 | 一种基于体感的虚拟矿井自然交互方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2003217587A1 (en) * | 2002-02-15 | 2003-09-09 | Canesta, Inc. | Gesture recognition system using depth perceptive sensors |
-
2015
- 2015-09-07 CN CN201510563293.9A patent/CN105160323B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102426480A (zh) * | 2011-11-03 | 2012-04-25 | 康佳集团股份有限公司 | 一种人机交互***及其实时手势跟踪处理方法 |
CN104571482A (zh) * | 2013-10-22 | 2015-04-29 | 中国传媒大学 | 一种基于体感识别的数字设备操控方法 |
CN104598915A (zh) * | 2014-01-24 | 2015-05-06 | 深圳奥比中光科技有限公司 | 一种手势识别方法与装置 |
CN104281265A (zh) * | 2014-10-14 | 2015-01-14 | 京东方科技集团股份有限公司 | 一种应用程序的控制方法、装置及电子设备 |
CN104750397A (zh) * | 2015-04-09 | 2015-07-01 | 重庆邮电大学 | 一种基于体感的虚拟矿井自然交互方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105160323A (zh) | 2015-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105160323B (zh) | 一种手势识别方法 | |
CN105045398B (zh) | 一种基于手势识别的虚拟现实交互设备 | |
CN105069444B (zh) | 一种手势识别装置 | |
US8254627B2 (en) | Method for automatically following hand movements in an image sequence | |
CN105045399B (zh) | 一种具有3d摄像组件的电子设备 | |
CN107563494B (zh) | 一种基于卷积神经网络和热图的第一视角指尖检测方法 | |
CN104317391B (zh) | 一种基于立体视觉的三维手掌姿态识别交互方法和*** | |
CN103135758B (zh) | 实现快捷功能的方法及*** | |
CN105320248B (zh) | 空中手势输入方法及装置 | |
CN105302295B (zh) | 一种具有3d摄像组件的虚拟现实交互设备 | |
CN105493078B (zh) | 彩色草图图像搜索 | |
CN103488294B (zh) | 一种基于用户交互习惯的非接触手势控制映射调整方法 | |
CN105302294B (zh) | 一种交互式虚拟现实演示装置 | |
KR100660725B1 (ko) | 얼굴 추적 장치를 가지는 휴대용 단말기 | |
KR20160101973A (ko) | 비제약형 매체에 있어서 얼굴을 식별하는 시스템 및 방법 | |
CN110147767A (zh) | 基于二维图像的三维手势姿态预测方法 | |
CN106503651B (zh) | 一种手势图像的提取方法及*** | |
CN105068662B (zh) | 一种用于人机交互的电子设备 | |
US11282257B2 (en) | Pose selection and animation of characters using video data and training techniques | |
CN109451634B (zh) | 基于手势控制电灯的方法及其智能电灯*** | |
CN105046249B (zh) | 一种人机交互方法 | |
CN103996019A (zh) | 用于检测和跟踪一个物体上多个部位的***和方法 | |
CN205080499U (zh) | 一种基于手势识别的虚拟现实交互设备 | |
CN109948450A (zh) | 一种基于图像的用户行为检测方法、装置和存储介质 | |
CN112215129A (zh) | 一种基于排序损失和双分支网络的人群计数方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 150016 Heilongjiang Province, Harbin Economic Development Zone haping Road District Dalian road and Xingkai road junction Applicant after: HARBIN YISHE TECHNOLOGY Co.,Ltd. Address before: 150016 Heilongjiang City, Harbin province Daoli District, quiet street, unit 54, unit 2, layer 4, No. 3 Applicant before: HARBIN YISHE TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20181127 |