计算机与现代化©1994-2009ChinaAcademicJournalElectronicPublishingHouse.Allrightsreserved.期文章编号:100622475(2009)0120063203基于BP神经网络的字符识别系统张可1,张高燕2,吴苏3,范海菊4(1.南京航空航天大学信息科学与技术学院,江苏南京210016;2.北京师范大学信息科学与技术学院,北京100875;3.哈尔滨工程大学计算机科学与技术学院,黑龙江哈尔滨150001;4.河南师范大学计算机与信息技术学院,河南新乡453007)摘要:基于BP神经网络设计了一个字符识别系统。首先,对字符图像进行二值化处理,构造输入向量矩阵。其次,通过选取初始权值、隐层节点数和权值学习算法,创建BP神经网络,对样本数据进行训练,之后对加有噪声的样本再次进行训练,以提高网络的鲁棒性。最后进行仿真测试并制作图形用户界面GUI来模拟与演示该系统。仿真结果显示,该BP网络对噪声系数小于0.8的字符识别率可达95%,且网络训练时间可接受。关键词:BP神经网络;GUI;字符识别;鲁棒性中图分类号:TP311.52文献标识码:ASystemofCharacterRecognitionBasedonBack2propagationNeuralNetworkZHANGKe1,ZHANGGao2yan2,WUSu3,FANHai2ju4(1.CollegeofInformationScienceandTechnology,NanjingUniversityofAeronauticsandAstronautics,Nanjing210016,China;2.CollegeofInformationScienceandTechnology,BeijingNormalUniversity,Beijing100875,China;3.CollegeofComputerScienceandTechnology,HarbinEngineeringUniversity,Harbin150001,China;4.CollegeofComputerandInformationTechnology,HenanNormalUniversity,Xinxiang453007,China)Abstract:ThisarticledesignsacharacterrecognitionsystembasedontheBack2Propagationneuralnetwork.First,thecharacterimageisprocessedinbinarytoconstructtheinputvectormatrix.Second,bychoosingtheinitialweight,thenumberofhidenodesandthelearningalgorithmofweight,aperfectBPneuralnetworkiscreated.Andthenthenetworkcarriesonthetrainingtothesampledataandafterwardstothesamplewithnoiseoncemore,toenhancethenetworkrobustness.Finally,itcarriesonthesimulationtestandmanufacturesgraphicaluserinterfacetosimulateanddemonstratethissystem.ThesimulationresultshowsthatthecharacterrecognitionrateofthisBPnetworkispossibletoreach95%withthenoisefactorlessthan0.8,andthetrainingtimeisacceptable.Keywords:BPneuralnetwork;GUI;characterrecognition;robustness0引言为了解决计算机对字符的自动识别问题,使计算机达到真正智能化,人们对计算机的自动识别进行了多年研究,并取得了很大的进步。字符识别一般通过基于字符结构的识别法及模板匹配法来进行处理,前者一般更适用于字母和数字的识别;后者程序实现起来比较容易,但识别精度不高。为了提高识别率,就必须寻求新的方法和途径。近年来,BP神经网络技术取得了巨大发展,它是一种前馈型神经网络,具有收稿日期:2007205211基金项目:河南省自然科学基金资助项目(0511011500)作者简介:张可(19842),女,河南三门峡人,南京航空航天大学信息科学与技术学院硕士研究生,研究方向:图像处理;张高燕(19872),女,河南三门峡人,北京师范大学信息科学与技术学院硕士研究生,研究方向:图像与语音信号处理;吴苏(19872),男,河南南阳人,哈尔滨工程大学计算机科学与技术学院硕士研究生,研究方向:Internet应用软件;范海菊(19792),女,河南新乡人,河南师范大学计算机与信息技术学院讲师,研究方向:语音和图像信号处理。©1994-2009ChinaAcademicJournalElectronicPublishingHouse.Allrightsreserved.期分布式存储信息、并行处理信息、自组织、自学习信息等优点。本文所介绍的字符识别系统正是借助BP神经网络基本原理并结合Matlab仿真软件来实现的。1BP神经网络神经网络是由大量简单的处理单元来模拟真实人脑神经网络的机构和功能以及若干基本特性,是一个高度复杂的非线性自适应动态处理系统。从系统观点看,BP神经网络是由大量神经元通过极其丰富和完善的连接而构成。由于神经元之间有着不同的连接方式,所以组成不同结构形态的神经网络系统是可能的,大致的结构如图1所示。图1神经元模型其中X1,X2,⋯,Xn为输入信号,Ui为神经元内部其他位置上的输出为0。考虑到所设计的网络应当具有鲁棒性,本文利用Matlab中的randn函数产生随机噪声,并与alphabet加权,生成有噪声的输入向量(噪声系数可调)对网络进行训练。2.BP神经网络的构建。(1)初始权值的选取。初始权值直接影响网络的收敛速度,初始权值若选得不好,网络将处于饱和区导致难于收敛或陷入局部极小。选取时以21~1之间均匀分布的随机值较好[4]。(2)隐层节点数的选取。本文选取35个输入节点和26个输出神经元。隐层神经元数目会对网络训练的收敛速度、字符识别的实时性和识别效果有一定的影响。神经元太少,会造成网络的不适性,识别效果较差;太多又会引起过适性,导致训练时间过长等缺点。并且经实验发现,隐层节点数增加、迭代训练次数增多和网络识别效果之间并不是线性关系,而是趋势。依据实验经验,本文选取隐层节点数为8。在实际训练中,效果若不理想,可适当增加隐层结点数。(3)权值学习算法。BP网络对网络权值的修正是沿着负梯度方向,即称为梯度下降法。其学习算法为[5]:xk+1=xk-αkgk(1)其中αk是学习速率,gk是表现函数的梯度,xk是当前的状态,Yi为阈值,Si为外部输入信号,右部为输出[1]。权值矩阵。梯度下降法没有考虑到以前积累的学习经验,即BP神经网络的主要思想就是在确定了网络结构后,通过输入和输出样本集对网络进行训练和学习,以使网络实现给定的输入和输出映射关系。上一时刻的梯度方向,从而导致学习过程发生振荡,收敛速度过慢,或收敛于局部极小点。采用双动量的梯度下降法可以修正以上缺点。其算法如下:xk+1=xk-αk(1-γ)gk-γgk-1+μ[xk+1-xk](2)BP神经网络的学习过程可分为两个阶段:第一式中:γ,μ均为动量因子。第3项γg可视为上一时刻个阶段是输入已知学习样本,通过设置网络结构和前一次迭代的权值和阈值,从网络的第一层向后计算各神经元的输出;第二阶段是对权值和阈值进行修改,从最后一层向前计算各权值和阈值对总误差的影响,据此对各权值和阈值进行修改[2]。对以上两个过程反复交替,直到达到收敛为止。2基于BP网络的字符识别1.输入向量和目标向量的生成。利用Matlab软件对字符图像进行二值化处理,生成BP神经网络的输入向量Alphabet和目标向量Targets[3]。其中Alphabet为35×26的矩阵,第1列到第26列代表字符A到Z,每个字符由35个像素组成。Targets为26×26的单位矩阵,每个字符输入时在26个字符中它所排顺序的位置上输出为1,而在©1994-2009ChinaAcademicJournalElectronicPublishingHouse.Allrightsreserved.的学习经验,当与本次梯度gk方向相同时,起加速作用,否则为阻尼项,可减小学习过程的振荡趋势,从而改善收敛性,提高网络的稳定性。第4项对学习过程起到平滑作用从而避免收敛到局部极小。3.字符识别网络的训练。将训练样本送BP神经网络训练,通过在梯度方向上不断调整权值使网络平方和误差最小。为使网络对输入向量有一定鲁棒性,可先用无噪声的样本对网络进行训练,直到其平方和误差最小,再用含噪声的样本进行两次训练,保证网络对噪声不敏感。同时选取不同隐层神经元数目,观察其收敛速度。在网络训练后,再将其输出经过一层竞争网络函数compet的处理,使网络只是在最接近输入值的输出位置为1,其余位置输出为0。训练完毕,把待识别字符送BP神经网络中进行仿真测试。字符识别系统流程图©1994-2009ChinaAcademicJournalElectronicPublishingHouse.Allrightsreserved.期张可等:基于BP神经网络的字符识别系统65如图2所示。图2字符识别系统流程图3图形用户界面设计为了增强字符识别的直观效果,本文应用Matlab的图形技术来设计直观的图形用户界面GUI。它有四大优点:简单易学;代码短小高效;计算功能强大;强大的图形表达功能。而本文主要应用它的图形显示功能。本文采用两个坐标系来分别显示待识别的有噪声字符图像和识别结果,使用滑动条来改变噪声系数大小,并观察其对识别结果的影响。为方便对网络训练的理解,设计了网络训练按钮来直观显示网络训练过程,识别结果显示在可编辑文本框中。其界面如图3与图4所示。图3字符识别系统界面图4等待输入字符4仿真结果及分析由图5的收敛曲线可以看出,本文所建立的BP神经网络模型,其收敛速度比较快,达到了预期误差目标的精度,网络具有较好的样本泛化能力。图5训练收敛曲线图6识别误差曲线©1994-2009ChinaAcademicJournalElectronicPublishingHouse.Allrightsreserved.经过反复训练网络,该BP神经网络对字符的识别精度不断提高。由图6可知,噪声系数较小时识别误差较小,随着噪声系数的增加,识别误差几乎成线性增加,且加噪声前后误差曲线较接近。图7识别字符正确时的图像图8识别字符错误时的图像加上噪声之后的字符识别结果如图7和图8所示,由图可知,当噪声系数小于0.8时,识别精度高,大于0.8时,识别错误,如图8中字符P被识别为R。5结束语本文利用BP算法完成一个基本的字符识别系统的模拟与演示。BP算法的目的就是要确定加权向量,使得对已知的输入和输出得到最佳的匹配。BP神经网络常用于文字符号识别、模式分类、图像压缩、决策支持等,也可嵌入到车牌识别系统中,具有广泛的应用前景。但是,由于BP算法实质上是非线性系统的梯度算法,不能保证训练结果一定收敛到全局最优解,并且极可能落到局部最优点解。