MATLAB基于BP神经网络的手势识别

MATLAB基于BP神经网络的手势识别

摘 要:给出了采用MATLAB来识别五个手指和手背的同心圆距离,并通过颜色肤色的方法来提取手势特征量,同时利用BP神经网络算法进行误差分析来实现手势识别的设计方法。最后,通过Matlab验证,结果表明,该系统在测试中识别率较高,系统稳定。

关键字:MATLAB;BP神经网络;手势识别;

0 引 言

随着科技的发展和进步,计算机已经渐渐适应人的需求。人类在利用计算机解决问题时,并没有将主观能动性和计算机的高效性有机地结合起来。研究新型的人机交互工具能够打破这一障碍。当虚拟现实越来越被人熟知时,可以使用手势作为载体进行人机交互。目前,手势输入的种类有基于图像的和基于加速度传感器的。由于图像的手势识别对外部环境的依赖比较大,而加速度传感器识别就不受外部条件的限制,甚至可以依靠单手完成操作,因此,基于加速度传感器的方法能有效地识别手势动作,完成人机交互。本文采用MATLAB识别五个手指和手背上的加速度信息,实现手势的输入。

1 手势识别方法

手势的执行是一个动态的过程,主要表现在手指弯曲引起的手的形状和手在空间的位置和方位的变化,需要从时间和空间两方面来描述。根据手势的时变特征,可将手势分为静态手势和动态手势[2]。从测量的角度看,静态手势可用某一时刻手的空间特征的测量值来表示,而动态手势是指需要使用随时间变化的空间特征来描述的手势。静态手势可以用各个关节测得的特征值来表示,而动态手势需用一段时间内手的空间特征的一组测量序列值来表示[3]。人的手有多个自由度,运动十分灵活、复杂,而且不同的人,手的大小不同。因此,同样的手势,不同的人作出时手的运动会存在差别;同一个人在不同的时间、地点作出手势也不一样[4]。所以,本文主要针对静态手势的数据手套进行分析研究。

2 手势的识别技术

目前,比较流行的手势识别技术有模板匹配法、特征提取和BP算法等。

模板匹配法:主要是将传感器输入的原始数据与预先存储的模板进行匹配,通过测量两者之间的相似度来完成识别任务[5]。由于需要大量的基础数据作为匹配对象,所以受到噪声、光照、复杂环境影响较大,并且匹配速度慢。但是,模板匹配法简单、易掌握,普及程度高。

特征提取:在特征提取过程中,输入数据中的低层特征被提取出来,经过分析而转化成包含手形语义的高层特征,然后用高层特征进行手形识别[6]。

BP算法:是一种按误差逆传播算法训练的多层前馈网络。BP网络的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。

3 BP算法

BP神经网络是一种前向传播的多层网络,网络除了输入节点以外,还有一层或多层隐含节点。其训练方法被称为误差反传播算法,它利用实际输出和期望输出之差对网络的多层连接权由后向前逐层进行校正[7]。BP网络的最大缺点是样本训练的收敛速度慢。为提高网络的收敛速度,同时防止网络的振荡发散,本次选取的BP神经网络是1个3层BP网络结构(含1个隐层),隐单元及输出单元用sigmoid 函数输出,输出共分为10类,即输出神经元个数为10。由于输入矢量为处理后的手部加速度传感器(用18×10的数字矩阵表示) ,因此第一层为240 个神经元,第二层为隐含层。根据经验,其神经元数目一般为输入矢量维数的10 %,为26 个神经元,采用改进的BP算法。 将每个样本对应的矩阵元素值输入神经网络的各个输入单元,并为每个输出单元指定期望输出,计算每个输出单元的实际输出与期望输出的误差以及隐含层误差。计算实际输出与期望输出的误差公式为:

式中,Ek为期望输出,Ok为实际输出, k=0,1,2,…,9。

将误差定义式展开到隐含层的公式为:

网络输入误差是各层权值wjk、vij ,即 :

(j=0,1,2,…,m;k=1,2,…,l)

( i=0,1,2,…,n;j=1,2,…,m)

式中的负号表示梯度下降,常数η∈(0,1)代表学习速率。

由于BP神经网络算法的收敛速度慢,优化的目标函数非常复杂,所以需要优化学习速率。三层感知器的BP学习算法权值调整计算公式为:

将每个加速度传感器中每个轴的数据特征向量作为神经网络的输入,所以神经的输入层神经元个数等于特征向量的维数,即9×18=162个输入神经元。输出层神经元个数的确定因为要识别10个数字,因此输出选择为10×1的矩阵,即输出节点数为l0。当0~9输入神经网络后在输出神经元对应的位置上为1,其他的位置为0。输入数字0,第1个输出神经元为1,其他为0;输入数字1,第2个输出神经元为1,其他为0;依此类推。

