《自-基于神经网络的印刷体字母识别》由会员分享,可在线阅读,更多相关《自-基于神经网络的印刷体字母识别(18页珍藏版)》请在金锄头文库上搜索。
1、基于BP神经网络的印刷体字母识别1背景随着社会的发展,英语作为国际通用语言得到了日益广泛的应用,因此有大量的英文文档整理、查询、统计的工作需要完成,而英文字母识别系统可以轻而易举地完成很多以前难以想象的工作。智能控制作为一门新兴的交叉学科,在许多方面都优于传统控制,而智能控制中的人工神经网络由于模仿人类的神经网络,具有感知识别、学习、联想、记忆、推理等智能,更是有着广阔的发展前景。人工神经网络理论的应用主要在人工智能,自动控制,模式识别,机器人,信息处理,CD/CAM等方面。如:(1)空间科学。航空飞行器及汽车的自动驾驶导航系统,飞行路径模拟,飞行器制导和飞行程序优化管理等。()控制和优化。机
2、器人运动控制,各种工业过程控制和制造过程控制,如集成电路布线设计,生产流程控制等等。(3)模式识别和图像处理。如人脸识别,语言识别,指纹识别,签名识别,手写体和印刷体字符识别,目标检测与识别,图像复原,图像压缩等等。(4)智能信息管理系统。如股价预测,不动产价格预测,外汇,黄金等大宗产品价格预测,公司财务分析,地震及各种自然灾害预报等等。其中最核心的是反向传播网络(Back PpgainNetork),简称P网络。本文介绍了运用mtla工具箱确定隐层神经元的个数和构造神经网络,并用两组样本对该神经网络进行训练,然后运用训练后的网络对字母进行识别。2BP网络介绍 BP神经网络又称误差反向传递神经
3、网络。它是一种依靠反馈值来不断调整节点之间的连接权值而构建的一种网络模型。它的整个体系结构分为输入层、隐藏层和输出层,其中隐藏层根据具体情况的需要,可以是一层结构也可为多层结构。B算法的基本思想是:学习过程由信号的正向传播与误差的反向传播两个过程组成。正向传播时,输入样本从输入层传入,经各隐藏层逐层处理后,传向输出层。若输出层的实际输出与期望的输出(教师信号)不符,则转入误差的反向传播阶段。误差反传是将输出误差以某种形式通过隐藏层向输入层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。这种信号正向传播与误差反向传的各层权值调整过程,是周而复
4、始地进行的。权值不断调整的过程,也就是网络的学习训练过程。此过程一直进行到网络输出的误差减少到可接受到的程度,或进行到预先设定的学习次数为此。系统实现思想字母识别系统一般分为预处理、特征提取和分类器三部分。其中,预处理包括将图片从模拟图像到进行二值化、归一化等过程;特征提取和分类器的设计是整个系统的核心部分。通过对各个部分分别进行编程处理来实现,将每部分编为可调用的函数,最后统一对函数进行调用,清晰方便。字母识别整体框图a BP神经网络训练过程 BP神经网络识别过程图2.1 BP神经网络识别系统3.2 预处理及其特征提取方法本文使用傅里叶描述符及其反变换进行图片的二值化、字母轮廓提取,之后进行
5、归一化,将其特征变成1*120的矩阵,之后选取里面的六十个点变为1*6的矩阵。特征提取程序:functioFD=eture_Building(RB)RB=imrad(:A.bmp);%figure(1),ishow(RG)B=olne(G);%fgue(2)%bpo(221),drw_utn(B);ttl(oulin o bject);m,n=sie();Dfsd(,30,m,);其中ouline、fs为傅里叶描述及其反变换程序。uine程序:%Fuctionforetrctng ule of object; K., 8.4.9%Deatmn f Automati, Tsihua Unv. B
6、eijing10084, Chin.fuction oline=ole(RGB)I=rb2ray(GB);n thrshol dg(I, sobel);fudgactor = .5;Bs = ege(I,obel,threshld *fugeactor);%Ste3: Diteth imagese90 = strel(lne, 3,0);s0 = strel(ine, 3, 0);sdil = mdilate(BW, s90 s0);%Step4: Fill intor psdfill = imfil(BWsdil, ols);S5: emoe conneted objects n bordr
7、BWnoord imclaorder(BWdfil, 4);%Ste 6: Smothenthe bectseD = strel(iamn,1);Wfinal =imer(BWnoo,seD);BWfnal = imeroe(BWfia,se);bw breaoen(BWfial,3); % % filla ap ntheenscp,= bwodais(bw,ool);oulin = B1;fsd程序见程序清单。33 BP神经网络结构3.31 输入层神经元个数的确定将图像的特征向量作为神经网络的输入,所以神经网络的输入层神经元个数等于特征向量的维数,即106个输入神经元。.2 隐含层神经元个数
8、的确定隐层节点数对网络的学习和计算特性具有非常重要的影响,是该网络结构成败的关键。若隐层节点数过少,则网络难以处理复杂的问题;但若隐层节点数过多,则将使网络学习时间急剧增加,而且还可能导致网络学习过度,抗干扰能力下降。本文根据实际的实验,确定隐含层神经元的个数为15个。. 输出层神经元个数的确定因为要识别6个英文大写字母,因此输出选择26的矩阵,即输出层神经元的个数为个。当个字母输入神经网络后,在对应的位置上输出1,其他位置上输出零。当网络进入识别过程时,哪个位置上输出的期望值最大,认为识别出的是这个位置上的字母。3.4 B神经网络的构造建立一个前向P神经网络函数nwff:net=ewff(i
9、ax(P),S1,2, loig,ogig,tainlm);net.LW2,1=LW2,1*0.01;ne.b2et.b2*0.01;其中mnma()为神经网络的对它的60个输入元素的最大值和最小值的限制。P为训练样本集合。1、分别为该神经网络的隐含层和输出层的神经元个数。li ,losg为神经网络的各层的转移函数,均设置为对数型激活函数。训练函数采用trailm 。.4 BP神经网络的训练3.1 训练样本集合和目标值集合字母图片归一化后的图像为61的矩阵,用02的矩阵形成一个训练样本;目标矢量是希望每一个数字输入神经网络后在输出神经元对应的位置上为1,其他的位置为0。为此取目标矢量为对角线上
10、为的226的单位阵 ,用mtlab命令实现为:Teye(2);3.2 网络训练隐含层神经元的传递函数采用s型对数函数losig,输出层神经元传递函数也采用型对数函数,训练函数采用trainlm,性能函数采用ss,训练步数设置为最大5000,性能目标值为0.5,。P训练程序:net.rformFc=sse;%设置目标性能函数net.trainPram.gol=0.05;%性能目标值net.rainPram.sw2;显示间隔次数ne.traiaramepoch=5000;最大训练次数et.traiParam.mc=0.95;net,trtran(net,);BP网络训练流程图:使用第一组样本进行训
11、练的结果:TRANLM, Epoch 05000,SS 1693/005,Grant3904e-010TRAINM, Epc 20/50, SE 9.079/0.05,Gaent 0.647529-10TRAINM, Eoch 05000, SSE 5.45171/0., adient .46501e-010TRAINLM, Epoch 0/5000, SSE 3.5999/0.05,rdien 1.176/1-10TRAINM,Epoch 8/5000,SSE 3.371000, radient 0.970379/1e-010TRAINLM, po 100/500,SE 14334/005,
12、 raient0.961/1e10TRAINM, Epch 0500, SSE 1.188/0.05, Gadient 0.61835/-0TANM, Ech14500, SSE 0.6199/,Gradient 0.497918/1e-010RANL, Eoh 160/5000, SSE .3153/05, Gradt .9323/1e-0RIM, Eoh 180/0, SE 0.18194/0.5, Gadit0.099018/1-010TRINLM, Epoch 20/50,SE .1637/0.05, Grdent 1576/1e-01TRINLM, Eoch 0/00,SSE 003
13、5697/.05, Grien0.26104/1e-10AINM, Performancegal met.可见经过06次训练后,网络误差达到要求,误差曲线如下图:使用第二组样本进行训练的结果:AINLM, poch 0/5000,SSE 18.35/.05, radint 3.7987/e-010RANLM, Ech 20/5000, SE 3.290,radien 0.540/1e-10TRAINLM, Ech 3000, SSE .0441687/0.5,Gradint .84425/1e-010TANM, Perfomanc goa met.可见经过26次训练之后,网络误差达到要求。误差曲线如下图所示:字母的识别以上所介绍为网络的学习期,学习过程结束后,网络进入工作期,即可以进行字母的识别。单一字母识别程序如下:G=imr(D:Program FiesMATLB7work新建文件夹 1A1.p);工作期 11为大写字母略带噪声的图片B=Fatue_Biln(RGB);提取字母轮廓特征DBrehpe(FD,120);BFDB(1:2:120);归一化处理a,b=ax(im(nt