基于BP网络的数字图像识别.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

基于BP网络的数字图像识别

陈婷

摘要:介绍了字符识别的几种方法及神经网络的基本原理,并将BP神经网络应用于数字识别。通过Matlab采集数字的图像,并进行样本训练,实现了基于BP神经网络的数字识别。仿真试验结果表明,BP神经网络可以对阿拉伯数字进行快速、准确的识别,具有广泛的应用前景。

关键字:BP神经网络;数字识别;图像

引言

数字字符识别[1](NumeralRecognition)是光学字符识别(OpticalCharacterRecognition,OCR)技术的一个重要分支。在大规模数据统计,邮件分拣,汽车牌照、支票、财务、税务、金融等有关数字编号的识别方面得到广泛应用,因此成为多年来研究的一个热点。而人工神经网络(ArtificialNeuralNetworks,简称ANN)具有良好的容错能力、强大的分类能力、自适应和自学习等特点,备受人们的重视,在字符识别领域得到了广泛的应用。

用ANN进行字符识别主要有两种方法:一是先对待识别字符进行特征提取,然后用所获得的特征来训练神经网络分类器。这种网络的识别效果与字符特征提取的完备性有关;二是充分利用神经网络的特点,直接把待处理的图像输入网络,由网络自动实现特征提取直至识别。这种网络的识别速度与输入的待处理图像大小有关[2]。

本文采用的是第二种方法,并运用BP网络进行数字字符识别。

BP神经网络的基本原理

BP神经网络是一种典型的前馈神经网络[3],其网络的基本结构如图1所示,BP算法属于有监督式的学习算法,其主要思想是:输入学习样本,使用反向传播算法对网络的权值和偏差进行反复的调整训练,使输出的向量与期望向量尽可能地接近,当网络输出层的误差平方和小于指定的误差时训练完成,保存网络的权值和偏差。

图1BP神经网络结构图

3.数字识别

3.1图像预处理

利用BP神经网络对阿拉伯数字进行识别前,应先对阿拉伯数字位图样本进行预处理[4],即先将256色位图转为灰度图,然后二值化,最后进行归一化处理,以消除各数字在位置和大小上的差异,从而提高识别的准确率。归一化处理后的字符便可进行特征向量提取。将所提取的特征输入到神经网络进行识别,最后输出并显示识别结果,过程如图2所示。

图2数字识别的基本原理

因为本文主要是研究BP网络在数字识别中的应用,所以在提取数字特征时,人为限定了数字灰度图的大小,这样就避免进一步消除数字在位置和大小上的差异。

3.2BP神经网络设计

由于具有偏差和至少一个S型隐含层加上一个线性输出层的网络,能够逼近任何函数,所以采取具有一个隐含层的BP网络[5]。网络的输入、输出应根据应用的具体要求来设定。输入层节点数目取决于数据的维数,采用的输入数据为已经提取的特征数据,输入特征数据为24×17的矩阵,转换成408×1的矩阵,因此神经网络输入神经元数目为408。本文为了节省工作量仅对单个数字进行训练及识别。对应于“0”的特征输入,输出即得到“0”,其他数字也是如此。如果要同时识别0~9这10个数字,可以采用8421码来识别,即对于输出“0”,采用(0,0,0,0)主要的目标向量来表示,对于输入“1”,采用(0,0,0,1)这样的输出向量来表示,…,对于输入“9”,采用(1,0,0,1)这样的输出向量来表示,以此类推。所以在这里本文的输出层神经元数目为1,也即输出向量的维数,如果采用后者,输出层神经元数目为4。本文对每个数字采用8组样本进行训练,4组进行测试,如图3所示,前8组训练用,后4组测试用。

图3测试数据示意图

3.3BP神经网络训练与测试

使用函数newff创建一个两层网络,网络有408个输入,1个输出神经元,隐含层选取30个神经元。第一层的激励函数是“TANSIG”,第二层的激励函数是“PURELIN”。学习函数是梯度下降动量学习函数LEARNDM,训练性能函数为平方和误差“MSE”,这里使用函数“TRAINRP”进行训练,输入范围选择输入变量自动填入,创建网络如图4所示。

图4BP网络创建图

通过VIEW按钮可以看到所创建网络的结构图如图5。

图5BP网络结构图

之后对网络进行训练,图6显示的是对数字“1”的训练效果图,从图中可以看出在训练到50步时,系统已经收敛(尽管波形不是很光滑),总残差目标为3.27254e-15,Goal为0。

图6BP网络训练效果图

图7是训练网络之后得到的输出以及误差,可以看到误差很小,训练效果很好。

图7网络训练输出及误差显示

最后要进行网络测试,输入测试样本与输出目标后进行Simulate,得到图8所示的输出与误差,可以看到,测试结果是完全正确的,误差几乎为0,所以能够达到期望的结果。

图8网络测试结果输出与误差

结语

通过对BP网络进行分

文档评论(0)

181****7662 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档