隐含层数越多,神经网络学习速度就越慢。根据Kosmogorov定理,在合理的结构和恰当的权值条件下,3层BP网络可以逼近任意的连续函数。因此,我们选取结构相对简单的3层BP网络[10]。

一般情况下,神经元个数与函数收敛程度有关。根据经验公式s=sqrt(n×m),其中,m为输入神经元个数,n为输出神经元个数,得出隐含层神经元个数为40个。

采用定义学习速率和采用带动量因子算法两种改进方法。识别内容为数字0~9,利用手势特征,提取每个加速度传感器中每个轴的数据作为BP 的数据输入参数,为BP进行初始化及参数训练,可以提高数据的识别率。在学习收敛的情况下,增大η,以缩短学习时间;当η偏大致使不能收敛时,要及时减小η,直到收敛为止[7]。将上一次权值调整量的一部分迭加到按本次误差计算所得的权值调整量上,作为本次的实际权值调整量,即:

4 实验结果分析

通过Matlab 计算所得出得神经网络学习误差曲线和数字识别结果如图1所示。

图1 神经网络学习误差曲线

本文将0~9共10类数据中的每类取20个做测试样本,共200个测试样本对系统进行性能测试。测试结果如表1所列。由表1中的数据可知,数字识别的正确率为98.5%,正确率较高,拒识率为6.5%,也比较高。总体数字识别有效率为94.5%。Kadous用Power Gloves作为手语输入设备,这样的识别率仅为80%[8-9]。

表1 测试结果列表

手势 样本

个数 识别

个数 错误

识别 正确率 拒绝

识别个数 拒绝率 有效率

手势0 20 18 0 100% 2 10% 90%

手势1 20 19 0 100% 1 5% 95%

手势2 20 17 0 100% 3 15% 85%

手势3 20 18 0 100% 2 10% 90%

手势4 20 18 0 100% 2 10% 90%

手势5 20 20 0 100% 0 0 100%

手势6 20 18 1 95% 1 5% 95%

手势7 20 19 1 95% 0 0 100%

手势8 20 18 1 95% 1 5% 95%

手势9 20 19 0 100% 1 5% 95%

总计 200 184 3 98.5% 13 6.5% 94.5%

5 结 语

实际上,数字识别的正确率和拒识率与数字识别的判断值有关,本文的判断值设置为0.7。判断值设置得高,数字识别的正确率就高,同时数字的拒识率也相应地就高,反之亦然。判断值的选择需要根据实际情况来定。

参 考 文 献

[1]孔俊其. 基于三维加速度传感器的手势识别及交互模型研究[D]. 苏州: 苏州大学, 2009.

[2] HOFMANN F G, HEYER P, HOMMEL G. Velocity profile-based recognition of dynamic gestures with discrete hidden Markov models [C]// Gesture and Sign Language in Human-Computer Interaction——International Gesture Workshop Bielefeld,Germany, September 17-19, 1997 Proceedings. [s. n.]: Springer Berlin Heidelberg, 1998: 81-95.

[3] STURMAN D J, ZELTZER D. A survey of glove based input [J]. IEEE Computer Graphics and Applications, 1994, 14(1): 30-39.

[4]焦圣品,徐大海,白英彩.手势识别的神经网络方法[J].微型电脑应用,1999(5): 27-29.

[5]JOSEPH J, LAVIOLA J. A Survey of hand posture and gesture recognition techniques and technology [D]. Providence: Brown University NSF Science and Technology Center for Computer Graphics and Scientific Visualization, 1999.

[6]傅荟璇,赵红.MATLAB 神经网络应用设计[M]. 北京:机械工业出版社,2010.

[7]韩力群.人工神经网络教程[M]. 北京:北京邮电大学出版社,2006.

[8]LIANG R H, OUHYOUNG M. A real-time continuous alphabetic sign language to speech conversion VR system[J]. Computer Graphics Forum, 1995, 14(3): 67-76.

[9] LIANG R H, OUHYOUNG M. A sign language recognition system using hidden MARKOV model and context sensitive search[C]. M Pr oc. of the ACM Symposium on Virtual Reality Software and Technology, Hong Kong: 1996, 59- 66.

[10] 沈花玉,王兆霞,高成耀,等.BP神经网络隐含层单元数的确定[J]. 天津理工大学学报,2008,24(5):13-15.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值