一种手势识别方法及系统转让专利

申请号 : CN202110540651.X

文献号 : CN113064545B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 史元春喻纯杨欢

申请人 : 清华大学

摘要 :

本发明提供了一种手势识别方法及系统,该方法为:获取用户用于操作屏幕的待识别手势的第一手势数据;对第一手势数据进行预处理,至少得到待识别手势的触控点ID编号的ID数量、每个触控点ID编号对应的布尔值和每个触控点ID编号对应的数据点集向量;利用待识别手势的触控点ID编号的ID数量、每个触控点ID编号对应的布尔值和每个触控点ID编号对应的数据点集向量,从预设的手势库中确定与待识别手势相匹配的样本手势,并将其作为待识别手势的最终识别结果。利用待识别手势的触控点ID编号及其相关数据,从手势库中确定与待识别手势相匹配的样本手势作为最终识别结果,以实现准确识别多样化的手势,进而提高用户的使用体验。

权利要求 :

1.一种手势识别方法,其特征在于,所述方法包括:获取用户用于操作屏幕的待识别手势的第一手势数据,所述第一手势数据包括:构成所述待识别手势的至少一根手指在所述屏幕上操作时采集得到的触控点ID编号、至少一个操作事件类型和至少一组定位信息,所述定位信息包括:横坐标、纵坐标和采集到所述操作事件类型的时间戳,每个所述操作事件类型对应一组所述定位信息;

对所述第一手势数据进行预处理,至少得到所述待识别手势的触控点ID编号的ID数量、每个触控点ID编号对应的布尔值和每个触控点ID编号对应的数据点集向量,所述数据点集向量由所述操作事件类型和所述定位信息构成;

利用所述待识别手势的触控点ID编号的ID数量、每个触控点ID编号对应的布尔值和每个触控点ID编号对应的数据点集向量,从预设的手势库中确定与所述待识别手势相匹配的样本手势,并将其作为所述待识别手势的最终识别结果,其中,所述手势库中包含预设的多个样本手势和每个样本手势对应的经过所述预处理的第二手势数据。

2.根据权利要求1所述的方法,其特征在于,所述对所述第一手势数据进行预处理,至少得到所述待识别手势的触控点ID编号的ID数量、每个触控点ID编号对应的布尔值和每个触控点ID编号对应的数据点集向量,包括:确定所述待识别手势的触控点ID编号的ID数量,所述ID数量与构成所述待识别手势的手指数量一致;

确定所述待识别手势的每个触控点ID编号对应的数据点集,所述数据点集包含至少一个操作事件类型和至少一组定位信息,所述数据点集中的数据按时间戳由前至后的时间顺序排列;

针对所述待识别手势的每个触控点ID编号,基于所述触控点ID编号的数据点集中的时间戳,判断所述触控点ID编号的数据点集中最后预设时长的横坐标和纵坐标是否发生变化,并根据判断结果确定所述触控点ID编号对应的布尔值;

针对所述待识别手势的每个触控点ID编号,将所述触控点ID编号对应的数据点集转化为向量,得到对应的数据点集向量。

3.根据权利要求1所述的方法,其特征在于,所述利用所述待识别手势的触控点ID编号的ID数量、每个触控点ID编号对应的布尔值和每个触控点ID编号对应的数据点集向量,从预设的手势库中确定与所述待识别手势相匹配的样本手势,并将其作为所述待识别手势的最终识别结果,包括:

从预设的手势库中,确定触控点ID编号的ID数量与所述待识别手势相同,且各触控点ID编号的布尔值与所述待识别手势相同的至少一个第一样本手势;

针对每一个所述第一样本手势,计算所述待识别手势和所述第一样本手势的数据点集向量之间的相似度;

确定所述相似度最小且在阈值范围内的所述第一样本手势为第二样本手势,将所述第二样本手势作为所述待识别手势的最终识别结果。

4.根据权利要求1所述的方法,其特征在于,构建所述手势库的过程,包括:获取多个样本手势,及获取每个所述样本手势对应的第二手势数据;

针对每个所述样本手势,对所述样本手势的第二手势数据进行预处理,得到所述样本手势的触控点ID编号的ID数量、每个触控点ID编号对应的布尔值和每个触控点ID编号对应的数据点集向量;

针对每个所述样本手势,将所述样本手势的触控点ID编号的ID数量、每个触控点ID编号对应的布尔值和每个触控点ID编号对应的数据点集向量存储至手势库中。

5.根据权利要求2所述的方法,其特征在于,所述针对所述待识别手势的每个触控点ID编号,将所述触控点ID编号对应的数据点集转化为向量,得到对应的数据点集向量,包括:针对所述待识别手势的每个触控点ID编号,将所述触控点ID编号对应的数据点集进行L2范数归一化,得到对应的数据点集向量。

6.根据权利要求3所述的方法,其特征在于,所述针对每一个所述第一样本手势,计算所述待识别手势和所述第一样本手势的数据点集向量之间的相似度,包括:针对每一个所述第一样本手势,计算所述待识别手势和所述第一样本手势的数据点集向量之间的余弦距离或欧式距离,将其作为所述待识别手势和所述第一样本手势的数据点集向量之间的相似度。

7.一种手势识别系统,其特征在于,所述系统包括:获取单元,用于获取用户用于操作屏幕的待识别手势的第一手势数据,所述第一手势数据包括:构成所述待识别手势的至少一根手指在所述屏幕上操作时采集得到的触控点ID编号、至少一个操作事件类型和至少一组定位信息,所述定位信息包括:横坐标、纵坐标和采集到所述操作事件类型的时间戳,每个所述操作事件类型对应一组所述定位信息;

预处理单元,用于对所述第一手势数据进行预处理,至少得到所述待识别手势的触控点ID编号的ID数量、每个触控点ID编号对应的布尔值和每个触控点ID编号对应的数据点集向量,所述数据点集向量由所述操作事件类型和所述定位信息构成;

匹配单元,用于利用所述待识别手势的触控点ID编号的ID数量、每个触控点ID编号对应的布尔值和每个触控点ID编号对应的数据点集向量,从预设的手势库中确定与所述待识别手势相匹配的样本手势,并将其作为所述待识别手势的最终识别结果,其中,所述手势库中包含预设的多个样本手势和每个样本手势对应的经过所述预处理的第二手势数据。

8.根据权利要求7所述的系统,其特征在于,所述预处理单元包括:第一确定模块,用于确定所述待识别手势的触控点ID编号的ID数量,所述ID数量与构成所述待识别手势的手指数量一致;

第二确定模块,用于确定所述待识别手势的每个触控点ID编号对应的数据点集,所述数据点集包含至少一个操作事件类型和至少一组定位信息,所述数据点集中的数据按时间戳由前至后的时间顺序排列;

处理模块,用于针对所述待识别手势的每个触控点ID编号,基于所述触控点ID编号的数据点集中的时间戳,判断所述触控点ID编号的数据点集中最后预设时长的横坐标和纵坐标是否发生变化,并根据判断结果确定所述触控点ID编号对应的布尔值;

转化模块,用于针对所述待识别手势的每个触控点ID编号,将所述触控点ID编号对应的数据点集转化为向量,得到对应的数据点集向量。

9.根据权利要求7所述的系统,其特征在于,所述匹配单元包括:第一确定模块,用于从预设的手势库中,确定触控点ID编号的ID数量与所述待识别手势相同,且各触控点ID编号的布尔值与所述待识别手势相同的至少一个第一样本手势;

计算模块,用于针对每一个所述第一样本手势,计算所述待识别手势和所述第一样本手势的数据点集向量之间的相似度;

第二确定模块,用于确定所述相似度最小且在阈值范围内的所述第一样本手势为第二样本手势,将所述第二样本手势作为所述待识别手势的最终识别结果。

10.根据权利要求8所述的系统,其特征在于,所述转化模块具体用于:针对所述待识别手势的每个触控点ID编号,将所述触控点ID编号对应的数据点集进行L2范数归一化,得到对应的数据点集向量。

说明书 :

一种手势识别方法及系统

技术领域

[0001] 本发明涉及手势识别技术领域,具体涉及一种手势识别方法及系统。

背景技术

[0002] 随着互联网的发展,智能手机和平板电脑等智能终端逐渐被广泛应用。用户与智能终端进行交互的主要方式为手势交互,而随着智能终端的应用场景的增加,用户在操作
智能终端时所使用的手势也越来越多样化。因此,为保证用户的使用体验,如何准确的识别
多样化的手势是目前亟需待解决的问题。

发明内容

[0003] 有鉴于此,本发明实施例提供一种手势识别方法及系统,以实现准确的识别多样化的手势这一目的。
[0004] 为实现上述目的,本发明实施例提供如下技术方案:
[0005] 本发明实施例第一方面公开一种手势识别方法,所述方法包括:
[0006] 获取用户用于操作屏幕的待识别手势的第一手势数据,所述第一手势数据包括:构成所述待识别手势的至少一根手指在所述屏幕上操作时采集得到的触控点ID编号、至少
一个操作事件类型和至少一组定位信息,所述定位信息包括:横坐标、纵坐标和采集到所述
操作事件类型的时间戳,每个所述操作事件类型对应一组所述定位信息;
[0007] 对所述第一手势数据进行预处理,至少得到所述待识别手势的触控点ID编号的ID数量、每个触控点ID编号对应的布尔值和每个触控点ID编号对应的数据点集向量,所述数
据点集向量由所述操作事件类型和所述定位信息构成;
[0008] 利用所述待识别手势的触控点ID编号的ID数量、每个触控点ID编号对应的布尔值和每个触控点ID编号对应的数据点集向量,从预设的手势库中确定与所述待识别手势相匹
配的样本手势,并将其作为所述待识别手势的最终识别结果,其中,所述手势库中包含预设
的多个样本手势和每个样本手势对应的经过所述预处理的第二手势数据。
[0009] 优选的,所述对所述第一手势数据进行预处理,至少得到所述待识别手势的触控点ID编号的ID数量、每个触控点ID编号对应的布尔值和每个触控点ID编号对应的数据点集
向量,包括:
[0010] 确定所述待识别手势的触控点ID编号的ID数量,所述ID数量与构成所述待识别手势的手指数量一致;
[0011] 确定所述待识别手势的每个触控点ID编号对应的数据点集,所述数据点集包含至少一个操作事件类型和至少一组定位信息,所述数据点集中的数据按时间戳由前至后的时
间顺序排列;
[0012] 针对所述待识别手势的每个触控点ID编号,基于所述触控点ID编号的数据点集中的时间戳,判断所述触控点ID编号的数据点集中最后预设时长的横坐标和纵坐标是否发生
变化,并根据判断结果确定所述触控点ID编号对应的布尔值;
[0013] 针对所述待识别手势的每个触控点ID编号,将所述触控点ID编号对应的数据点集转化为向量,得到对应的数据点集向量。
[0014] 优选的,所述利用所述待识别手势的触控点ID编号的ID数量、每个触控点ID编号对应的布尔值和每个触控点ID编号对应的数据点集向量,从预设的手势库中确定与所述待
识别手势相匹配的样本手势,并将其作为所述待识别手势的最终识别结果,包括:
[0015] 从预设的手势库中,确定触控点ID编号的ID数量与所述待识别手势相同,且各触控点ID编号的布尔值与所述待识别手势相同的至少一个第一样本手势;
[0016] 针对每一个所述第一样本手势,计算所述待识别手势和所述第一样本手势的数据点集向量之间的相似度;
[0017] 确定所述相似度最小且在阈值范围内的所述第一样本手势为第二样本手势,将所述第二样本手势作为所述待识别手势的最终识别结果。
[0018] 优选的,构建所述手势库的过程,包括:
[0019] 获取多个样本手势,及获取每个所述样本手势对应的第二手势数据;
[0020] 针对每个所述样本手势,对所述样本手势的第二手势数据进行预处理,得到所述样本手势的触控点ID编号的ID数量、每个触控点ID编号对应的布尔值和每个触控点ID编号
对应的数据点集向量;
[0021] 针对每个所述样本手势,将所述样本手势的触控点ID编号的ID数量、每个触控点ID编号对应的布尔值和每个触控点ID编号对应的数据点集向量存储至手势库中。
[0022] 优选的,所述针对所述待识别手势的每个触控点ID编号,将所述触控点ID编号对应的数据点集转化为向量,得到对应的数据点集向量,包括:
[0023] 针对所述待识别手势的每个触控点ID编号,将所述触控点ID编号对应的数据点集进行L2范数归一化,得到对应的数据点集向量。
[0024] 优选的,所述针对每一个所述第一样本手势,计算所述待识别手势和所述第一样本手势的数据点集向量之间的相似度,包括:
[0025] 针对每一个所述第一样本手势,计算所述待识别手势和所述第一样本手势的数据点集向量之间的余弦距离或欧式距离,将其作为所述待识别手势和所述第一样本手势的数
据点集向量之间的相似度。
[0026] 本发明实施例第二方面公开一种手势识别系统,所述系统包括:
[0027] 获取单元,用于获取用户用于操作屏幕的待识别手势的第一手势数据,所述第一手势数据包括:构成所述待识别手势的至少一根手指在所述屏幕上操作时采集得到的触控
点ID编号、至少一个操作事件类型和至少一组定位信息,所述定位信息包括:横坐标、纵坐
标和采集到所述操作事件类型的时间戳,每个所述操作事件类型对应一组所述定位信息;
[0028] 预处理单元,用于对所述第一手势数据进行预处理,至少得到所述待识别手势的触控点ID编号的ID数量、每个触控点ID编号对应的布尔值和每个触控点ID编号对应的数据
点集向量,所述数据点集向量由所述操作事件类型和所述定位信息构成;
[0029] 匹配单元,用于利用所述待识别手势的触控点ID编号的ID数量、每个触控点ID编号对应的布尔值和每个触控点ID编号对应的数据点集向量,从预设的手势库中确定与所述
待识别手势相匹配的样本手势,并将其作为所述待识别手势的最终识别结果,其中,所述手
势库中包含预设的多个样本手势和每个样本手势对应的经过所述预处理的第二手势数据。
[0030] 优选的,所述预处理单元包括:
[0031] 第一确定模块,用于确定所述待识别手势的触控点ID编号的ID数量,所述ID数量与构成所述待识别手势的手指数量一致;
[0032] 第二确定模块,用于确定所述待识别手势的每个触控点ID编号对应的数据点集,所述数据点集包含至少一个操作事件类型和至少一组定位信息,所述数据点集中的数据按
时间戳由前至后的时间顺序排列;
[0033] 处理模块,用于针对所述待识别手势的每个触控点ID编号,基于所述触控点ID编号的数据点集中的时间戳,判断所述触控点ID编号的数据点集中最后预设时长的横坐标和
纵坐标是否发生变化,并根据判断结果确定所述触控点ID编号对应的布尔值;
[0034] 转化模块,用于针对所述待识别手势的每个触控点ID编号,将所述触控点ID编号对应的数据点集转化为向量,得到对应的数据点集向量。
[0035] 优选的,所述匹配单元包括:
[0036] 第一确定模块,用于从预设的手势库中,确定触控点ID编号的ID数量与所述待识别手势相同,且各触控点ID编号的布尔值与所述待识别手势相同的至少一个第一样本手
势;
[0037] 计算模块,用于针对每一个所述第一样本手势,计算所述待识别手势和所述第一样本手势的数据点集向量之间的相似度;
[0038] 第二确定模块,用于确定所述相似度最小且在阈值范围内的所述第一样本手势为第二样本手势,将所述第二样本手势作为所述待识别手势的最终识别结果。
[0039] 优选的,所述转化模块具体用于:针对所述待识别手势的每个触控点ID编号,将所述触控点ID编号对应的数据点集进行L2范数归一化,得到对应的数据点集向量。
[0040] 基于上述本发明实施例提供的一种手势识别方法及系统,该方法为:获取用户用于操作屏幕的待识别手势的第一手势数据;对第一手势数据进行预处理,至少得到待识别
手势的触控点ID编号的ID数量、每个触控点ID编号对应的布尔值和每个触控点ID编号对应
的数据点集向量;利用待识别手势的触控点ID编号的ID数量、每个触控点ID编号对应的布
尔值和每个触控点ID编号对应的数据点集向量,从预设的手势库中确定与待识别手势相匹
配的样本手势,并将其作为待识别手势的最终识别结果。本方案中,预先构建包含多个样本
手势和样本手势对应的第二手势数据的手势库。利用待识别手势的触控点ID编号及其相关
数据,从手势库中确定与待识别手势相匹配的样本手势作为最终识别结果,以实现准确识
别多样化的手势,进而提高用户的使用体验。

