著录项信息
专利名称 | 基于深度摄像头的双手三维非接触式动态手势识别方法 |
申请号 | CN201310090720.7 | 申请日期 | 2013-03-20 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2013-06-05 | 公开/公告号 | CN103136541A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06K9/62 | IPC分类号 | G06K9/62查看分类表>
|
申请人 | 上海交通大学 | 申请人地址 | 上海市闵行区东川路8***
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 上海交通大学 | 当前权利人 | 上海交通大学 |
发明人 | 王加俊;王宝亮;徐礼爽;申瑞民;陈静 |
代理机构 | 上海科盛知识产权代理有限公司 | 代理人 | 赵志远 |
摘要
本发明涉及一种基于深度摄像头的双手三维非接触式动态手势识别方法,包括以下步骤:1)动态手势训练子方法;2)动态手势识别子方法。与现有技术相比,本发明具有使用范围广、使用方便、识别效果好,可以方便、自然和有效的解决通过手势进行人机交互的任务等优点。
1.一种基于深度摄像头的双手三维非接触式动态手势识别方法,其特征在于,包括以下步骤:
1)动态手势训练子方法;
2)动态手势识别子方法;
所述的动态手势训练子方法包括以下步骤:
101)利用深度摄像头采集视频骨骼流,获取所需骨骼节点的三维位置,将双手的骨骼节点三维位置以六维向量的方式存储;
102)通过六维向量和帧率得到双手的速度六维向量;
103)根据速度六维向量判断动态手势是否开始,若未开始,返回步骤101),若开始,则进入104);
104)在动态手势进行过程中,将双手的骨骼节点以六维向量的方式存储;
105)通过六维向量和帧率得到双手的速度六维向量;
106)对存储的六维速度向量进行特征提取,获得一个手势相应的特征值时间序列;
107)判断动态手势是否结束,若为是,重复104)到106)获取不同手势对应的特征值时间序列,否则,将得到这些特征值时间序列作为训练样本库,执行步骤108);
108)根据步骤107)得到的训练样本库,利用耦合隐马尔科夫进行训练,得到耦合隐马尔科夫模型。
2.根据权利要求1所述的一种基于深度摄像头的双手三维非接触式动态手势识别方法,其特征在于,所述的将双手的骨骼节点三维位置以六维向量的方式存储具体为:
将左右手三维位置R(X1,Y1,Z1)和L(X2,Y2,Z2)以6维向量P(X1,Y1,Z1,X2,Y2,Z2)的方式存储。
3.根据权利要求1所述的一种基于深度摄像头的双手三维非接触式动态手势识别方法,其特征在于,所述的速度六维向量Vt计算如下:
通过双手位置向量Pt(X1,Y1,Z1,X2,Y2,Z2)和视频帧率f计算得到,
Vt(X1,Y1,Z1,X2,Y2,Z2)=(Pt(X1,Y1,Z1,X2,Y2,Z2)-Pt-1(X1,Y1,Z1,X2,Y2,Z2))*f,其中t是帧的序数。
4.根据权利要求3所述的一种基于深度摄像头的双手三维非接触式动态手势识别方法,其特征在于,所述的判断动态手势是否开始或结束具体如下:
设定一个阈值Vmin,当速度Vt大于Vmin,并维持若干帧时,手势开始,但速度都小于速度Vmin,并维持若干帧时,手势结束。
5.根据权利要求4所述的一种基于深度摄像头的双手三维非接触式动态手势识别方法,其特征在于,所述的特征提取具体为:
将位于手势开始和手势结束之间的所有速度六维向量和设定的阈值Vmin进行比较,若大于Vmin,则将其与预先设定好的特殊方向单位向量进行点乘,选择内积结果最大的对应的特殊方向单位向量作为特征值存储,并将连续的特征值中相同的仅保留一个。
6.根据权利要求5所述的一种基于深度摄像头的双手三维非接触式动态手势识别方法,其特征在于,所述的特殊方向单位向量为六维向量,其每个元素只能取-1,0,1中的一个,然后将其单位化。
7.根据权利要求6所述的一种基于深度摄像头的双手三维非接触式动态手势识别方法,其特征在于,所述的动态手势识别子方法包括以下步骤:
201)利用深度摄像头采集视频骨骼流,获取所需骨骼节点的三维位置,将双手的骨骼节点以六维向量的方式存储;
202)获得速度六维向量;
203)判断动态手势是否开始,若未开始,回到201),若开始,则进入204);
204)在动态手势进行过程中,将双手的骨骼节点以六维向量的方式存储;
205)获得速度六维向量;
206)对存储的六维速度向量列表进行特征提取,获得待识别手势相应的特征值时间序列;
207)然后将该特征值时间序列传入已训练好的耦合隐马尔科夫模型中,与标准手势的特征值时间序列进行匹配,得到待识别手势最接近的标准手势,将其作为识别结果。
基于深度摄像头的双手三维非接触式动态手势识别方法
技术领域
[0001] 本发明涉及一种手势识别方法,尤其是涉及一种基于深度摄像头的双手三维非接
触式动态手势识别方法。
背景技术
[0002] 随着计算机技术的不断发展,人们的日常生活已经离不开计算机的帮忙。而要利
用计算机使我们日常生活和工作的方方面面都更加便捷和舒适,首先应该解决好的问题就
是人机交互问题。人机交互的方式也从最开始的键盘和鼠标,逐渐发展为通过语音和计算
机交互,通过人的身体姿态和手势来进行交互。通过声音、身体姿势和手势的方式进行人机交互的方法,更加简便和自然。本发明中的基于深度摄像头的双手三维非接触式动态手势
识别的方法可以很好的解决通过动态手势和计算机进行交互。
[0003] 目前存在的动态手势识别的技术,有基于肤色和移动物体检测的方式来进行手势
识别的,这种方法对于外界环境的要求很高,这并不能适用于一般场景之下,因此适用起来不方便,并且其日常实用性也不高。还有就是通过辅助工具的,比如带一个特定的手套,或者是一个类似于无线鼠标的一个控制装置,很显然这样的方法也是很不方便的,并且不自
然。还有的方法可以识别单手三维动态手势或者是双手二维触摸式动态手势,但是无法识
别复杂的三维动态双手手势。而我们提出的基于深度摄像头的双手三维非接触式动态手势
的识别方法,对使用的环境不做苛刻的限制,使得在一般日常生活的场景下就能够很好的
识别手势进行人机交互。另外,也不需要使用额外的设备。本发明中使用的方法可以识别
复杂的三维动态双手手势,从而能够方便、自然和有效的完成进行人机交互的任务。
[0004] 经对现有技术文献的检索发现。专利申请号为201010577408.7,名称为:手势动
作识别模型的训练方法和手势动作识别方法。该方法实现了三维动态手势的训练与识别。
但需要借助于手持设备,且只能识别单手手势。
发明内容
[0005] 本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于深度摄像
头的双手三维非接触式动态手势识别方法,可以方便、自然和有效的解决通过手势进行人
机交互的任务,其一本贩卖那个不需要对外界使用环境做苛刻的限制,一般的交互方法,对于使用环境中的灯光强弱变化、倒影和场景中的其他移动物体十分敏感,因此不能够在生
活中的一般场景下进行使用;其二本发明不需要增加其他设备,模仿更自然的交互方式进
行人机交互。
[0006] 本发明的目的可以通过以下技术方案来实现:
[0007] 一种基于深度摄像头的双手三维非接触式动态手势识别方法,其特征在于,包括
以下步骤:
[0008] 1)动态手势训练子方法;
[0009] 2)动态手势识别子方法。
[0010] 所述的动态手势训练子方法包括以下步骤:
[0011] 101)利用深度摄像头采集视频骨骼流,获取所需骨骼节点的三维位置,将双手的
骨骼节点三维位置以六维向量的方式存储;
[0012] 102)通过六维向量和帧率得到双手的速度六维向量;
[0013] 103)根据速度六维向量判断动态手势是否开始,若未开始,返回步骤101),若开
始,则进入104);
[0014] 104)在动态手势进行过程中,将双手的骨骼节点以六维向量的方式存储;
[0015] 105)通过六维向量和帧率得到双手的速度六维向量;
[0016] 106)对存储的六维速度向量进行特征提取,获得一个手势相应的特征值时间序
列;
[0017] 107)判断动态手势是否结束,若为是,重复104)到106)获取不同手势对应的特征
值时间序列,否则,将得到这些特征值时间序列作为训练样本库,执行步骤108);
[0018] 108)根据步骤107)得到的训练样本库,利用耦合隐马尔科夫进行训练,得到耦合
隐马尔科夫模型。
[0019] 所述的将双手的骨骼节点三维位置以六维向量的方式存储具体为:
[0020] 将左右手三维位置R(X1,Y1,Z1)和L(X2,Y2,Z2)以6维向量P(X1,Y1,Z1,X2,Y2,Z2)的方式存储。
[0021] 所述的速度六维向量Vt计算如下:
[0022] 通过双手位置向量Pt(X1,Y1,Z1,X2,Y2,Z2)和视频帧率f计算得到,
[0023] Vt(X1,Y1,Z1,X2,Y2,Z2)=(Pt(X1,Y1,Z1,X2,Y2,Z2)-Pt-1(X1,Y1,Z1,X2,Y2,Z2))*f,其中t是帧的序数。
[0024] 所述的判断动态手势是否开始或结束具体如下:
[0025] 设定一个阈值Vmin,当速度Vt大于Vmin,并维持若干帧时,手势开始,但速度都小于速度Vmin,并维持若干帧时,手势结束。
[0026] 所述的特征提取具体为:
[0027] 将位于手势开始和手势结束之间的所有速度六维向量和设定的阈值Vmin进行比
较,若大于Vmin,则将其与预先设定好的特殊方向单位向量进行点乘,选择内积结果最大的对应的特殊方向单位向量作为特征值存储,并将连续的特征值中相同的仅保留一个
[0028] 所述的特殊方向单位向量为六维向量,其每个元素只能取-1,0,1中的一个,然后将其单位化。
[0029] 所述的动态手势识别子方法包括以下步骤:
[0030] 201)利用深度摄像头采集视频骨骼流,获取所需骨骼节点的三维位置,将双手的
骨骼节点以六维向量的方式存储;
[0031] 202)获得速度六维向量;
[0032] 203)判断动态手势是否开始,若未开始,回到201),若开始,则进入204);
[0033] 204)在动态手势进行过程中,将双手的骨骼节点以六维向量的方式存储;
[0034] 205)获得速度六维向量;
[0035] 206)对存储的六维速度向量列表进行特征提取,获得待识别手势相应的特征值时
间序列;
[0036] 207)然后将该特征值时间序列传入已训练好的耦合隐马尔科夫模型中,与标准手
势的特征值时间序列进行匹配,得到待识别手势最接近的标准手势,将其作为识别结果。
[0037] 与现有技术相比,本发明具有以下优点:
[0038] 1、使用范围广,对使用环境的限制条件减少,鲁棒性强,可以在灯光强弱有变化,环境中存在其他移动物体的环境下使用;
[0039] 2、使用方便,不需要使用手套或者其他手持设备,使用起来更加方便;
[0040] 3、识别效果好,可以识别复杂的动态的双手手势;
[0041] 4、本发明的方法可以广泛地应用于所有需要人机交换的场合,如智能教室、互动游戏、医疗、智能实验室等领域。在智能教室中,老师不论走在教室的任何角落,都可以通过手势和计算机设备进行交互从而控制教室内的教学设施,而不需要一直站在讲台或者是一
直随身携带一个额外的设备。通过运动身体来进行控制的游戏现在已经很多了,但是这多
为通过骨骼节点来进行控制,相对于身体来说,手的范围很小,但是手能够表达的意思却是相当丰富,如果能够有效的进行复杂的动态手势的识别,对于增加游戏的复杂度和趣味性
的潜力将会是无穷无尽的。在医疗方面,医生可以不通过手的直接接触来实现一些医疗操
作,而且可以实现直接通过手不能完成的医疗操作。在智能实验室方面,通过本专利所提供的方法,便不需要在对各种复杂的按钮和仪表而头疼,只要通过一些简单的手势操作完成
相应的功能。本专利中提供的方法,并不仅限于以上所述的应用范围,只要需要通过动态手势进行人机交互的地方,都可以应该本专利所提供的方法。由于本专利所提供的方法方便、自然、有效,所以可以领域很广,且潜力很大。
附图说明
[0042] 图1是本发明的流程图;
[0043] 图2是本发明动态手势训练子方法的流程图;
[0044] 图3是本发明动态手势识别子方法流程图;
[0045] 图4是本发明的实施例的添加新手势的流程图。
具体实施方式
[0046] 下面结合附图和具体实施例对本发明进行详细说明。
[0047] 实施例
[0048] 如图1所示,一种基于深度摄像头的双手三维非接触式动态手势识别方法,包括
以下步骤:
[0049] 1)动态手势训练子方法;
[0050] 2)动态手势识别子方法。
[0051] 如图2所示,所述的动态手势训练子方法包括以下步骤:
[0052] 101)利用深度摄像头采集视频骨骼流,获取所需骨骼节点的三维位置,将双手的
骨骼节点三维位置以六维向量的方式存储;
[0053] 102)通过六维向量和帧率得到双手的速度六维向量;
[0054] 103)根据速度六维向量判断动态手势是否开始,若未开始,返回步骤101),若开
始,则进入104);
[0055] 104)在动态手势进行过程中,将双手的骨骼节点以六维向量的方式存储;
[0056] 105)通过六维向量和帧率得到双手的速度六维向量;
[0057] 106)对存储的六维速度向量进行特征提取,获得一个手势相应的特征值时间序
列;
[0058] 107)判断动态手势是否结束,若为是,重复104)到106)获取不同手势对应的特征
值时间序列,否则,将得到这些特征值时间序列作为训练样本库,执行步骤108);
[0059] 108)根据步骤107)得到的训练样本库,利用耦合隐马尔科夫进行训练,得到耦合
隐马尔科夫模型。
[0060] 如图3所示,所述的动态手势识别子方法包括以下步骤:
[0061] 201)利用深度摄像头采集视频骨骼流,获取所需骨骼节点的三维位置,将双手的
骨骼节点以六维向量的方式存储;
[0062] 202)获得速度六维向量;
[0063] 203)判断动态手势是否开始,若未开始,回到201),若开始,则进入204);
[0064] 204)在动态手势进行过程中,将双手的骨骼节点以六维向量的方式存储;
[0065] 205)获得速度六维向量;
[0066] 206)对存储的六维速度向量列表进行特征提取,获得待识别手势相应的特征值时
间序列;
[0067] 207)然后将该特征值时间序列传入已训练好的耦合隐马尔科夫模型中,与标准手
势的特征值时间序列进行匹配,得到待识别手势最接近的标准手势,将其作为识别结果。
[0068] 所述的将双手的骨骼节点三维位置以六维向量的方式存储具体为:
[0069] 将左右手三维位置R(X1,Y1,Z1)和L(X2,Y2,Z2)以6维向量P(X1,Y1,Z1,X2,Y2,Z2)的方式存储。
[0070] 所述的速度六维向量Vt计算如下:
[0071] 通过双手位置向量Pt(X1,Y1,Z1,X2,Y2,Z2)和视频帧率f计算得到,
[0072] Vt(X1,Y1,Z1,X2,Y2,Z2)=(Pt(X1,Y1,Z1,X2,Y2,Z2)-Pt-1(X1,Y1,Z1,X2,Y2,Z2))*f,其中t是帧的序数。
[0073] 所述的判断动态手势是否开始或结束具体如下:
[0074] 设定一个阈值Vmin,当速度Vt大于Vmin,并维持若干帧时,手势开始,但速度都小于速度Vmin,并维持若干帧时,手势结束。
[0075] 所述的特征提取具体为:
[0076] 将位于手势开始和手势结束之间的所有速度六维向量和设定的阈值Vmin进行比
较,若大于Vmin,则将其与预先设定好的特殊方向单位向量进行点乘,选择内积结果最大的对应的特殊方向单位向量作为特征值存储,并将连续的特征值中相同的仅保留一个
[0077] 所述的特殊方向单位向量为六维向量,其每个元素只能取-1,0,1中的一个,然后
6
将其单位化。这样的单位向量一共有3=729个。如果想让手势识别的更加精确,可以增
加单位向量的个数,但这会增加运算的复杂度。
[0078] 如图4所示,使用本专利的方法添加一个新的手势到训练库中并可以识别。步骤
一,输入添加的手势的名称;步骤二,开始录制响应的手势序列;步骤三,判断是否录制完成,若未完成,则返回步骤二,若完成则继续下面的步骤;步骤四,将录制好的手势序列添加到手势训练库中;步骤五,用手势训练库去训练耦合隐马尔科夫模型;步骤六,进行手势识别。
[0079] 使用本专利的方法,即基于深度摄像头的双手三维非接触式动态手势的识别方
法,进行双手手势识别时的效果,经过试验,本专利的方法可以很好的识别双手动态手势。
法律信息
- 2019-03-08
未缴年费专利权终止
IPC(主分类): G06K 9/62
专利号: ZL 201310090720.7
申请日: 2013.03.20
授权公告日: 2015.10.14
- 2015-10-14
- 2013-07-10
实质审查的生效
IPC(主分类): G06K 9/62
专利申请号: 201310090720.7
申请日: 2013.03.20
- 2013-06-05
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2012-04-25
|
2011-11-03
| | |
2
| | 暂无 |
2012-02-28
| | |
3
| |
2012-11-21
|
2012-07-13
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |