基于ELM神经网络的动态手势学习与识别方法转让专利

申请号 : CN201710160089.1

文献号 : CN107102727B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 郭志强李博闻黄晶

申请人 : 武汉理工大学

摘要 :

本发明公开了一种基于ELM神经网络的动态手势学习与识别方法,包括步骤:1)采集人体上肢的结构向量;2)将结构向量计算手势夹角信息;3)将手势夹角信息描述为静态手势特征序列;4)将静态手势特征序列作为输入层建立ELM神经网络;5)输入静态手势特征序列的样本数据对ELM神经网络进行训练,计算隐含层到输出层的权值;6)得到隐含层到输出层的权值即ELM神经网络训练完成;7)将静态手势特征序列的数据输入ELM神经网络进行识别。本发明采用基于前馈型网络的学习方法‑‑极限学习机,并将其用于人机互动的手势识别,相对于BP神经网络,ELM算法具有更快的学习速度和更好的识别效果。本发明可操作性更强,网络的泛化能力更好,手势的成功识别率更高。

权利要求 :

1.一种基于ELM神经网络的动态手势学习与识别方法,其特征在于:包括如下步骤:

1)采集人体上肢的结构向量;首先从关节点的选取和关节向量间的角度两方面来构造静态手势描述向量,选择与手势变化密切相关的9个关节点描述手势的特征,分别为左手、左手腕、左手肘、左肩、肩膀中心、右手、右手腕、右手肘、右肩;针对骨骼模型中人体的结构特点构造手势结构向量是描述手部角度信息的基础,根据人体骨骼模型的上肢部分共构造

8组结构向量;人体上肢的结构向量包括肩膀中心到左肩的向量 左肩到左手肘的向量左手肘到左手腕的向量 左手腕到左手的向量 肩膀中心到右肩的向量 右肩到右手肘的向量 右手肘到右手腕的向量 右手腕到右手的向量

2)将所述结构向量计算手势夹角信息;所述结构向量计算手势夹角信息包括肩膀中心到左肩的向量 与左肩到左手肘的向量 之间的夹角β1、左肩到左手肘的向量 与左手肘到左手腕的向量 之间的夹角β2、左手肘到左手腕的向量 与左手腕到左手的向量 之间的夹角β3、肩膀中心到右肩的向量 与右肩到右手肘的向量 之间的夹角β4、右肩到右手肘的向量 与右手肘到右手腕的向量 之间的夹角β5、右手肘到右手腕的向量 与右手腕到右手的向量 之间的夹角β6;

所述肩膀中心到右肩的向量 与右肩到右手肘的向量 之间的夹角β4、右肩到右手肘的向量 与右手肘到右手腕的向量 之间的夹角β5、右手肘到右手腕的向量 与右手腕到右手的向量 之间的夹角β6由肩膀中心到左肩的向量 与左肩到左手肘的向量 之间的夹角β1、左肩到左手肘的向量 与左手肘到左手腕的向量 之间的夹角β2、左手肘到左手腕的向量 与左手腕到左手的向量 之间的夹角β3依据人体对称结构得到,上述六个夹角的取值范围均为[0,π];

3)将所述手势夹角信息描述为静态手势特征序列;

4)将所述静态手势特征序列作为输入层建立ELM神经网络;

5)输入所述静态手势特征序列的样本数据对所述ELM神经网络进行训练,计算隐含层到输出层的权值;

6)得到所述隐含层到输出层的权值即ELM神经网络训练完成;

7)将静态手势特征序列的数据输入ELM神经网络进行识别。

2.根据权利要求1所述的基于ELM神经网络的动态手势学习与识别方法,其特征在于:所述步骤4)中ELM神经网络模型为单隐层前馈神经网络。

3.根据权利要求2所述的基于ELM神经网络的动态手势学习与识别方法,其特征在于:所述步骤4)的具体步骤包括:

41)将所述静态手势特征序列的样本数据作为输入层;

42)初始化网络,随机生成输入层到隐含层权值矩阵W和隐含层阈值向量b,确定隐含层节点数l和激励函数g(x);

43)根据隐含层对输入样本数据的响应h(x)的定义计算隐含层响应矩阵H;

44)计算隐含层到输出层权值

45)输出所述隐含层到输出层权值

4.根据权利要求3所述的基于ELM神经网络的动态手势学习与识别方法,其特征在于:所述步骤44)中隐含层到输出层的权值 的计算方法为: 其中A为系统的期望输+出,H为隐含层响应矩阵H的广义逆矩阵。

5.根据权利要求4所述的基于ELM神经网络的动态手势学习与识别方法,其特征在于:所述隐含层节点数l为39。

说明书 :

基于ELM神经网络的动态手势学习与识别方法

技术领域

[0001] 本发明涉及人机交互技术领域,具体地指一种基于ELM神经网络的动态手势学习与识别方法。

背景技术

[0002] 手势作为一种简单直接的人机交互方式,其交互应用已涉及远程控制、家庭护理、体感游戏、智能家居以及日常教学等领域,俨然已成为人机交互领域的重要研究对象。基于计算机视觉的手势交互,作为辅助人类与机器进行自然、非接触交流的主要方式,其识别技术的飞速发展是实现人机交互领域繁荣发展的关键所在。目前而言,基于手势的人机交互技术还不能完全满足人们的需求,人机交互应用市场迫切需求更好的技术来改善现有的交互模式,因此研究基于视觉的手势识别方法具有十分重要的意义。
[0003] 手势识别方法研究的内涵是模式识别,其外延是人工智能。手势识别系统的两个关键组成部分是特征提取和模式分类,模式分类器的性能直接影响整个识别系统的性能。换言之,手势识别算法的优劣直接决定着最后的分类识别效果。根据算法特点,手势识别方法研究可以分为模板匹配法和状态空间法。模板匹配法指的是将提取的手势特征与参考模板特征逐一比较,根据给定的相似度算法对手势进行分类匹配,主要有动态时间规整算法和光流法。状态空间法的原理与模板匹配不同,它将每个静止的手势作为空间中的一个节点,运动的手势序列则可以表示为不同节点间的一次遍历,主要有隐马尔科夫模型、动态贝叶斯网络、神经网络等。
[0004] 目前,通常采用BP神经网络的算法进行手势识别,基于BP (Back-Propagation)神经网络的手势识别算法存在的缺陷,因为在一定范围内,BP算法的手势识别率随着隐含层节点个数的增加而变高,然后在达到某值后逐渐稳定。然而,当隐含层节点数过多时,随着节点数的增加,手势识别率反而会有所下降。而且BP算法需要对很多参数进行设置,每层权值、阈值、隐含层节点数、学习率等这些参数发生变化均会影响网络的性能,并且BP算法容易陷入局部最优解,导致网络泛化能力较差。

发明内容

[0005] 针对上述现有技术的缺陷,本发明所提出的一种基于ELM神经网络的动态手势学习与识别方法,解决了现有方法对于动态手势的学习速度慢、识别率低的问题。
[0006] 为实现上述目的,本发明所设计的一种基于ELM神经网络的动态手势学习与识别方法,包括如下步骤:
[0007] 1)采集人体上肢的结构向量;
[0008] 2)将所述结构向量计算手势夹角信息;
[0009] 3)将所述手势夹角信息描述为静态手势特征序列;
[0010] 4)将所述静态手势特征序列作为输入层建立ELM神经网络;
[0011] 5)输入所述静态手势特征序列的样本数据对所述ELM神经网络进行训练,计算隐含层到输出层的权值;
[0012] 6)得到所述隐含层到输出层的权值即ELM神经网络训练完成;
[0013] 7)将静态手势特征序列的数据输入ELM神经网络进行识别。
[0014] 优选地,所述步骤1)中人体上肢的结构向量包括肩膀中心到左肩的向量 左肩到左手肘的向量 左手肘到左手腕的向量 左手腕到左手的向量 肩膀中心到右肩的向量 右肩到右手肘的向量 右手肘到右手腕的向量 右手腕到右手的向量
[0015] 优选地,所述步骤2)中所述结构向量计算手势夹角信息包括肩膀中心到左肩的向量 与左肩到左手肘的向量 之间的夹角β1、左肩到左手肘的向量 与左手肘到左手腕的向量 之间的夹角β2、左手肘到左手腕的向量 与左手腕到左手的向量 之间的夹角β3、肩膀中心到右肩的向量 与右肩到右手肘的向量 之间的夹角β4、右肩到右手肘的向量 与右手肘到右手腕的向量 之间的夹角β5、右手肘到右手腕的向量 与右手腕到右手的向量之间的夹角β6。
[0016] 优选地,所述步骤4)中ELM神经网络模型为单隐层前馈神经网络。
[0017] 优选地,所述步骤4)的具体步骤包括:
[0018] 41)将所述静态手势特征序列的样本数据作为输入层;
[0019] 42)初始化网络,随机生成输入层到隐含层权值矩阵W和隐含层阈值向量b,确定隐含层节点数l和激励函数g(x);
[0020] 43)根据隐含层对输入样本数据的响应h(x)的定义计算隐含层响应矩阵H;
[0021] 44)计算隐含层到输出层权值
[0022] 45)输出所述隐含层到输出层权值
[0023] 优选地,所述步骤44)中隐含层到输出层的权值 的计算方法为: 其中A为系统的期望输出,H+为隐含层响应矩阵H的广义逆矩阵。
[0024] 优选地,所述肩膀中心到右肩的向量 与右肩到右手肘的向量 之间的夹角β4、右肩到右手肘的向量 与右手肘到右手腕的向量 之间的夹角β5、右手肘到右手腕的向量与右手腕到右手的向量 之间的夹角β6由肩膀中心到左肩的向量 与左肩到左手肘的向量之间的夹角β1、左肩到左手肘的向量 与左手肘到左手腕的向量 之间的夹角β2、左手肘到左手腕的向量 与左手腕到左手的向量 之间的夹角β3依据人体对称结构得到,上述六个夹角的取值范围均为[0,π]。
[0025] 最佳地,所述隐含层节点数l为39。
[0026] 本发明采用基于前馈型网络的学习方法--极限学习机 (ELM,Extreme Learning Machine),并将其用于人机互动的手势识别。实验结果表明,相对于BP神经网络,ELM算法具有更快的学习速度和更好的识别效果。本发明可操作性更强,网络的泛化能力更好,手势的成功识别率更高。

附图说明

[0027] 图1为本发明中手势结构向量的示意图。
[0028] 图2为本发明中手势结构向量夹角的示意图。
[0029] 图3为本发明中手势序列描述向量构造的流程图。
[0030] 图4为本发明中ELM神经网络数学模型的示意图。
[0031] 图5为本发明中ELM算法的流程图。
[0032] 图6为本发明中手势识别的流程图。
[0033] 图7为隐含层节点数与BP算法手势识别率的关系示意图。
[0034] 图8为隐含层节点数与ELM算法手势识别率的关系示意图。
[0035] 图9为ELM算法和BP算法对比图。

具体实施方式

