会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 视觉识别系统 / 一种视觉手势识别系统识别方法

一种视觉手势识别系统识别方法

申请号 CN202111592499.6 申请日 2021-12-23 公开(公告)号 CN114445853A 公开(公告)日 2022-05-06
申请人 北京时代民芯科技有限公司; 北京微电子技术研究所; 发明人 陈勃旭; 于立新; 孟晓; 秦智勇; 庄伟; 朴泉宇; 姜爽; 毛鹤立; 李易昂;
摘要 一种视觉手势识别系统识别方法,利用手掌的刚性特征设计了一个手掌检测模块对当前图像中是否存在手部进行检测;检测到当前图像存在手部后,在检测到的手部区域内定位了21个3D手部骨骼关键点坐标;根据得到的关键点之间的位置关系识别具体手势。相较于触控按键方式可以实现无接触的人机交互,为人机交互提供了新的方案。
权利要求

1.一种视觉手势识别系统识别方法,其特征在于步骤如下:(1)调用摄像头获取当前手势图片并传入手掌检测模块,对输入图像中是否存在手掌进行检测,若当前输入图像中存在手掌,通过矩形框描述输入图像的对应区域,则进入步骤(2);

(2)将当前输入图像发送至手部关键点检测模块,通过直接坐标预测的方式,识别21个

3D手部骨骼关键点坐标;

(3)将步骤(2)中所得的手部骨骼关键点坐标发送至手势识别器,根据识别所得关键点坐标信息及预设定义的手势关键点信息相比较,进行手势识别,并将识别到的手势输出至显示屏幕上。

2.根据权利要求1所述的一种视觉手势识别系统识别方法,其特征在于:所述步骤(1)中,对手掌进行检测具体为:通过对输入图像进行灰度检测,获取Rect区域,并对Rect区域中的MAX_NUM帧的检测结果进行聚类,确定输入图像中是否存在手掌,并通过矩形框画出存在手掌情况下的聚类结果。

3.根据权利要求2所述的一种视觉手势识别系统识别方法,其特征在于:所述步骤(1)中,通过忽略矩形框的长宽比描述输入图像的对应区域以减少anchors的数量,其中anchors用于记录在手掌检测模块中,对输入图像里手掌所在位置进行预测时的响应区域。

4.根据权利要求3所述的一种视觉手势识别系统识别方法,其特征在于:所述步骤(2)中,于手部关键点检测模块中识别手部骨骼关键点坐标,所述手部关键点检测模块中,建立有手部关键点检测模型,手部关键点检测模型的建立方法具体为:手动标注指定数量范围的具有手部骨骼关键点坐标的真实图像,并于各种背景下进行渲染,获取合成手部节点图像,当手部关键点检测模块接收到输入图像时,将输入图像与合成手部节点图像共同进行识别并提取手部骨骼关键点坐标,以降低平均回归误差。

5.根据权利要求4述的一种视觉手势识别系统识别方法,其特征在于:所述21个3D手部骨骼关键点坐标包括x,y,z的21个三维坐标,存储于21*3的数组中,x,y为输入图像的高度与宽度于[0,1]范围内归一化后坐标,z为地标深度。

6.根据权利要求5述的一种视觉手势识别系统识别方法,其特征在于:所述步骤(3)中,预设定义的手势关键点信息通过预设手势的关键点坐标特征,提取关键节点位置信息确定,预设定义的手势关键点信息为21*3的数组或针对指定数量的关键节点位置的三维坐标确定。

7.根据权利要求6述的一种视觉手势识别系统识别方法,其特征在于:所述步骤(3)中,将识别到的手势输出至显示屏幕上,以txt文本的形式显示于显示屏幕上的预设位置。

8.根据权利要求7述的一种视觉手势识别系统识别方法,其特征在于:所述txt文本内容随识别到的手势变化,若当前输入图像未能检测到手掌,则显示屏幕上预设位置输出未检测到手部,若当前输入图像检测到手掌但无手势,则于屏幕上输出指定符号表示。

说明书全文

一种视觉手势识别系统识别方法

技术领域

[0001] 本发明涉及一种视觉手势识别系统识别方法,属于人工智能图像识别领域。

背景技术