附图说明

[0041] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据
提供的附图获得其他的附图。
[0042] 图1为本发明实施例提供的一种手势识别方法的流程图;
[0043] 图2为本发明实施例提供的手势数据的格式示意图;
[0044] 图3为本发明实施例提供的对第一手势数据进行预处理的流程图;
[0045] 图4为本发明实施例提供的一种手势识别系统的结构框图。

具体实施方式

[0046] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他
实施例,都属于本发明保护的范围。
[0047] 在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有
明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没
有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过
程、方法、物品或者设备中还存在另外的相同要素。
[0048] 由背景技术可知,随着智能手机和平板电脑等智能终端的广泛应用,手势交互成为用户与智能终端进行交互的主要方式,与此同时,在多样化的智能终端的应用场景下,用
户在操作智能终端时所使用的手势也越来越多样化。因此如何准确的识别多样化的手势是
目前亟需待解决的问题。
[0049] 故本发明实施例提供一种手势识别方法及系统,预先构建包含多个样本手势和样本手势对应的第二手势数据的手势库。利用待识别手势的触控点ID编号及其相关数据,从
手势库中确定与待识别手势相匹配的样本手势作为最终识别结果,以实现准确识别多样化
的手势。
[0050] 需要说明的是,本发明实施例中所涉及的手势的完整过程为:从第一根手指接触屏幕到最后一根手指离开屏幕,其中,每根手指接触屏幕时该屏幕上会产生一个相应的触
控点。具体而言,一次完整的手势的起始为屏幕上第一个触控点落下,终止为屏幕上最后一
个触控点离开后延迟指定时长(例如100ms),若该指定时长内无新的触控点在屏幕上产生,
则为一次手势终止。
[0051] 可以理解的是,在利用指定时长确定手势终止时是为了不遗漏多次点击的手势,例如:单指双击过程中,该手势(单指双击)所经历的操作事件类型依次为第一个触控点落
下‑>第一个触控点离开‑>100ms内新的触控点落下‑>新的触控点离开。
[0052] 参见图1,示出了本发明实施例提供的一种手势识别方法的流程图,该手势识别方法包括:
[0053] 步骤S101:获取用户用于操作屏幕的待识别手势的第一手势数据。
[0054] 可以理解的是,用户在通过手指操作屏幕(智能终端的触摸屏)时,每一根手指与屏幕接触时该屏幕上会多一个触控点,每一根手指离开屏幕后,该屏幕会少一个触控点,也
就是说,当前有N根手指与屏幕接触,则该屏幕上会有N个触控点。
[0055] 为区分不同手指对于屏幕的操作,为屏幕上每一个触控点赋予相应的触控点ID编号,不同的触控点对应不同的触控点ID编号,即通过触控点ID编号指示不同手指。例如:当
用户通过双指操作屏幕时,屏幕上存在2个触控点,该2个触控点的触控点ID编号分别为1和
2(此处的编号形式仅仅用于举例)。
[0056] 通过触控点ID编号的ID数量(即不同的触控点ID编号的数量)可以确定用户通过几根手指操作屏幕。例如:假设屏幕上存在3个触控点(用户通过3根手指操作屏幕),其触控
点ID编号分别为1、2和3,则触控点ID编号的ID数量为3,触控点ID编号1、2和3分别对应用户
的3根手指。
[0057] 结合上述内容,在具体实现步骤S101的过程中,当用户通过待识别手势操作屏幕时,获取该待识别手势的第一手势数据。
[0058] 第一手势数据包括:构成待识别手势的至少一根手指在屏幕上操作时采集得到的触控点ID编号、至少一个操作事件类型和至少一组定位信息,定位信息包括:横坐标、纵坐
标和采集到操作事件类型的时间戳,每个操作事件类型对应一组定位信息。
[0059] 可以理解的是,构成待识别手势的每一根手指对应一个触控点ID编号、至少一个操作事件类型和至少一组定位信息,即一个触控点ID编号可对应至少一个操作事件类型和
至少一组定位信息。
[0060] 需要说明的是,当用户的手指在屏幕上进行落下、离开和滑动等操作事件时,会对该操作事件进行响应,也就是说,一个触控点ID编号对应的每个操作事件类型为手指落下、
手指离开或手指滑动等,一个触控点ID编号可采集到多个操作事件类型。
[0061] 例如:假设用户通过单指操作屏幕,手指的落下和离开这一操作事件类型只采集到一次,但手指的滑动这一操作事件类型则可以采集到多次。
[0062] 通过屏幕采集操作事件对应的操作事件类型的频率为该屏幕的采样率,例如:假设屏幕采样率为60Hz,则表示在1秒内会采集60次操作事件类型,采集到某一操作事件类型
的时间即为该操作事件类型的时间戳。
[0063] 在采集操作事件的操作事件类型的过程中,还会采集与该操作事件相对应的横坐标和纵坐标,该横坐标和纵坐标指示操作事件发生在屏幕的哪个位置。
[0064] 可以理解的是,当用户通过多根手指操作屏幕时,例如通过双指操作屏幕时,会交替采集2根手指的操作事件的相关信息,每次所采集到的操作事件的相关信息包含:触控点
ID编号(用于指示哪根手指)、横坐标、纵坐标、时间戳和操作事件类型。在一次手势中,会连
续多次采集上述提及的操作事件的相关信息,通过所采集到的相关信息构成该手势的手势
数据。
[0065] 也就是说,待识别手势的第一手势数据由若干触控点构成的向量组成,第一手势数据也可看作为数据点集,每个触控点中所包含信息为:触控点ID编号、操作事件类型、横
坐标、纵坐标和时间戳。
[0066] 第一手势数据的格式参见图2示出的手势数据的格式示意图,在图2中,点1至点n分别表示数据点,可以理解的是,图2中的点1至点n中任意两点的ID值(即触控点ID编号)可
能相同,但该任意两点之间的操作事件类型、横坐标、纵坐标和时间戳中的任意一项或多项
可能不同。
[0067] 例如:结合图2,假设用户以单指滑动手势操作屏幕,则单指滑动手势的手势数据中的所有数据点的触控点ID编号相同,点1对应的操作事件类型为触控点落下,点n对应的
操作事件类型为触控点离开,其余点的操作事件类型为触控点滑动,各个点的横坐标、纵坐
标和时间戳指示操作事件在屏幕上的位置和发生时间。
[0068] 又例如:结合图2,假设用户以双指滑动手势操作屏幕,则该双指滑动手势的手势数据中的部分数据点的触控点ID编号为1,另一部分数据点的触控点ID编号为2,双指滑动
手势的手势数据可以看作触控点ID编号为1的单指滑动数据点集和触控点ID编号为2的单
指滑动数据点集交错组合在一起构成的。
[0069] 对于多指操作屏幕所对应的手势数据,可参见上述双指滑动手势操作屏幕的示例中的内容,在此不再一一举例赘述。
[0070] 步骤S102:对第一手势数据进行预处理,至少得到待识别手势的触控点ID编号的ID数量、每个触控点ID编号对应的布尔值和每个触控点ID编号对应的数据点集向量。
[0071] 需要说明的是,由上述步骤S101中的内容可知,第一手势数据包括:至少一个触控点ID编号,及各触控点ID编号对应的操作事件类型与定位信息。且第一手势数据可看作为
由各触控点ID编号对应的数据点集交错组合在一起构成的。
[0072] 触控点ID编号对应的数据点集即包含:该触控点ID编号对应的操作事件类型和定位信息(纵坐标、横坐标和时间戳)。
[0073] 在具体实现步骤S102的过程中,对第一手势数据进行预处理,统计待识别手势的触控点ID编号的ID数量,及利用触控点ID编号的数据点集中的时间戳确定该触控点ID编号
的布尔值,及将触控点ID编号对应的数据点集转化为向量得到对应的数据点集向量,即数
据点集向量由操作事件类型和定位信息构成。
[0074] 也就是说,在对第一手势数据进行预处理后,可得到待识别手势的触控点ID编号的ID数量,每个触控点ID编号对应的布尔值,和每个触控点ID编号对应的数据点集向量。
[0075] 可以理解的是,由上述步骤S101中的内容可知,每个触控点ID编号对应构成待识别手势的某根手指,因此对于一个触控点ID编号,通过所确定的该触控点ID编号对应的布
尔值,可反映该触控点ID编号对应的手指是否在屏幕上停顿,当该触控点ID编号对应的布
尔值为TRUE时表示对应的手指不在屏幕上停顿,当该触控点ID编号对应的布尔值为FALSE
时表示对应的手指在屏幕上停顿。
[0076] 综上,对第一手势数据进行预处理后,所得到的数据的内容和格式具体如下:
[0077] 触控点ID编号的ID数量;
[0078] ID1(触控点ID编号),布尔值,横坐标1,纵坐标1,时间戳1,操作事件类型1,横坐标2,纵坐标2,时间戳2,操作事件类型2……横坐标k,纵坐标k,时间戳k,操作事件类型k,k为
ID1所对应的操作事件类型的总数量;
[0079] ……
[0080] IDn,布尔值,横坐标1,纵坐标1,时间戳1,操作事件类型1,横坐标2,纵坐标2,时间戳2,操作事件类型2……横坐标h,纵坐标h,时间戳h,操作事件类型h,h为IDn所对应的操作
事件类型的总数量。
[0081] 需要说明的是,n为第一手势数据所包含的触控点ID编号的ID数量。
[0082] 步骤S103:利用待识别手势的触控点ID编号的ID数量、每个触控点ID编号对应的布尔值和每个触控点ID编号对应的数据点集向量,从预设的手势库中确定与待识别手势相
匹配的样本手势,并将其作为待识别手势的最终识别结果。
[0083] 需要说明的是,按照预先设置的手势类别,预先引导用户在屏幕上做出相应的样本手势,并采集样本手势的第二手势数据。利用多个样本手势和每个样本手势对应的经过
预处理的第二手势数据,构建手势库。
[0084] 在一些实施例中,构建手势库的具体过程为:获取多个样本手势,及获取每个样本手势对应的第二手势数据;针对每个样本手势,对该样本手势的第二手势数据进行预处理,
得到该样本手势的触控点ID编号的ID数量、每个触控点ID编号对应的布尔值和每个触控点
ID编号对应的数据点集向量;针对每个样本手势,将该样本手势的触控点ID编号的ID数量、
每个触控点ID编号对应的布尔值和每个触控点ID编号对应的数据点集向量存储至手势库
中。
[0085] 也就是说,手势库中存储多个样本手势,及存储每个样本手势对应的触控点ID编号的ID数量、每个触控点ID编号对应的布尔值和每个触控点ID编号对应的数据点集向量。
[0086] 需要说明的是,对第二手势数据进行预处理的过程,可参见上述步骤S102中对第一手势数据进行预处理的过程,在此不再赘述。
[0087] 在具体实现步骤S103的过程中,从预设的手势库中,确定触控点ID编号的ID数量与待识别手势相同,且各触控点ID编号的布尔值与待识别手势相同的至少一个第一样本手
势。
[0088] 也就是说,将待识别手势的ID数量,与手势库中的每一样本手势的ID数量进行比对,确定ID数量与待识别手势相同的样本手势。并从ID数量与待识别手势相同的样本手势
中,确定各触控点ID编号的布尔值与待识别手势相同的至少一个第一样本手势。即对于每
一个第一样本手势,该第一样本手势的ID数量与待识别手势的ID数量相同,且该第一样本
手势的各触控点ID编号的布尔值与该待识别手势相同(即第一样本手势和待识别手势之间
相同编号的触控点ID编号所对应的布尔值相同)。
[0089] 针对每一个第一样本手势,计算待识别手势和该第一样本手势的数据点集向量之间的相似度,具体计算方式为:针对每一个第一样本手势,计算待识别手势和该第一样本手
势的数据点集向量之间的余弦距离或欧式距离,将其(余弦距离或欧式距离)作为待识别手
势和该第一样本手势的数据点集向量之间的相似度。
[0090] 可以理解的是,当待识别手势和第一样本手势的ID数量大于1时(存在多个触控点ID编号),即表示待识别手势和第一样本手势存在多个数据点集向量,此时,计算触控点ID
编号相同的数据点集向量之间的相似度,得到多个相似度,将多个相似度进行求平均计算
(也可按照权重计算的方式)所得到的值作为待识别手势和该第一样本手势之间的相似度。
[0091] 需要说明的是,为保证数据简洁,可采用余弦距离作为待识别手势和该第一样本手势的数据点集向量之间的相似度。
[0092] 在计算得到待识别手势和每个第一样本手势的数据点集向量之间的相似度之后,确定相似度最小且在阈值范围内的第一样本手势为第二样本手势,将第二样本手势作为待
识别手势的最终识别结果。
[0093] 也就是说,待识别手势的最终识别结果为:相似度最小且该相似度在阈值范围内的第一样本手势。
[0094] 在本发明实施例中,预先构建包含多个样本手势和样本手势对应的第二手势数据的手势库。利用待识别手势的触控点ID编号及其相关数据,从手势库中确定与待识别手势
相匹配的样本手势作为最终识别结果,以实现准确识别多样化的手势,进而提高用户的使
用体验。
[0095] 上述本发明实施例图1步骤S102中所涉及的对第一手势数据进行预处理的过程,参见图3,示出了本发明实施例提供的对第一手势数据进行预处理的流程图,包括以下步
骤:
[0096] 步骤S301:确定待识别手势的触控点ID编号的ID数量。
[0097] 需要说明的是,待识别手势的触控点ID编号的ID数量与构成待识别手势的手指数量一致。
[0098] 在具体实现步骤S301的过程中,遍历第一手势数据中的触控点ID编号,确定不同的触控点ID编号的数量,将该数量作为待识别手势的触控点ID编号的ID数量。
[0099] 步骤S302:确定待识别手势的每个触控点ID编号对应的数据点集。
[0100] 需要说明的是,每个触控点ID编号对应的数据点集包含至少一个操作事件类型和至少一组定位信息,该数据点集中的数据按时间戳由前至后的时间顺序排列。
[0101] 由上述本发明实施例图1步骤S101的内容可知,当用户通过多根手指操作屏幕时,会分别对各个手指所执行的操作事件采集相应的操作事件类型和定位信息,也就是说,各
个手指所执行的操作事件对应的操作事件类型和定位信息混合在一起。
[0102] 因此,需要把不同手指所执行的操作事件对应的操作事件类型和定位信息区分开来。在具体实现步骤S302的过程中,按照待识别手势的触控点ID编号,对所有操作事件类型
和定位信息进行分类,从而确定每个触控点ID编号对应的数据点集(也就是操作事件类型
和对应的定位信息)。
[0103] 例如:假设用户通过双指滑动手势操作屏幕,该双指滑动手势对应的触控点ID编号分别为ID1和ID2,将采集到的所有操作事件类型和定位信息进行分类,确定ID1对应的操
作事件类型和定位信息,及确定ID2对应的操作事件类型和定位信息。
[0104] 与此同时,对于每个触控点ID编号,将该触控点ID编号的操作事件类型和定位信息,按照时间戳由前至后的时间顺序进行排列。
[0105] 步骤S303:针对待识别手势的每个触控点ID编号,基于触控点ID编号的数据点集中的时间戳,判断触控点ID编号的数据点集中最后预设时长的横坐标和纵坐标是否发生变
化,并根据判断结果确定触控点ID编号对应的布尔值。
[0106] 在具体实现步骤S303的过程在,对于待识别手势的每个触控点ID编号,判断该触控点ID编号的数据点集中最后预设时长的横坐标和纵坐标是否发生变化,并根据判断结果
确定触控点ID编号对应的布尔值。
[0107] 在具体实现中,对于待识别手势的每个触控点ID编号,若该触控点ID编号的数据点集中最后预设时长的横坐标和/或纵坐标发生变化,确定该触控点ID编号对应的布尔值
为TRUE;若该触控点ID编号的数据点集中最后预设时长的横坐标和纵坐标均未发生变化,
确定该触控点ID编号对应的布尔值为FALSE。
[0108] 在一些具体实施例中,对于待识别手势的每个触控点ID编号,获取与该触控点ID编号的数据点集中最后一个时间戳相隔不超过预设时长的时间戳(此处称为待比较时间
戳)对应的横坐标和纵坐标,逐一将每个待比较时间戳与最后一个时间戳的坐标进行比较
(横坐标与横坐标比较,纵坐标与纵坐标比较);如果任意一个待比较时间戳与最后一个时
间戳的坐标不同(横坐标和/或纵坐标不同),则确定该触控点ID编号的数据点集中最后预
设时长的横坐标和/或纵坐标发生变化;如果所有待比较时间戳与最后一个时间戳的坐标
相同,则确定该触控点ID编号的数据点集中最后预设时长的横坐标和纵坐标均未发生变
化。
[0109] 例如:对于待识别手势的某个触控点ID编号,获取与该触控点ID编号的数据点集中最后一个时间戳相隔不超过500ms的时间戳(此处称为待比较时间戳)对应的横坐标和纵
坐标,逐一将每个待比较时间戳与最后一个时间戳的坐标进行比较。
[0110] 步骤S304:针对待识别手势的每个触控点ID编号,将触控点ID编号对应的数据点集转化为向量,得到对应的数据点集向量。
[0111] 在具体实现步骤S304的过程中,针对待识别手势的每个触控点ID编号,将该触控点ID编号对应的数据点集进行L2范数归一化,将该数据点集转化为长度为1的单位向量,得
到该触控点ID编号对应的数据点集向量。
[0112] 可以理解的是,将触控点ID编号对应的数据点集进行L2范数归一化,具体是指将待识别手势按照一定比例放大或缩小,将该待识别手势的滑动距离统一为单位距离。
[0113] 需要说明的是,步骤S301至步骤S304是对第一手势数据进行预处理的过程,相应的,在构建手势库的过程中,对样本手势对应的第二手势数据进行预处理的过程,可参见上
述步骤S301至步骤S304,在此不再进行赘述。
[0114] 在本发明实施例中,对第一手势数据进行预处理得到待识别手势的触控点ID编号的ID数量、每个触控点ID编号对应的布尔值和每个触控点ID编号对应的数据点集向量。再
利用所得到的相关数据,从手势库中确定与待识别手势相匹配的样本手势作为最终识别结
果,以实现准确识别多样化的手势,进而提高用户的使用体验。
[0115] 与上述本发明实施例提供的一种手势识别方法相对应,参见图4,本发明实施例还提供了一种手势识别系统的结构框图,该手势识别系统包括:获取单元401、预处理单元402
和匹配单元403;
[0116] 获取单元401,用于获取用户用于操作屏幕的待识别手势的第一手势数据,第一手势数据包括:构成待识别手势的至少一根手指在所述屏幕上操作时采集得到的触控点ID编
号、至少一个操作事件类型和至少一组定位信息,定位信息包括:横坐标、纵坐标和采集到
操作事件类型的时间戳,每个操作事件类型对应一组定位信息。
[0117] 预处理单元402,用于对第一手势数据进行预处理,至少得到待识别手势的触控点ID编号的ID数量、每个触控点ID编号对应的布尔值和每个触控点ID编号对应的数据点集向
量,数据点集向量由操作事件类型和定位信息构成。
[0118] 匹配单元403,用于利用待识别手势的触控点ID编号的ID数量、每个触控点ID编号对应的布尔值和每个触控点ID编号对应的数据点集向量,从预设的手势库中确定与待识别
手势相匹配的样本手势,并将其作为待识别手势的最终识别结果,其中,手势库中包含预设
的多个样本手势和每个样本手势对应的经过预处理的第二手势数据。
[0119] 优选的,用于构建手势库的匹配单元403具体用于:获取多个样本手势,及获取每个样本手势对应的第二手势数据;针对每个样本手势,对样本手势的第二手势数据进行预
处理,得到样本手势的触控点ID编号的ID数量、每个触控点ID编号对应的布尔值和每个触
控点ID编号对应的数据点集向量;针对每个样本手势,将样本手势的触控点ID编号的ID数
量、每个触控点ID编号对应的布尔值和每个触控点ID编号对应的数据点集向量存储至手势
库中。
[0120] 在本发明实施例中,预先构建包含多个样本手势和样本手势对应的第二手势数据的手势库。利用待识别手势的触控点ID编号及其相关数据,从手势库中确定与待识别手势
相匹配的样本手势作为最终识别结果,以实现准确识别多样化的手势,进而提高用户的使
用体验。
[0121] 优选的,结合图4示出的内容,预处理单元402包括:第一确定模块、第二确定模块、处理模块和转化模块;
[0122] 第一确定模块,用于确定待识别手势的触控点ID编号的ID数量,ID数量与构成待识别手势的手指数量一致。
[0123] 第二确定模块,用于确定待识别手势的每个触控点ID编号对应的数据点集,数据点集包含至少一个操作事件类型和至少一组定位信息,数据点集中的数据按时间戳由前至
后的时间顺序排列。
[0124] 处理模块,用于针对待识别手势的每个触控点ID编号,基于触控点ID编号的数据点集中的时间戳,判断触控点ID编号的数据点集中最后预设时长的横坐标和纵坐标是否发
生变化,并根据判断结果确定触控点ID编号对应的布尔值。
[0125] 转化模块,用于针对待识别手势的每个触控点ID编号,将触控点ID编号对应的数据点集转化为向量,得到对应的数据点集向量。
[0126] 在具体实现中,转化模块具体用于:针对待识别手势的每个触控点ID编号,将触控点ID编号对应的数据点集进行L2范数归一化,得到对应的数据点集向量。
[0127] 在本发明实施例中,对第一手势数据进行预处理得到待识别手势的触控点ID编号的ID数量、每个触控点ID编号对应的布尔值和每个触控点ID编号对应的数据点集向量。再
利用所得到的相关数据,从手势库中确定与待识别手势相匹配的样本手势作为最终识别结
果,以实现准确识别多样化的手势,进而提高用户的使用体验。
[0128] 优选的,结合图4示出的内容,匹配单元403包括:第一确定模块、计算模块和第二确定模块,各个模块的执行原理如下:
[0129] 第一确定模块,用于从预设的手势库中,确定触控点ID编号的ID数量与待识别手势相同,且各触控点ID编号的布尔值与待识别手势相同的至少一个第一样本手势。
[0130] 计算模块,用于针对每一个第一样本手势,计算待识别手势和第一样本手势的数据点集向量之间的相似度。
[0131] 在具体实现中,计算模块具体用于:针对每一个第一样本手势,计算待识别手势和第一样本手势的数据点集向量之间的余弦距离或欧式距离,将其作为待识别手势和第一样
本手势的数据点集向量之间的相似度。
[0132] 第二确定模块,用于确定相似度最小且在阈值范围内的第一样本手势为第二样本手势,将第二样本手势作为待识别手势的最终识别结果。
[0133] 综上所述,本发明实施例提供一种手势识别方法及系统,通过预先构建包含多个样本手势和样本手势对应的第二手势数据的手势库。利用待识别手势的触控点ID编号及其
相关数据,从手势库中确定与待识别手势相匹配的样本手势作为最终识别结果,以实现准
确识别多样化的手势,进而提高用户的使用体验。
[0134] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或
系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法
实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为
分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或
者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根
据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术
人员在不付出创造性劳动的情况下,即可以理解并实施。
[0135] 专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和
软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些
功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业
技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应
认为超出本发明的范围。
[0136] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的
一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明
将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一
致的最宽的范围。