基于BP神经网络的鼠标手势识别.docx
- 文档编号:11339207
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:13
- 大小:300KB
基于BP神经网络的鼠标手势识别.docx
《基于BP神经网络的鼠标手势识别.docx》由会员分享,可在线阅读,更多相关《基于BP神经网络的鼠标手势识别.docx(13页珍藏版)》请在冰豆网上搜索。
基于BP神经网络的鼠标手势识别
《模式识别》课程学习报告
2011秋季学期
姓名:
学号:
专业:
2011年11月
基于BP神经网络的鼠标手势识别
摘要:
鼠标手势是指用鼠标做出一些动作以控制软件完成某些操作。
由于其方便快捷的特点,鼠标手势已经被越来越多的软件采用。
本文介绍了一种基于BP神经网络的鼠标手势识别方法。
文中首先将常用鼠标手势进行抽象,建立其基本模式单元,然后引入BP神经网络基本方法,建立了抽象模单元与鼠标手势的对应关系,最终完成了常用鼠标手势的软件识别。
文章最后给出了基于matlab的仿真实例,分析方案实现效果及不足,并提出了相应的改进方案。
关键词:
BP神经网络鼠标手势matlab
一.引言
鼠标手势(MouseGestures)最早从Opera浏览器借鉴而来,简单地说,就是用鼠标做出一些动作以控制软件完成某些操作,就好比人们见面时打的手势一样。
目前主要在浏览器软件中得到比较广泛的应用,一般是按住鼠标右键,并在网页的空白处划出某种特定的轨迹,然后即可实现预先定制的前进、后退、刷新、关闭窗口等常用操作。
需要说明的是,一方面由于鼠标移动轨迹设计精度的限制,另一方面由于计算机对鼠标轨迹识别的准确度还有待提高,因此现在的鼠标手势还比较简单。
不过,如果使用得当,你将会发现使用鼠标手势比键盘上的快捷键甚至还要来得方便。
鼠标手势识别可以看作是字符识别,字符识别一般通过基于字符结构的识别法及模板匹配法来进行处理,前者一般更适用于字母和数字的识别;后者程序实现起来比较容易,但识别精度不高。
为了提高识别率,就必须寻求新的方法和途径。
近年来,BP神经网络技术取得了巨大发展,它是一种前馈型神经网络,具有分布式存储信息、并行处理信息、自组织、自学习信息等优点。
本文通过对BP神经网络的学习,利用有效的BP算法完成了鼠标手势识别系统。
二.BP神经网络模型概述
人工神经网络是一种模拟人体大脑神经系统结构和功能,由大量简单人工神经元广泛连接构成的人工网络。
1943年,美国生理学家WcCulloch和数学家W.Pitts总结生物神经网络的特性,继而提出了最早的神经元模型—MP模型,建立了人工神经网络的理论研究。
1986年生理物理学家Rumelhart、Willianms等提出了反向传播算法,形成了BP神经网络。
由于网络结构的简单性与稳定性,在实际应用中一般都采用BP神经网络(Back-propagationNetwork,简称BP网络)。
BP网络模型的多层感知器是应用最广泛的神经网络,在多层感知器的应用中,以单隐层网络的应用最为普遍。
因此我们选择最常用的三层前馈BP神经网络。
图1为3层BP神经网络示意图,它实现n维向量Xn=[x1,x2,…xn]T,
到m维向量Ym=[y1,y2,…yn]T,
的非线性映射。
网络参数包括输入层到隐层的权重
、隐层到输出层的权重
、
为隐含层第j个神经元的阈值、
是输出层第k个神经元的阈值。
网络训练前随机生成权重和阈值的初值。
假设训练样本集S有P个训练样本:
是n维向量,
是m维向量。
S对应的目标模式集为:
输入训练样本,信息首先向前传播到隐含单元,经激活函数
作用得到隐含层的输出信息:
激活函数f(u)一般采用S型:
隐含层信息传到输出层得到最终输出结果:
三.BP神经网络的鼠标手势识别过程
BP神经网络鼠标手势识别过程由手势模式预处理和鼠标手势识别组成。
鼠标手势预处理对手势图像进行一系列的变换后把最后提取到的样本的特征向量送到数字识别系统中,然后进行识别并给出结果。
BP神经网络的鼠标手势识别过程如图2所示。
鼠标手势已经涵盖了多数英文字母和数字,其中常用的英文字符如下:
本文中没有考虑以上的全部字符,所考虑的待识别鼠标手势为0到9的数字
图形,如图4。
.
3.1图像的预处理
图像预处理是图像问的变换处理,是图像分析的前期准备,目的是使图像中描述客体特征的图像更加简练、独特性更强、信息少而唯一。
本文对手写数字图像样本进行了灰度化处理、二值化处理、去离散噪声、归一化调整等预处理。
其中二值化处理利用graythresh函数得到图像的全局阈值,然后使用im2bw将灰度图像转换为二值图像。
程序代码为:
Threshold=graythresh(fig_gray);
Fig_bool=im2bw(fig_gray,threshold);
其中fig_gray和fig_boo1分别为灰度图像的存储矩阵和二值化图像的存储矩阵。
归一化处理将图片归一化为20×36像素点阵图。
3.2特征提取
在模式识别中,特征的选择是一个关键问题。
将经过预处理后的数字图像中提取最能体现这个字符特点的特征向量,然后提取出训练样本中的特征向量代入BP网络之中就可以对网络进行训练,提取出待识别的样本中的特征向量代入训练好的BP网络中,就可以对字符进行识别。
本文采用逐像素特征提取方法提取数字样本的特征向量。
归一化后的图像形成一个36×20的布尔矩阵,依次取每列的元素转化为720×1的列矩阵,即数字字符的特征向量。
用matlab命令实现为:
characteristic_vecotr=fig_bool_normalized(:
);
其中fig_bool_normalized为归一化后的图像的存储矩阵。
2.3BP神经网络结构
2.3.1输入层神经元个数的确定
将数字图像的特征向量作为神经网络的输入,所以神经网络的输入层神经元个数等于特征向量的维数,即20×36=720个输入神经元。
2.3.2输出层神经元个数的确定因为要识别10个数字,因此输出选择为10×1的矩阵,即输出节点数为l0。
当数字图像0—9输入神经网络后在输出神经元对应的位置上为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.4BP神经网络构造
建立一个前向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.4BP神经网络的训练
3.4.1训练样本集合和目标值集合
数字字符归一化后的图像为36×20的布尔矩阵,用此36×20=720个元素组成一个数字字符的列矩阵,即数字字符的特征向量。
由0~9这10个数字的特征列向量组成一个720×10的输入矢量,记为:
sample_group=[0,1,2,⋯,9];式中的0,1,⋯,9代表数字的特征列向量。
与输入矢量对应的目标矢量是希望每一个数字输入神经网络后在输出神经元对应的位置上为1,其他的位置为0。
为此取目标矢量为对角线上为1的10×10的单位阵,用matlab命令实现为:
targets=eye(10);
本文中0—9共l0类数据,每类取20个做训练样本,即20组输入矢量构成训练样本集合训练神经网络,训练样本集合如下:
P=[samples_groupl,samples_group2,⋯,group20];P=double(P);%转化为双精度类型因为数字字符的特征向量由布尔元素组成,所以训练样本集合为布尔类型,而神经网络不能够对布尔值进行训练,所以需要将训练样本集合转化为双精度类型。
与训练样本集合相对应的目标值集合由20组目标矢量构成,目标值集合如下:
T=[targets,targets,⋯,targets,targets]
3.4.2网络训练
本文神经网络训练采用的目标性能函数为SSE,误差性能目标值设置为0.01,当神经网络训练次数达到最大值1000或者神经网络的误差平方和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.1ayers{1}.initFcn=‘initwb’;%网络层的初始化函数选为‘initwb’,使下面的输入层初始化语句randnr’有效
net.inputWeights{1,1}.initFcn=‘randnr’;%输入层权值向量初始化
net.1ayerWeights{2,1}.initFcn=‘randnr’;%第1网络层到第2网络层的权值向量初始化
net=init(net);%初始化网络
[net,tr]=train(net,P,T);%网络训练
其中[net,tr]中的net为更新了权值的神经网络,tr为训练记录(次数和每次训练的误差)。
从相关的神经网络训练中可以看出,当神经网络的误差平方和SSE为0.0088时,小于性能目标值0.01,神经网络训练结束,开始进行系统的性能测试。
图5为学习误差曲线图。
3.5BP神经网络的测试
测试函数为神经网络仿真函数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_value>0.7)%输出神经元的最大值大于0.7才进行数字识别,小于0.7时拒绝识别
testout=compet(testout);
number=find(testout==1)-1;%数字识别结果
end
四.鼠标手写数字的识别结果
本文中0—9共10类数据中每类取20个做测试样本,共200个测试样本对系统进行性能测试。
测试结果如表1所示。
由表1中的数据可知,数字识别的正确率为99.48%,正确率较高,拒识率为4%,也比较高。
总体数字识别有效率为95.5%。
数字识别的正确率和拒识率与是否进行数字识别的判断值有关,本文的判断值设置为0.7。
判断值选择的高,数字识别的正确率就高,但数字的拒识率也相应的就高。
反之亦然。
判断值的选择需要根据实际情况来定。
表1识别结果
数字
样本个数
辨识个数
错误识别
正确率
拒绝辨识
拒识率
有效率
0
20
19
0
100%
1
5%
95%
1
20
19
0
100%
1
5%
95%
2
20
20
0
100%
0
0
0
3
20
17
0
100%
3
15%
85%
4
20
19
0
100%
1
5%
95%
5
20
19
0
100%
1
5%
95%
6
20
20
0
100%
0
0
0
7
20
20
0
100%
0
0
0
8
20
19
1
94.7%
1
5%
95%
9
20
20
0
100%
0
0
0
总计
200
192
1
100%
8
4%
95.5%
五.结束语
本文基于BP神经网络的方法对鼠标手势中的数字进行了识别,给出了理论上的探讨,并在MATLAB环境下进行了相关的仿真研究,表明了该方法的可行性,具备一定得可用价值。
当然其中也存在不足之处,需要对此展开进一步的学习研究。
本文中的识别方法将鼠标手势当做静态字符来对待,实际上可以通过鼠标手势的书写顺序增强识别的准确程度。
实际中的鼠标手势还可以应用到很多其他方面,例如触屏设备的广泛应用,可以将鼠标手势与实际触摸设备结合,增强设备操作的灵活性。
六.参考文献
[1]苏统华.脱机中文手写识别——从孤立汉字到真实文本.哈尔滨工业大学博士学位论文.2008
[2]赵继印,郑蕊蕊,吴宝春,李敏.脱机手写体汉字识别综述.电子学报,2010,38
(2):
405-415
[3]邵洁,成瑜.关于手写汉字切分方法的思考.计算机技术与发展,2006,16(6):
184-190
[4]付强,丁晓青,刘长松.用于手写汉字识别的级联MQDF分类器.清华大学学报(自然科学版),2008,48(10):
1605-1608
[5]张芳,汪成军.基于支持向量机的手写汉字的识别.计算机与数学工程,2006,34
(1):
65-68
[6]DaLu,QiweiChen,WeiPu,etal.StudyonpreclassificationforhandwrittenChinesecharacterbasedonneuralnetandfuzzymatchingalgorithm.2007IEEEInternationalConferenceonRoboticsandBiomimetics,2007:
1344-1349
[7]赵巍,刘家锋,唐降龙.基于部件HMM级联的联机手写体汉字识别方法.哈尔滨工业大学学报,2004,36(5):
570-573
[8]张力,肖薇薇,钱恭斌,纪震.基于Krawtchouk不变矩的仿射攻击不变性局部水印算法.电子学报,2007,35(7):
1403-1408
[9]童学锋,邓刚,柴佩琪.隐马尔可夫模型在脱机手写体汉字识别中的应用.计算机应用,2002,22(10):
1-3
[10]王先梅,黄康,林子钰.Krawtchouk矩在脱机手写汉字识别中的应用.广西师范大学学报(自然科学版),2006,24(4):
227-230
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 BP 神经网络 鼠标 手势 识别
![提示](https://static.bdocx.com/images/bang_tan.gif)