[0002] 当前最为主流的人机交互方式是通过触控或按键进行操作,然而在某些特殊情况例如太空中的失重环境下,触控和按键的交互效果并不能满足对于准确性的要求。而基于
视觉的手势识别系统能够使操作者徒手以更加自然的方式进行人机交互,它操作方便且相
较于传统触控方式对于软硬件性能并未有过高的要求,是未来人机交互的一个重要发展趋
势。手势识别技术是各技术领域和应用平台上改善用户体验的关键技术之一。手势识别是
手语理解和手势控制的基础,它还可以在增强现实(AR)中将虚拟的数字内容叠加到真实的
物理世界之上。
[0003] 随着机器学习的发展以及硬件设备算力的提升,针对手势识别应用的设计也逐渐增多。当前采用最为广泛的手势识别的实现方案是在定义某一手势后通过大量人工采集和
标注形成相关的数据集,而后通过模型训练形成对应的手势模板。当摄像头等传感器接收
到输入图像时,将当前采集到的输入图像与模板进行比较,最终得到与输入图像匹配的手
势结果。例如,中国专利公开号CN108596079B,公开日是2021年6月15日,名称为“手势识别
方法、装置及电子设备”中公开了一种手势识别的方法,该方法是将将获取到的用户手势图
像与手势模板中的图像组进行比较,根据确定出的相似度确定待识别的手势图像对应的手
势。这种方法是一种应用较为广泛的图像识别方法,虽然可以通过多张手势模板图像的使
用来提高手势识别的准确率,但其不足之处是:用户输入图像只能是对应手部图像,当输入
图像中出现其它人体躯干部位时,势必导致识别的准确率下降,且每次需要添加新的手势
动作时,都需要对手势模板图像进行扩充与重训练,降低了系统的灵活性。

发明内容

[0004] 本发明解决的技术问题是:针对目前现有技术中,现有手势识别技术只能识别手部图像、识别准确率低的问题,提出了一种视觉手势识别系统识别方法。
[0005] 本发明解决上述技术问题是通过如下技术方案予以实现的:
[0006] 一种视觉手势识别系统识别方法,步骤如下:
[0007] (1)调用摄像头获取当前手势图片并传入手掌检测模块,对输入图像中是否存在手掌进行检测,若当前输入图像中存在手掌,通过矩形框描述输入图像的对应区域,则进入
步骤(2);
[0008] (2)将当前输入图像发送至手部关键点检测模块,通过直接坐标预测的方式,识别21个3D手部骨骼关键点坐标;
[0009] (3)将步骤(2)中所得的手部骨骼关键点坐标发送至手势识别器,根据识别所得关键点坐标信息及预设定义的手势关键点信息相比较,进行手势识别,并将识别到的手势输
出至显示屏幕上。
[0010] 所述步骤(1)中,对手掌进行检测具体为:
[0011] 通过对输入图像进行灰度检测,获取Rect区域,并对Rect区域中的MAX_NUM帧的检测结果进行聚类,确定输入图像中是否存在手掌,并通过矩形框画出存在手掌情况下的聚
类结果。
[0012] 所述步骤(1)中,通过忽略矩形框的长宽比描述输入图像的对应区域以减少anchors的数量,其中anchors用于记录在手掌检测模块中,对输入图像里手掌所在位置进
行预测时的响应区域。
[0013] 所述步骤(2)中,于手部关键点检测模块中识别手部骨骼关键点坐标,所述手部关键点检测模块中,建立有手部关键点检测模型,手部关键点检测模型的建立方法具体为:
[0014] 手动标注指定数量范围的具有手部骨骼关键点坐标的真实图像,并于各种背景下进行渲染,获取合成手部节点图像,当手部关键点检测模块接收到输入图像时,将输入图像
与合成手部节点图像共同进行识别并提取手部骨骼关键点坐标,以降低平均回归误差。
[0015] 所述21个3D手部骨骼关键点坐标包括x,y,z的21个三维坐标,存储于21*3的数组中,x,y为输入图像的高度与宽度于[0,1]范围内归一化后坐标,z为地标深度。
[0016] 所述步骤(3)中,预设定义的手势关键点信息通过预设手势的关键点坐标特征,提取关键节点位置信息确定,预设定义的手势关键点信息为21*3的数组或针对指定数量的关
键节点位置的三维坐标确定。
[0017] 所述步骤(3)中,将识别到的手势输出至显示屏幕上,以txt文本的形式显示于显示屏幕上的预设位置。
[0018] 所述txt文本内容随识别到的手势变化,若当前输入图像未能检测到手掌,则显示屏幕上预设位置输出未检测到手部,若当前输入图像检测到手掌但无手势,则于屏幕上输
出指定符号表示。
[0019] 本发明与现有技术相比的优点在于:
[0020] (1)本发明提供的一种视觉手势识别系统识别方法,针对图像中的手部检测,训练了一个手掌检测模型,而不是对每种特定的手势进行训练。利用手掌的刚性特征进行手部
位置信息的预测并返回一个手部边界预测框,因此对于输入图像的要求不再局限于局部的
手势图像,而是可以包含更多的背景信息,丰富了使用的场景;
[0021] (2)本发明采用的手势信息及其代表的含义可以由自己定义的21个手部关键点的位置信息决定,而非针对每个手势都需要训练相关模型,降低了系统的复杂度与存储量;
[0022] (3)本发明采用的手势信息及其代表的含义由21个手部关键点的位置信息决定,添加新的手势只需要定义一个新的关键点位置信息并标注其含义即可实现,无需重新训练
新的手势模型,重现性与扩展性好,同时可以利用视觉传感器直接对当前输入图像进行检
测,操作简单且无需专门的运动或深度传感器,能够使操作者徒手以更加自然的方式进行
人机交互,丰富了功能需求与使用场景。