[0036] 为了更清楚本发明的方案及实现效果,以下结合附图和具体实施例对本发明作进一步地详细描述。
[0037] 本发明所提供的一种基于ELM神经网络的动态手势学习与识别方法,包括如下步骤:
[0038] 1)采集人体上肢的结构向量。
[0039] 首先从关节点的选取和关节向量间的角度两方面来构造静态手势描述向量。选择与手势变化密切相关的9个关节点描述手势的特征,分别为左手、左手腕、左手肘、左肩、肩膀中心、右手、右手腕、右手肘、右肩。
[0040] 针对骨骼模型中人体的结构特点构造手势结构向量是描述手部角度信息的基础。根据人体骨骼模型的上肢部分共构造8组结构向量,结构向量构造方法如图1所示。向量分别表示左手臂上的关节点组成的向量,分别代表肩膀中心到左肩、左肩到左手肘、左手肘到左手腕、左手腕到左手的结构向量。相应地,右手臂上的关节点组成的4组结构向量包括肩膀中心到右肩的向量 右肩到右手肘的向量 右手肘到右手腕的向量 右手腕到右手的向量 其具体对应位置见图1。
[0041] 2)将结构向量计算手势夹角信息。
[0042] 选取相邻结构向量间的夹角表示关节点角度信息,利用各夹角的值构造静态手势描述向量,进而表示静态手势特征。本发明共选取6 个角度信息构造静态手势描述向量,图2展示了人体左臂上不同结构向量间的夹角信息。
[0043] 结合图1和图2可以看出,β1表示肩膀中心到左肩的向量 与左肩到左手肘的向量之间的夹角,其值反应左肩节点的角度变化信息。夹角β2表示左肩到左手肘的向量 与左手肘到左手腕的向量 之间的夹角、β3表示左手肘到左手腕的向量 与左手腕到左手的向量 之间的夹角,其值分别反应节点左手肘、左手腕处的角度变化信息。图2中标出了左臂结构向量间的3个夹角信息,右臂结构向量的3个夹角信息可依据人体对称结构得到,分别为:肩膀中心到右肩的向量 与右肩到右手肘的向量 之间的夹角β4、右肩到右手肘的向量与右手肘到右手腕的向量 之间的夹角β5、右手肘到右手腕的向量 与右手腕到右手的向量 之间的夹角β6。这6个夹角的取值范围均为[0,π]。
[0044] 3)将手势夹角信息描述为静态手势特征序列。手势序列描述向量构造的流程如图3所示。
[0045] G表示静态手势描述向量,则有G=(β1,β2,β3,β4,β5,β6)也就是说,由 6个角度值组成的静态手势描述向量就可以表示静态手势特征。
[0046] 一个手势序列是由若干帧静态手势组成,GS表示一个有N帧数据的手势序列,对于手势序列GS有
[0047] GS=(G1,G2,···,GN)
[0048] 其中Gi表示第i帧数据对应的静态手势描述向量,且1≤i≤N。也就是说一个包含N帧数据的手势序列可以用N个静态手势描述向量来表示动态手势特征。
[0049] 4)将静态手势特征序列作为输入层建立ELM神经网络。
[0050] 本发明提出的极限学习机(ELM,Extreme Learning Machine)算法是基于单隐层前馈神经网络(SLFNs,Single-hidden Layer Feedforward Networks)的学习算法,属于快速机器学习方法的范畴,如图4和图5所示。在前馈型神经网络中,常用的学习方法是反向传播,即BP算法。但BP算法需要设置各种参数,且算法易收敛到局部最小解。其次,隐含层和输出层的初始权值以及阈值的确定均对网络的稳定性和泛化能力有所影响,从而影响最后的识别效果。然而采用 ELM算法只需要对隐含层神经元数目进行设置,无须对权值和阈值进行修正,从而缩短了训练时间。另外,通过ELM算法得到的解是全局最优解,解决了BP神经网络求解过程中易陷入局部最优解的难题。
[0051] 极限学习机的学习步骤如下:
[0052]
[0053] 5)输入静态手势特征序列的样本数据对所述ELM神经网络进行训练,计算隐含层到输出层的权值。输入训练样本集根据夹角组成手势序列G=(β1,β2,β3,β4,β5,β6)得到多组手势序列组成样本集Gs。由8个手势向量计算出6个手势向量夹角,每6个手势向量夹角组成一个G,多组G组成样本Gs。将Gs输入进极限学习机进行运算,最终可以运算出隐含层到输出层的权值
[0054] 6)得到隐含层到输出层的权值即ELM神经网络训练完成。训练极限学习机神经网络的训练过程为求解出隐含层到输出层的权值 的过程,求解出权值 即训练完成。
[0055] 假设样本量为N[N即手势序列GS=(G1,G2,···,GN)],输入层节点数为n[即输入层节点个数],输入向量为xi=(xi1,xi2,···,xin)T[从输入层每个节点输入的值这里输入Gs里面的各部分手势序列],1≤i≤N,i、N均为自然数;隐含层激励函数为g(x),神经元节点数为l[隐含层的节点个数],阈值为bj[每个数据到隐含层后会有一个误差值,由系统随机生成], 1≤j≤l,j、l均为自然数;输出层激励函数为f(x),一般情况下激励函数设置为f(x)=x,输出层节点数为m[输出层的节点个数],节点阈值为bos[每个数据到输出层之后的误差值,系统随机生成],1≤s≤m,s、 m均为自然数;输出向量为yi=(yi1,yi2,···,yim)[实际输出结果],期望输出向量为ai=(ai1,ai2,...,aim)[理想输出结果],1≤i≤N;输入层与隐含层间的权值矩阵为W=(w1,w2,···wj,···wl)[由极限学习机神经网络随机生成],wj为n维列向量,表示输入层所有节点到隐含层第j个节点的权值;隐含层与输出层间的权值矩阵为β=(β1,β2,···βs,···βm)[β为极限学习机训练阶段所求值,求出β即完成训练],βs为l维列向量,表示隐含层所有节点到输出层第s个节点的权值。那么对于只含一层隐含层的ELM神经网络来说,第i个样本的输出为:
[0056] yi=f[g(WTxi+b)Tβ+bo]=g(WTxi+b)Tβ+bo
[0057] =[g(w1xi+b1)g(w2xi+b2)···g(wlxi+bl)]β+bo
[0058] 其中阈值序列b=(b1,b2,···,bj,···,bl)T,节点阈值序列 bo=(bo1,bo2,···,bos,···,bom),隐含层对输入样本向量的响应表示为 h(xi)=[g(w1xi+b1)g(w2xi+b2)···g(wlxi+bl)],那么有输出
[0059] yi=h(xi)β+bo
[0060] 对于N个样本的网络,若记隐含层响应矩阵H=[h(x1)h(x2)···h(xN)]T, BoT=(bo,···,bo)1×N,则系统输出可表示为 Y=Hβ+Bo
[0061] 若用A=(a1,a2,···,aN)T表示系统的期望输出,则系统的误差函数可表示为 E=||A-Y||=||A-(Hβ+Bo)||
[0062] 对于一个输入层、输出层、隐含层节点数分别为n,m,l的前馈型神经网络,若激励函数g(x):R→R满足在任意区间上无限可微,那么对于随机生成的权值向量wi和阈值bj,都有隐含层响应矩阵H可逆,则有误差函数||A-Hβ||=0。
[0063] 根据上面的定理,只要满足激励函数g(x)在R→R的任意区间上无限可微,权值wi和阈值bj均可指定,因此网络进行训练时无需对这两个参数进行调整。由于||A-Hβ||=0,因此输出层阈值bos也无需调整,最后整个网络就只需确定输出层权值矩阵β。
[0064] 在理想的情况下,前馈型神经网络的N个输出向量yi等于相应的期望输出向量ai,即存在A=Hβ也就是说,若能求出式中的矩阵β,就能够构造一个输出误差为零的神经网络,此时误差函数E为零矩阵,输出层权值矩阵为β=H-1A。只要隐含层节点数满足l=N,那么误差函数E就为零矩阵,此时一定存在N×N阶可逆矩阵H。
[0065] 然而在一般情况下,隐含层神经元个数小于神经网络的输入样本数,即有l<N,此时隐含层响应矩阵H不是方阵,不能求其一般意义上的逆矩阵H-1,因此我们转而求使系统误差函数E最小的解。设 为误差函数E取最小值的解,则有
[0066]
[0067] 若 满足上式,并且使得||β||最小,即满足min||β||,那么 就是上式的最小范数最小二乘解,且有
[0068]
[0069] 由上式可以计算出极小范数最小二乘解 这个 就是隐含层到输出层的权值求出权值 后,极限学习机训练完成,就可以进行手势识别。
[0070] 7)将静态手势特征序列的数据输入ELM神经网络进行识别。
[0071] 期望输出A=(a1,a2,···,aN)T的值根据实际情况选取,即用矩阵将静态手势特征序列的样本数据分类。选取后,输入大量样本数据进去ELM 中训练,训练完毕后,输入任意手势特征序列数据进入可以求得输出值。将输出值与预先制定的期望输出标准A值对比可以判断出所代表的含义。输出值在预先制定的A值标准中找不到则识别失败。
[0072] 试验及结果分析
[0073] 本发明选取810个向量样本分为两组,一组为训练向量样本,另一组为测试向量样本,每组样本量为405,包含各类手势45个,并对其类别进行标记,而且确定了实验数据。基于神经网络的手势识别实验都是先对多个样本进行学习训练,然后再对测试样本进行分类识别,也就是说基于BP算法或ELM算法的手势识别流程是相同的,其手势识别流程如图6所示。
[0074] (1)BP算法实验设计
[0075] 本发明采用标准三层结构的BP算法在手势数据上进行实验。三层BP网络有许多参数需要确定,其中输入层节点数i'和输出层节点数o'可分别由输入向量样本的维度和样本总类别数来确定,即i'=360 且o'=9。BP网络的权值和阈值使用[-1,1]间的随机值来进行初始化,最小均方误差和迭代次数上限分别设为0.001和1000。由此,确定了部分训练参数的值,然而另外两个重要参数无法直接确定,即隐含层节点数l'和学习步长η'。目前没有好的理论可以帮助我们直接确定隐含层节点数和学习步长,但是我们可以根据经验公式先确定隐含层节点数l'的取值范围,其计算公式如下: 其中,i',l',o'分别表示BP算法输入层、隐含层、输出层的节点个数, a'为常数项,取值范围为1~8。根据上式即可计算出隐含层节点数的经验取值范围为20~27。
[0076] 采用BP神经网络对样本进行训练时,未确定值的隐含层节点数l' 和学习步长η'均会影响最后的手势识别效果。欲获得BP算法的最佳识别率,需先分析手势识别结果随隐含层节点数和学习步长的变化规律。为使实验结果更加合理,需先确定其中一个参数的值,研究BP 算法的手势识别结果随另一个参数的变化规律。上文根据经验公式已经确定了隐含层节点数的取值范围,因此先设置学习步长为一个定值,研究隐含层节点数对BP算法手势识别结果的影响。设置学习步长为η'=0.2,隐含层节点数l'分别设置为经验值范围内的数,即可得到 405个手势测试样本的8组实验结果。下表展示了8组实验的隐含层节点数、迭代次数以及手势识别结果。
[0077] 表1隐含层节点数对BP算法的影响
[0078]
[0079] 根据表1中给出的值,我们可以研究BP算法手势识别率随隐含层节点数的变化规律。图7给出了BP算法隐含层节点数与手势识别率之间的关系。由图7可以看出,当隐含层节点数在经验值范围内取值时,手势识别率随节点数的增加而增加,并且在隐含层节点数达到某一值时,手势识别率会有所降低。这是因为增大隐含层节点数会使得迭代次数增加,从而使得神经网络过度拟合,导致手势识别率有所降低。因此,选择合适的隐含层节点数对于BP神经网络模型至关重要。
[0080] 由表1可知,隐含层节点数为l'=25时,BP算法的手势识别率最高,此时经436次迭代后BP算法的均方误差达到预设的最小值,网络训练结束。因此,设定隐含层节点数l'为25,学习步长η'分别选择不同的值,研究其对BP算法手势识别结果的影响。有文献指出,对于标准BP神经网络,学习步长η'的初始值取值范围为[0.1,0.7][60]。设置隐含层节点数l'=25,学习步长η'取该范围内不同值时的手势识别结果如表2所示。
[0081] 表2学习步长η'对BP算法的影响
[0082]
[0083] 由表2可以看出,当学习步长η'=0.45时,BP算法的手势识别率最高,因此选取学习步长η'=0.45为最佳值。由此,BP算法取得最佳识别率时的所有参数得到确定。也就是说,当隐含层节点数为l'=25,学习步长为η'=0.45时,BP算法的手势识别效果达到最佳。
[0084] (2)ELM算法实验设计
[0085] 在选用ELM算法对405个手势测试样本进行分类识别时,ELM 算法输入层节点数为手势描述向量的维数360,输出层节点数为手势样本类数9,激励函数取“S”型函数。由于ELM算法中无须确定权值和阈值,因此在ELM神经网络中输入手势样本向量后,仅需要确认隐含层节点的个数就可对手势样本进行训练和识别。在手势识别过程中,ELM算法的隐含层节点数的取值没有经验公式可供借鉴,因此隐含层节点数依次取1~50间的数,研究ELM算法的手势识别结果与隐含层节点数之间的关系。根据图8中的手势识别结果,可以研究ELM 算法手势识别率与隐含层节点数的关系。由图8可知,当隐含层节点数为[1,39]内的数值时,随着隐含层节点数的增加,ELM算法的手势识别率在波动中不断提高,直至隐含层节点数增至39时,手势识别率达到最高。当隐含层节点数大于39时,随着隐含层节点数的增加,手势识别率会有所下降。因此,ELM算法取得最佳手势识别率84.2%时,隐含层节点数为39。
[0086] 根据设计的两组实验,本发明研究了BP算法和ELM算法的手势识别结果随各自参数的变化规律,并确定了两个算法达到最高识别率时的参数。在ELM算法中,由于输入层到隐含层的权值矩阵和隐含层节点的阈值是随机产生的,因此,最后的手势识别结果会有所波动。为使实验结果更加合理,采用ELM算法识别手势时,设定隐含层节点数后,重复实验20次,取20次实验结果的平均值作为ELM算法的手势识别结果。与此同时,记录每次实验的训练时长,取20次实验的平均时长作为ELM算法的训练时长。由实验可得,隐含层节点数为39时,ELM算法的平均手势识别率为83.3%,平均训练时长为 0.03秒。由BP算法实验可知,当隐含层节点数为l=25,学习步长为η=0.45时,BP算法的手势识别率达到最高且为75.1%,此时训练时长为10.8秒。
[0087] 表3给出了BP算法和ELM算法的最佳识别结果对比。由表3可以看出,ELM算法的手势识别效果和训练时长均优于BP算法。两种算法的手势识别结果与训练时长对比如图9所示。
[0088] 表3 BP算法和ELM算法最佳识别结果对比
[0089]
[0090] 根据上面的实验结果,可以得出下面的结论:
[0091] (1)由图7可以看出,在一定范围内,BP算法的手势识别率随着隐含层节点个数的增加而变高,然后在达到某值后逐渐稳定。然而,当隐含层节点数过多时,随着节点数的增加,手势识别率反而会有所下降。这是因为隐含层节点数过多会导致过度训练的问题,从而使得识别率下降。从表1中可以看出,增加隐含层节点数容易让网络的迭代次数增多。因此,隐含层神经元节点数的确定对BP网络模型至关重要。
[0092] (2)由图8可以看出,ELM算法的手势识别率在某个范围内随着隐含层节点数增多而提高。当隐含层节点数达到某个值时,随着隐含层节点数的增加,手势识别率会有所下降。因此,隐含层节点数是影响ELM算法手势识别效果的重要因素,隐含层神经元节点数的确定是ELM算法手势识别的关键点。
[0093] (3)比较图9中BP算法与ELM算法的实验结果,可以看出ELM 算法的手势识别效果优于BP神经网络算法,并且ELM算法的训练时长明显短于BP算法。这是因为ELM算法寻找的是全局最优解,并且无须对很多参数进行设置,只需要确定隐含层节点数就能对输入样本进行训练,缩短了网络训练时间。而BP算法需要对很多参数进行设置,每层权值、阈值、隐含层节点数、学习率等这些参数发生变化均会影响网络的性能,并且BP算法容易陷入局部最优解,导致网络泛化能力较差。对比可知,相对于BP神经网络,ELM算法的可操作性更强,网络的泛化能力更好,手势的成功识别率更高。
[0094] 本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。