一种快速多笔手势识别方法与流程
- 国知局
- 2024-09-05 14:29:06
本发明涉及手势识别领域,具体为一种快速多笔手势识别方法。
背景技术:
1、随着触控技术和手写笔输入设备的普及,手势识别已成为用户界面设计中的一个重要方面。手势识别技术允许用户通过简单的手势来交互,提供了一种直观和自然的方式来控制和导航计算机系统、移动设备、智能家居设备等。
2、现有技术方案主要是通过神经网络识别手势,它利用深度学习技术来实现手势识别。下面是一种基本的神经网络手势识别方法的步骤:
3、1、数据准备:收集手势数据集,包括手势路径或图像以及对应的标签(手势类别)。数据集应具有足够的样本覆盖各种手势类别和变化情况。
4、2、数据预处理:对手势数据进行预处理,如归一化、平滑化或图像处理等,以便于神经网络的训练和识别。
5、3、网络设计:设计适合手势识别任务的神经网络结构。常见的结构包括卷积神经网络(cnn)、循环神经网络(rnn)或其变种,用于提取手势数据中的特征。
6、4、网络训练:使用手势数据集对神经网络进行训练。训练过程中,将手势数据输入网络,通过反向传播算法来优化网络参数,使网络能够准确地学习手势的特征和类别。
7、5、网络评估:使用独立的测试数据集评估训练好的神经网络的性能。可以计算准确率、召回率、f1分数等指标来评估手势识别的效果。
8、6、实时识别:将训练好的神经网络部署到实际应用中,实现实时手势识别。在实时场景中,将手势数据输入网络,通过前向传播算法得到手势的预测类别。
9、神经网络手势识别方法的优点在于其强大的特征学习能力和灵活性。神经网络能够自动学习手势数据中的复杂特征,并且可以通过调整网络结构和参数来适应不同的手势识别任务。然而,神经网络方法也需要大量的标注数据和计算资源进行训练,并且对于小样本或特定手势类别的识别可能存在挑战。
10、因此现有技术的缺点如下:
11、高资源消耗:深度学习模型尤其是复杂的神经网络,往往需要大量的计算资源,包括显著的gpu加速和大量的内存,这在资源有限的移动设备或嵌入式系统中是一个问题。
12、大量训练数据:深度学习模型需要大量的标注训练数据来训练模型,收集和标注这些数据是耗时且昂贵的。
13、泛化能力有限:神经网络模型在训练数据上表现良好,但对于未见过的手势或变化可能会表现不佳,除非进行了充分的训练。
14、可解释性差:深度学习模型通常被认为是黑盒模型,很难理解模型内部的决策过程,这在需要可解释性的应用中是一个缺点。
15、部署和维护复杂:模型一旦部署,对其进行更新和维护需要重新训练并且可能需要专业知识。
16、针对现有技术的这些缺点,本发明的目的包括:
17、简化算法:开发一种算法简单的手势识别器,易于理解和实现,便于快速集成到用户界面原型中。
18、减少数据需求:通过支持基于单个模板自动扩展到所有笔顺序组合的手势识别,减少训练数据的需求量。
19、增强泛化能力:设计能够自动区分一维和二维手势的识别器,以适应多样化的交互需求,并提供泛化能力以适应多种手势。
20、提供方向不变性:支持不同方向的手势输入,使得用户不必担心输入手势的具体方向。
21、优化速度:通过采用两种速度优化方法,确保识别过程的快速性,使得系统可以实时响应用户的手势输入。
22、综上所述,本发明的目的是提供一种轻量级、高效、易于部署和维护,同时具有较好泛化能力和可解释性的多笔手势识别方法,以解决现有技术在快速原型设计和用户界面开发中的应用局限。
技术实现思路
1、(一)解决的技术问题
2、针对现有技术的不足,本发明提供了一种快速多笔手势识别方法,解决了上述的问题。
3、(二)技术方案
4、为实现上述所述目的,本发明提供如下技术方案:一种快速多笔手势识别方法,包括以下步骤:
5、第一步:进行重新采样,得到重采样点集合,随后处理舍入误差,得到点集p;
6、第二步:计算指示角并进行旋转,计算得到旋转后的点集旋转rotateq;
7、第三步:计算边界框,按照点集边界框缩放到特定的大小;
8、第四步:设定一个新的参考点pt,将点集p平移到新的质心位置pt,对于每个点pi,平移后的点qi的坐标(qxi,qyi)可以按以下方式计算:
9、qxi=xi+px-cx,qyi=yi+py-cy;
10、第五步:将点集转换为一个标准化的向量数组;
11、第六步:将多个笔画strokes组合成一个连续的单笔画points;
12、第七步:计算起始单元向量的角度。
13、优选的,所述第一步的具体内容如下:
14、s1:计算路径长度l:
15、
16、其中pi表示路径上的第i个点,pi.x和pi.y分别表示该点的横纵坐标;
17、计算重采样间隔i:
18、给定目标点数n,重采样间隔i是路径长度l除以n-1。
19、
20、s2:重采样点集合:
21、初始化新点集合q并添加第一个点p1,遍历原始点集合p;
22、令d为当前累积距离,初始化为0。对于每一对相邻点,对于每一对相邻点p_{i-1}和和p_i,计算它们之间的距离,计算它们之间的距离d:
23、
24、如果累积距离d+d大于或等于间隔i,插入一个新点qj:
25、
26、
27、将新点qj添加到q中,并将d重置为0,如果d+d小于小于i,则累积距离,则累积距离d增加d;
28、s3:处理舍入误差:
29、如果新点集合q中的点数少于n,则将原始点集合p中的最后一个点pm添加到q中;
30、最终的新点集合q将包含n个点,每个点均匀分布在原始路径上;
31、通过上述计算方法对点集进行重新采样,n和m均为96,将用户的点采用为96个新的点集。
32、优选的,所述第二步的具体内容如下:
33、给定点集p={p1,p2,...,pm},其中每个点pi有坐标(xi,yi),几何中心c的坐标(cx,cy)可以通过以下方式计算:
34、
35、其中m是点集中点的总数;
36、计算指示角:
37、计算从第一个点p1到质心c的向量与水平轴之间的角度θ;
38、θ=arctan2(cy-p1.y,cx-p1.x)
39、用这个指示角度-θ的弧度,将每个点pi关于质心c旋转后的新位置qi的坐标(qxi,qyi)可以通过以下变换计算:
40、gxi=(xi-cx)cos(α)-(yi-cy)sin(α)+cx
41、qyi=(xi-cx)sin(α)+(yi-cy)cos(α)+cy
42、其中(xi,yi)是原始点pi的坐标,(qxi,qyi)是旋转后的新点qi的坐标。
43、优选的,所述第三步的具体内容如下:
44、计算边界框;
45、对于点集p={p1,p2,...,pn},边界框的计算可以表示为:
46、minx=min(xl,x2,...,xn)
47、miny=min(y1,y2,...,yn)
48、maxx=max(x1,x2,...,xn)
49、maxy=max(y1,y2,...,yn);
50、边界框的宽度和高度分别为:
51、width=maxx-minx,height=maxy-miny;
52、通过比较边界框的宽度和高度确定手势是一维还是二维的:
53、
54、如果uniformly为true,则手势被视为一维,否则被视为二维;
55、缩放点集:
56、对于每个点pi,缩放后的点qi的坐标(qxi,qyi)可以按以下方式计算:
57、如果手势是一维的:
58、
59、如果手势是二维的:
60、
61、ratio1d范围是0.20-0.35,默认值是0.25。
62、优选的,所述第五步的具体内容如下:
63、计算向量:
64、设点集p={p0,p1,...,pn},我们要计算从p0到pindex的向量→v,这可以表示为:
65、
66、其中(x0,y0)是点p0的坐标,(xindex,yindex)是点pindex的坐标;
67、计算向量长度:
68、向量→v的长度(或模)可以通过欧几里得距离公式计算:
69、
70、标准化向量:
71、将向量→v标准化为单位向量→u,其长度为1,可以表示为:
72、
73、→u是→v的单位向量版本,保持了→v的方向,但长度为1;
74、index被设定为点数总量的八分之一,即如果总点数是n,那么index=n/8。
75、优选的,所述第六步的具体内容如下:
76、笔画集合s={s1,s2,...,sm},其中每个笔画si包含一系列点p={pi1,pi2,...,pin},那么组合操作可以表示为:
77、
78、其中pcombined是所有笔画点的集合。
79、优选的,所述第七步的具体内容如下:
80、对于候选手势和每个模板中的单笔画,计算它们起始单元向量之间的角度,如果候选手势的起始单元向量是→v1,模板中的单笔画的起始单元向量是→v2,那么角度可以通过向量的点积计算,并用反余弦函数得到:
81、
82、如果θ≤anglesimilaritythreshold(30度的弧度),继续比较;
83、计算距离;
84、更新最佳匹配:
85、然后,算法将计算出的距离d与之前找到的最佳距离b进行比较,如果d更小,就更新最佳距离b和对应的模板索引u:
86、
87、其中i是当前模板手势在模板集合中的索引;
88、算法不断更新最佳匹配模板,直到遍历完所有模板;
89、无匹配的情况:
90、
91、其中,t0是识别开始的时间,t1是识别结束的时间;
92、当找到匹配的模板时,返回模板的名称以及根据使用的算法计算出的匹配分数:
93、
94、其中,b是候选手势与最匹配模板之间的最小距离,halfdiagonal是手势识别空间对角线的一半(用于归一化距离分数),u是最匹配模板的索引。优选的,计算距离采用以下任意一种方式:
95、方式一:
96、计算两个向量之间的最优余弦距离,该距离可以表示为:
97、
98、其中,ai和bi分别是候选手势和模板向量的分量;
99、方式二:如果不使用protractor方法,距离d通过黄金分割搜索计算得出,公式如下:
100、
101、其中distanceatangledistanceatangle是在特定角度下旋转候选手势点后,与模板手势点之间的路径距离。
102、(三)有益效果
103、与现有技术相比,本发明提供了一种快速多笔手势识别方法,具备以下有益效果:
104、1、该快速多笔手势识别方法,轻量级算法:本发明提出了一种轻量级的手势识别算法,相对于深度学习模型,它更简单,计算成本低,易于在资源受限的设备上部署。
105、2、该快速多笔手势识别方法,减少数据需求:通过支持基于单个模板自动扩展到所有笔顺序组合的手势识别,本发明大幅减少了训练数据的需求,降低了数据收集和标注的工作量。
106、3、该快速多笔手势识别方法,增强泛化能力:本发明设计了能够自动区分一维和二维手势的识别器,并通过特定的算法增强了模型对新手势的泛化能力,使得模型能够更好地适应用户的多样化交互需求。
107、4、该快速多笔手势识别方法,方向不变性:本发明支持方向不变性,用户不需要担心手势的输入方向,提高了手势识别的灵活性和用户体验。
108、5、该快速多笔手势识别方法,优化速度:通过采用特定的速度优化方法,本发明确保了手势识别过程的快速性,从而可以实现系统对用户手势输入的实时响应。
109、6、该快速多笔手势识别方法,易于部署和维护:由于算法简单,本发明的手势识别系统更容易部署到各种设备上,同时也便于进行维护和更新。
110、7、该快速多笔手势识别方法,适用于快速原型设计:本发明的手势识别方法适合快速原型设计和用户界面开发,因为它简化了手势识别过程,使得开发者可以快速集成和测试手势控制功能。
本文地址:https://www.jishuxx.com/zhuanli/20240905/286683.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表