附图说明

[0023] 图1为发明提供的整体框架的结构示意图;
[0024] 图2为发明提供的手掌检测模块的流程图;
[0025] 图3为发明提供的手部21个3D关键点示意图;
[0026] 图4为发明提供的手部关键点模型架构示意图;
[0027] 图5为发明提供的整体流程图;

具体实施方式

[0028] 一种视觉手势识别系统识别方法,首先检测当前输入图像中是否存在手部,而后对输入图像中手部位置进行追踪并返回21个关键点与它们的位置信息,最后将这些关键点
与定义的位置节点信息进行比较得出对应手势,从而克服了输入图像只局限于手部图像,
添加新的手势动作过于复杂的缺点,具体设计步骤如下:
[0029] (1)调用摄像头获取当前手势图片并传入手掌检测模块,对输入图像中是否存在手掌进行检测,若当前输入图像中存在手掌,通过矩形框描述输入图像的对应区域,则进入
步骤(2);
[0030] 其中,对手掌进行检测具体为:
[0031] 通过对输入图像进行灰度检测,获取Rect区域,并对Rect区域中的MAX_NUM帧的检测结果进行聚类,确定输入图像中是否存在手掌,并通过矩形框画出存在手掌情况下的聚
类结果;
[0032] 通过忽略矩形框的长宽比描述输入图像的对应区域以减少anchors的数量,其中anchors用于记录在手掌检测模块中,对输入图像里手掌所在位置进行预测时的响应区域;
[0033] (2)将当前输入图像发送至手部关键点检测模块,通过直接坐标预测的方式,识别21个3D手部骨骼关键点坐标;
[0034] 于手部关键点检测模块中识别手部骨骼关键点坐标,所述手部关键点检测模块中,建立有手部关键点检测模型,手部关键点检测模型的建立方法具体为:
[0035] 手动标注指定数量范围的具有手部骨骼关键点坐标的真实图像,并于各种背景下进行渲染,获取合成手部节点图像,当手部关键点检测模块接收到输入图像时,将输入图像
与合成手部节点图像共同进行识别并提取手部骨骼关键点坐标,以降低平均回归误差;
[0036] 21个3D手部骨骼关键点坐标包括x,y,z的21个三维坐标,存储于21*3的数组中,x,y为输入图像的高度与宽度于[0,1]范围内归一化后坐标,z为地标深度;
[0037] (3)将步骤(2)中所得的手部骨骼关键点坐标发送至手势识别器,根据识别所得关键点坐标信息及预设定义的手势关键点信息相比较,进行手势识别,并将识别到的手势输
出至显示屏幕上,具体的:
[0038] 预设定义的手势关键点信息通过预设手势的关键点坐标特征,提取关键节点位置信息确定,预设定义的手势关键点信息为21*3的数组或针对指定数量的关键节点位置的三
维坐标确定;
[0039] 将识别到的手势输出至显示屏幕上,以txt文本的形式显示于显示屏幕上的预设位置;
[0040] txt文本内容随识别到的手势变化,若当前输入图像未能检测到手掌,则显示屏幕上预设位置输出未检测到手部,若当前输入图像检测到手掌但无手势,则于屏幕上输出指
定符号表示。
[0041] 下面根据具体实施例进进一步说明:
[0042] 当前实施例中,如图1所示,视觉手势识别系统由手掌检测,手部关键点检测以及手势识别三个主要流程组成,识别系统通过调用摄像头获取当前图像,首先将获取的图像
送入手掌检测模块进行检测,在检测到手掌后将图像送入手部关键点检测模块,该模块会
在检测到的手部区域内确定21个3D手部骨骼关键点坐标,而后将当前图像中手部关键点的
信息传入手势识别模块与设定好的手势关键点信息进行比较,最后将匹配得到的结果以文
本的形式输出到屏幕上。
[0043] 如图2所示,在调用摄像头获取当前的图像后,将其送入分类器中并对输入的灰度图像进行检测,检测的结果是一系列Rect区域。之后,将每帧图像检测的结果中的MAX_NUM
帧的检测结果提取并保存。最后,判断结果中是否存在目标物体,即当前图像中是否有手掌
存在,若结果存在,则用绿色框画出并输出到屏幕上,若不存在,则在屏幕上输出文本“未检
测到手部”。
[0044] 区别于传统方法中直接针对特定手势进行模型训练,此模块只对“手掌”这一局部特征进行训练,这是因为针对复杂背景中检测像手掌这样的刚性物体的边界比检测整个手
部要简单得多。此外,由于手掌的面积较小,这使得非极大值抑制算法在双手遮挡情况(如
握手)下也能得到良好结果。在检测到输入图像中存在手掌部分时,此模块会返回定向的手
部边界框,否则会直接在屏幕上输出“未检测到手部”。通过这种方法,输入图像可以由单一
的的手部图像扩展到背景复杂的场景中,只需要检测到输入图像中存在手部即可定向返回
当前的手部边界框并将其传递到手部关键点检测模块进行下一步的手势识别。
[0045] 如图3所示,此图是定义的21个3D的手部关键节点及其编号,0节点代表掌跟位置,其余节点的定义方案来自于手部的关节位置。区别于大多方案中针对指定手势建立数据集
进行模型训练的策略,本设计采用先进行手部追踪,得到当前图像中手部所有节点的位置
信息后再与定义的手势节点信息进行比较的方案。只需要保证每一个关键点在误差允许范
围内与真实的手部关节相对应,即可保证识别结果的准确性,这种方法有效的降低了系统
的复杂性与存储量,同时提高了手势定义的灵活性。
[0046] 如图4所示,此图是本发明手部关键点模型架构示意图。在检测到图像中存在手部并将检测到的手部区域裁剪后,首先利用一个二分类网络区别图像中的手部是左手还是右
手,而后手部标志模型通过直接坐标回归的方式在之前检测到的手部区域内定位了21个3D
手部骨骼关键点坐标,包括x,y,z。其中x,y是根据图像的高度与宽度在[0,1]内归一化后的
坐标,以横坐标x为例,公式如下:
[0047]
[0048] xt为当前关键点横坐标,Xnorm为归一化后的横坐标,max(x)为图像宽度的最大值,min(x)图像宽度的最小值。z代表地标深度,规定掌跟节点即0节点为原点,z值越小,该节点
就越靠近相机。此外,考虑到左右手区分后可表示更多含义,因此在模型设计时引入一个二
分类网络用来区分左右手信息。该模块最终的输出结果为三部分:当前图像是否存在手部,
21个手部关键点的3D坐标信息以及图像中是左手还是右手。最后,将当前图像中这21个关
键点的位置坐标储存在一个21*3的数组中,并传入手势识别模块。
[0049] 如图5所示,此图为本发明整体流程图。在经过此前的一系列过程并接收到当前图像中手部的21个关键节点的3D坐标后,手势识别器会将这些坐标的信息与定义的手势信息
进行比较,若得到与之匹配的手势节点信息,就会在屏幕上以文本的格式输出对应的手势
含义;若未检测到对应的手势,则在屏幕上输出“——”。
[0050] 例如,对应图3中的节点位置,通过比较节点8与节点5的纵坐标y的值来判断当前手指的屈伸状态。当节点5的纵坐标大于节点8的纵坐标时表示食指处在弯曲状态,当节点5
的纵坐标小于节点8的纵坐标时表示食指伸直,其余四个手指同理。当食指处于伸直状态而
其他手指处于弯曲状态时,当前手势代表的含义为“数字1”。
[0051] 本发明虽然以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明
技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的
技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的
保护范围。
[0052] 本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。