已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
模式识别课程学习报告2011秋季学期姓 名: 学 号: 专 业: 2011年11月基于BP神经网络的鼠标手势识别摘要:鼠标手势是指用鼠标做出一些动作以控制软件完成某些操作。由于其方便快捷的特点,鼠标手势已经被越来越多的软件采用。本文介绍了一种基于BP神经网络的鼠标手势识别方法。文中首先将常用鼠标手势进行抽象,建立其基本模式单元,然后引入BP神经网络基本方法,建立了抽象模单元与鼠标手势的对应关系,最终完成了常用鼠标手势的软件识别。文章最后给出了基于matlab的仿真实例,分析方案实现效果及不足,并提出了相应的改进方案。关键词:BP神经网络 鼠标手势 matlab一.引言鼠标手势(Mouse Gestures)最早从Opera浏览器借鉴而来,简单地说,就是用鼠标做出一些动作以控制软件完成某些操作,就好比人们见面时打的手势一样。目前主要在浏览器软件中得到比较广泛的应用,一般是按住鼠标右键,并在网页的空白处划出某种特定的轨迹,然后即可实现预先定制的前进、后退、刷新、关闭窗口等常用操作。需要说明的是,一方面由于鼠标移动轨迹设计精度的限制,另一方面由于计算机对鼠标轨迹识别的准确度还有待提高,因此现在的鼠标手势还比较简单。不过,如果使用得当,你将会发现使用鼠标手势比键盘上的快捷键甚至还要来得方便。鼠标手势识别可以看作是字符识别,字符识别一般通过基于字符结构的识别法及模板匹配法来进行处理,前者一般更适用于字母和数字的识别;后者程序实现起来比较容易,但识别精度不高。为了提高识别率,就必须寻求新的方法和途径。近年来,BP神经网络技术取得了巨大发展,它是一种前馈型神经网络,具有分布式存储信息、并行处理信息、自组织、自学习信息等优点。本文通过对BP神经网络的学习,利用有效的BP算法完成了鼠标手势识别系统。二. BP神经网络模型概述人工神经网络是一种模拟人体大脑神经系统结构和功能,由大量简单人工神经元广泛连接构成的人工网络。1943年,美国生理学家WcCulloch和数学家W.Pitts总结生物神经网络的特性,继而提出了最早的神经元模型MP模型,建立了人工神经网络的理论研究。1986年生理物理学家Rumelhart、Willianms等提出了反向传播算法,形成了BP神经网络。由于网络结构的简单性与稳定性,在实际应用中一般都采用BP神经网络(Back-propagation Network,简称BP网络)。BP网络模型的多层感知器是应用最广泛的神经网络,在多层感知器的应用中,以单隐层网络的应用最为普遍。因此我们选择最常用的三层前馈BP神经网络。图1为3层BP神经网络示意图,它实现维向量Xn=x1,x2,xnT,到维向量Ym=y1,y2,ynT,的非线性映射。网络参数包括输入层到隐层的权重、隐层到输出层的权重、为隐含层第j个神经元的阈值、是输出层第k个神经元的阈值。网络训练前随机生成权重和阈值的初值。假设训练样本集S有P个训练样本: 是n维向量,是m维向量。S对应的目标模式集为: 输入训练样本,信息首先向前传播到隐含单元,经激活函数作用得到隐含层的输出信息: 激活函数f(u)一般采用S型: 输入输出XnYn信息(误差)传播方向图1 BP网络示意图隐含层信息传到输出层得到最终输出结果: 三. BP神经网络的鼠标手势识别过程BP神经网络鼠标手势识别过程由手势模式预处理和鼠标手势识别组成。鼠标手势预处理对手势图像进行一系列的变换后把最后提取到的样本的特征向量送到数字识别系统中 ,然后进行识别并给出结果。BP神经网络的鼠标手势识别过程如图 2所示。图3 常用鼠标手势字符输入输出XnYn信息(误差)传播方向图1 BP网络示意图训练样本读入预处理特征提取BP神经网络的训练期望输出(教师信号)(a)BP神经网络训练过程待识别样本预处理特征提取BP神经网络识别识别结果输出(b)BP神经网络识别过程图2 BP神经网络识别系统鼠标手势已经涵盖了多数英文字母和数字,其中常用的英文字符如下:图4 鼠标手势0到9的数字本文中没有考虑以上的全部字符,所考虑的待识别鼠标手势为0到9 的数字图4 鼠标手势中的抽象数字图形,如图4。.3.1 图像的预处理图像预处理是图像问的变换处理,是图像分析的前期准备,目的是使图像中描述客体特征的图像更加简练、独特性更强、信息少而唯一。本文对手写数字图像样本进行了灰度化处理、二值化处理、去离散噪声、归一化调整等预处理。其中二值化处理利用graythresh函数得到图像的全局阈值,然后使用im2bw将灰度图像转换为二值图像。程序代码为:Threshold = graythresh(fig_gray);Fig_ bool = im2bw(fig_gray,threshold);其中fig_gray和fig_boo1分别为灰度图像的存储矩阵和二值化图像的存储矩阵。归一化处理将图片归一化为2036像素点阵图。3.2 特征提取在模式识别中,特征的选择是一个关键问题。将经过预处理后的数字图像中提取最能体现这个字符特点的特征向量,然后提取出训练样本中的特征向量代入BP网络之中就可以对网络进行训练,提取出待识别的样本中的特征向量代入训练好的BP网络中,就可以对字符进行识别。本文采用逐像素特征提取方法提取数字样本的特征向量。归一化后的图像形成一个3620的布尔矩阵,依次取每列的元素转化为7201的列矩阵,即数字字符的特征向量。用matlab命令实现为:characteristic_vecotr=fig_bool_normalized(:);其中fig_bool_normalized为归一化后的图像的存储矩阵。2.3 BP神经网络结构2.3.1 输入层神经元个数的确定将数字图像的特征向量作为神经网络的输入,所以神经网络的输入层神经元个数等于特征向量的维数,即2036=720个输入神经元。2.3.2 输出层神经元个数的确定因为要识别10个数字,因此输出选择为101的矩阵,即输出节点数为l0。当数字图像09输入神经网络后在输出神经元对应的位置上为1,其他的位置为0。输人数字0,第1个输出神经元为1,其他为0;输入数字1,第2个输出神经元为1,其他为0;以此类推。3.3.2 网络隐含层数的确定隐含层数越多,神经网络学习速度就越慢,根据Kosmogorov定理,在合理的结构和恰当的权值条件下,3层BP网络可以逼近任意的连续函数,因此,我们选取结构相对简单的3层BP网络。3.3.3 隐含层神经元个数的确定一般情况下,隐含层神经元个数是根据网络收敛性能的好坏来确定的,在总结大量网络结构的基础上,得出经验公式:s=sqr(0.43nm+0.12m +2.54n+0.77m+0.35+0.51)其中n为输人层神经元个数,m为输出层神经元个数,根据以上公式,可以得出隐含层神经元个数为70。3.3.4 BP神经网络构造建立一个前向BP神经网络函数newff: net=newff(minmax(P),720,70,10,logsig,(logsig,logsig,traincgb);其中minmax(P)为神经网络的对它的720个输入元素的最大值和最小值的限制。P为训练样本集合。720,70,10为该神经网络的层结构。logsig,logsig,logsig为神经网络的各层的转移函数,均设置为对数S型激活函数。训练函数采用 traincgb ,即采用Powel1-Beale共轭梯度法训练。3.4 BP神经网络的训练3.4.1 训练样本集合和目标值集合数字字符归一化后的图像为3620的布尔矩阵,用此3620=720个元素组成一个数字字符的列矩阵,即数字字符的特征向量。由09这10个数字的特征列向量组成一个72010的输入矢量,记为:sample_group=0,1,2, ,9 ;式中的0,1, ,9代表数字的特征列向量。与输入矢量对应的目标矢量是希望每一个数字输入神经网络后在输出神经元对应的位置上为1,其他的位置为0。为此取目标矢量为对角线上为1的1010的单位阵,用matlab命令实现为:targets=eye(10);本文中09共l0类数据,每类取20个做训练样本,即20组输入矢量构成训练样本集合训练神经网络,训练样本集合如下:P=samples_groupl,samples_group2, ,group20;P=double(P);转化为双精度类型因为数字字符的特征向量由布尔元素组成,所以训练样本集合为布尔类型,而神经网络不能够对布尔值进行训练,所以需要将训练样本集合转化为双精度类型。 与训练样本集合相对应的目标值集合由20组目标矢量构成,目标值集合如下:T=targets,targets, ,targets,targets3.4.2 网络训练本文神经网络训练采用的目标性能函数为SSE,误差性能目标值设置为0.01,当神经网络训练次数达到最大值1 000或者神经网络的误差平方和SSE降到0.01以下,终止训练。程序代码如下 :net.trainParam.epochs=1000;最大训练次数net.trainParam.show=20;显示的间隔次数net.trainParam.min_grad=le-10;最小执行梯度net.peformFcn:sse;设置目标性能函数net.trainParam.goal=0.01;性能目标值net.1ayers1.initFcn=initwb; 网络层的初始化函数选为initwb,使下面的输入层初始化语句randnr有效net.inputWeights1,1.initFcn=randnr;输入层权值向量初始化net.1ayerWeights2,1.initFcn=randnr;第1网络层到第2网络层的权值向量初始化图5 神经网络学习误差曲线net=init(net); 初始化网络net,tr=train(net,P,T); 网络训练其中net,tr中的net为更新了权值的神经网络,tr为训练记录(次数和每次训练的误差)。从相关的神经网络训练中可以看出,当神经网络的误差平方和SSE为0.008 8时,小于性能目标值0.01,神经网络训练结束,开始进行系统的性能测试。图5为学习误差曲线图。3.5 BP 神经网络的测试测试函数为神经网络仿真函数sire:testout=sim(net,test_sample)其中net为训练完成了的网络,test_sample为测试样本的特征向量,testout为神经网络的输出。部分程序代码如下:Test_sample:double(test_sample);布尔类型转化为双精度类型testout=sim(net,test_sample);神经网络的仿真max_value=max(testout);输出神经元最大值if(max_value0.7) 输出神经元的最大值大于0.7才进行数字识别,小于0.7时拒绝识别testout=compet(testout);number=find(testout= =1)-1;数字识别结果end四.鼠标手写数字的识别结果本文中09共10类数据中每类取20个做测试样本,共200个测试样本对系统进行性能测试。测试结果如表1所示。由表1中的数据可知,数字识别的正确率为99.48 ,正确率较高,拒识率为4,也比较高。总体数字识别有效率为95.5 。数字识别的正确率和拒识率与是否进行数字识别的判断值有关,本文的判断值设置为0.7。判断值选择的高,数字识别的正确率就高,但数字的拒识率也相应的就高。反之亦然。判断值的选择需要根据实际情况来定。表1 识别结果数字样本个数辨识个数错误识别正确率拒绝辨识拒识率有效率020190100%15%95%120190100%15%95%220200100%000320170100%315%85%420190100%15%95%520190100%15%95%620200100%000720200100%00082019194.7%15%95%920200100%000总计2001921100%84%95.5%五.结束语本文基于BP神经网络的方法对鼠标手势中的数字进行了识别,给出了理论上的探讨,并在MATLAB环境下进行了相关的仿真研究,表明了该方法的可行性,具备一定得可用价值。当然其中也存在不足之处,需要对此展开进一步的学习研究。本文中的识别方法将鼠标手势当做静态字符来对待,实际上可以通过鼠标手势的书写顺序增强识别的准确程度。实际中的鼠标手势还可以应用到很多其他方面,例如触屏设备的广泛应用,可以将鼠标手势与实际触摸设备结合,增强设备操作的灵活性。六. 参考文献1苏统华.脱机中文手写识别从孤立汉字到真实文本.哈尔滨工业大学博士学位论文.20082赵继印,郑蕊蕊,吴宝春,李敏.脱机手写体汉字识别综述.电子学报,2010,38(2):405-4153邵洁,成瑜.关于手写汉字切分方法的思考.计算机技术与发展,2006,16(6):184-1904付强,丁晓青,刘长松.用于手写汉字识别的级联MQDF分类器.清华大学学报(自然科学版),2008,48(10):1605-16085张芳,汪成军.基于支持向量机的手写汉字的识别.计算机与数学工程,2006,34(1):65-686Da Lu,Qiwei Chen,Wei Pu,et al.Study on preclassification for handwritten Chinese character based on neural net and fuzzy matching algorithm.2007 IEEE International Conference on R
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年避坑指南林业采伐安全培训内容
- 2026年潜水作业安全培训内容一次通关
- 2026年医院多媒体设备采购合同协议
- 2026年安全月安全培训教育内容核心要点
- 焦作市马村区2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 钦州市钦南区2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 石家庄市赵县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 齐齐哈尔市甘南县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 抚顺市清原满族自治县2025-2026学年第二学期六年级语文第四单元测试卷(部编版含答案)
- 抚顺市露天区2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 西藏政治-历史-文化常识
- 浙江空调管理办法
- 小学动感中队活动方案
- 猪群周转培训课件
- 肺癌营养支持治疗
- 施工协调费协议书
- 皮肤生理学试题及答案
- 汽修厂应急预案
- 公司绩效考核方案制度范本
- 《资治通鉴》与为将之道知到课后答案智慧树章节测试答案2025年春武警指挥学院
- 银行客户满意度调查手册
评论
0/150
提交评论