《电子技术应用》
您所在的位置:首页 > 通信与网络 > 设计应用 > 一个感知机神经网络字符识别器的实现
一个感知机神经网络字符识别器的实现
2015年电子技术应用第3期
杨 戈1,2,张威强1,黄 静1
1.北京师范大学珠海分校 信息技术学院,广东 珠海519087; 2.北京大学深圳研究生院 深圳物联网智能感知技术工程实验室,广东 深圳518055
摘要: 针对英文印刷字体,设计并实现了一个基于感知机神经元网络的字符识别器,输入印刷字符“L”和“I”,对识别器进行训练、学习,以达到识别字符的目的。通过4 000组的实验数据表明,该识别器对规范印刷的英文字符能高效、准确地识别出来,程序的平均学习次数为6.95次,平均用时0.006 812 56 s,耗时在可接受范围之内,进而验证了该字符识别器在实际应用中的可行性。
中图分类号: TN47
文献标识码: A
文章编号: 0258-7998(2015)03-0120-03
Implementation of printed character recognition system based on perceptron artificial neural network
Yang Ge1,2,Zhang Weiqiang1,Huang Jing1
1.College of Information Technology,Beijing Normal University(Zhuhai Campus),Zhuhai 519087,China; 2.Key Laboratory of Engineering Lab on Intelligent Perception for Internet of Things(ELIP),Shenzhen Graduate School, Peking University,Shenzhen 518055,China
Abstract: For English print characters,a character recognition system based on perception artificial neural network is designed and realized in this paper. To achieve the purpose of recognizing printed character,the program which inputs printed character “L” & “I” to the character recognition system is trained. 4000 experimental data sets show that the character recognition system can efficiently and accurately identify the English printing character. The learning times are 6.95 and using time is 0.006 812 56 seconds. These show that it is acceptable and available in practical uses.
Key words : artificial neurons;perceptron;MATLAB

 

0 引言

  目前,在字符识别的研究中,最常见的识别方法就是先建立字符库,或储存字符信息模板,或存储字符特征信息,在进行识别时,将待识别字符与字符库中的信息进行逐个比对,进而识别出待识别字符。由此衍生出来算法有两种:基于模板匹配的字符识别法、基于特征统计匹配的字符识别法[1-3]。模板匹配算法的高速识别和特征统计匹配识别算法的简单原理,让这两种算法得以广泛应用,然而当面对批量图书文字、字体种类繁多、识别字体模糊等问题时,以上两种算法在识别准确率、程序鲁棒性、适应性上都显得不够理想。

  由此,本文运用一种新方法解决以上问题——基于感知机神经网络的字符识别法。通过仿真实验,对算法进行改良、数据分析与比较,验证了全新算法较目前常规算法的卓越性能优势。

1 字符识别器的设计

  1.1 感知机网络模型

  感知机神经网络现在仍处于发展阶段,主要应用在模糊识别领域中。在识别字符时,神经元网络先对待识别字符进行特征提取,然后用所获得的特征来训练神经网络分类器。它的优点是识别器自身可进行学习训练,识别器的容错能力强,识别率高。

  其基本思想是将一些类似生物神经元的处理单元构成一个计算网络,该网络能够自动学习如何对“模式”进行识别和分类。

  感知机模型是一种具有权值元素的前馈网络,通常由感知层S(Sensory)、连接层A(Association)和反应层R(Response)构成[4]。

  1.2 感知机网络的学习过程


002.jpg

  如图1所示,当输入X时,经过神经元的计算,得出实际输出值。这个实际输出值与期望输出值进行比较,并进行误差计算,如果误差为0,则输出;如果误差不为0,则进行学习,修改阈值t,其算法为e(t,0)[5]。

  阈值被修改后,重复进行以上工作,直至实际输出数据与期望输出数据相同,学习结束。

2 字符识别器的实现

2.1 实例


003.jpg

  设计并训练一个印刷字符分类器。如图2所示,用位图形式表示的L和I印刷字符分别用白色和黑色象素表示0和1。分类器用一个离散双极型感知机构成,有10个输入权值,包括阈值在内。

  2.2 字符识别器的学习步骤

  (1)初始化

  初始化突触权值w,在连到神经元k的突触j上的输入信号xj被乘以k的突触权值wkj。突触权值wkj在[-1,1]随机产生,产生后固定不变。将A层至R层的连接权向量Wi及输出单元的阈值t赋予[-1,+1]区间的随机值[5]。

  初始化印刷字符L和I的输入值:

  x1=[1 0 0 0;1 0 0 0;1 0 0 0;1 1 1 1];

  //用矩阵x1表示印刷字符L

  x2=[0 1 0 0;0 1 0 0;0 1 0 0;0 1 0 0;];

  //用矩阵x2表示印刷字符I

  初始化期望值:

  y1=1;

  y2=1;//变量y为程序希望输出的值

  初始化学习率:

  a1=0.100000;

  a2=0.100000;//a为程序每次学习的学习率

  初始化连接权W:

  r1=rand(3);//随机矩阵[0,1]

  w=2*r1-1;//随机矩阵[-1,1];A~R层的权值;w随

  机产生,产生后固定不变

  初始化阈值t:

  r1=rand;//产生随机数

  t=r1*2-1;//阈值(随机产生);t 随机产生,产生后随

  学习而被修正

  (2)随机选取一输入模式uk加到网络的输入端,用于求输入信号被神经元的相应突触加权的和uk。这个操作构成一个线性组合器,如式(1)所示[6]:

  1.png

  (3)计算网络的实际输出:

  2.png

  式中,uki为第i次uk输入;f(x)为双极阶函数(激活函数),用来限制神经元输出振幅。由于它将输出信号压制到允许范围之内的一定值,故而激活函数也称为压制函数。通常,一个神经元输出的正常幅度范围可写成单位闭区间[-1,+1]:

  3.png

  (4)计算输出层单元的期望输出与实际输出之间的误差:

  dk=yk-y(4)

  (5)修正A层各单元与输出层R之间的连接权与阈值:

  56.png

  式中dk;i=1,2,3…n;N为学习次数;α、β为正常数,称学习率(0<α<1,0<β<1)。

  (6)返回第(2)步,直到m个输入模式全部计算完。

  (7)返回第(2)步,反复学习,直到误差 dk(k=1,2,…,m)趋于零或小于预先给定的误差。

  (8)学习结束。学习结束后网络将学习模式分布记忆在连接权之中,当再给网络提供已记忆的输入模式时,网络将计算出期望的输出yk值,并可根据yk为+1或-1判断出这一输入模式属于记忆中的哪种或接近于哪一种模式[7]。

3 仿真实验与分析

  3.1 实验环境

  实验环境见表1。

001.jpg

  3.2 实验结果

  (1)第1次学习

  连接权w:-0.384 5-0.339 0-0.548 2

           -0.197 50.888 6-0.658 6

            0.141 8-0.210 5-0.344 7

  阈值(第1次被修正):t=0.271 4;误差(第1次被修正):d1=2;误差(第1次被修正):d2=2。

  (2)第2次学习

  连接权w:-0.184 5-0.339 0-0.548 2

            0.002 50.888 6-0.658 6

            0.341 8-0.010 5-0.144 7

  阈值(第2次被修正):t=0.471 4;误差(第2次被修正):d1=2;误差(第2次被修正):d2=0。

  (3)第3次学习

  连接权w:0.015 5-0.339 0-0.548 2

           0.202 50.888 6-0.658 6

           0.541 80.189 50.055 3

  阈值(第3次被修正):t=0.671 4;误差(第3次被修正):d1=2;误差(第3次被修正):d2=0。

  (4)第4次学习

  连接权w:0.015 5-0.339 0-0.548 2

           0.202 50.888 6-0.658 6

           0.541 80.189 50.055 3

  阈值(第4次被修正):t=0.671 4;误差(第4次被修正):d1=0;误差(第4次被修正):d2=0。

  学习总次数为4次,最终确定的连接权矩阵W:

            0.015 5-0.339 0-0.548 2

            0.202 50.888 6-0.658 6

            0.541 80.189 5 0.055 3

  阈值:t=0.671 4;误差:d1=0;误差:d2=0。

  程序每次执行结果都不一样,这是因为步骤(1)中w初始值不同。以上只是其中一种情况。

  3.3 实验分析

  上述实验经过了4次学习之后,两个印刷字符的阈值被锁定为0.671 4,此时两图的学习误差均为0,结果符合预期要求。

  实验结果表明,程序会根据随机产生的连接权进行计算,通过有导师学习逐步改变阈值,并计算出每次学习的误差,直到学习误差为0时结束。

  为了验证这个实验的准确性,本文对程序进行了4 000次的随机测试,并对数据进行抽样记录。

  根据统计可以看出,要识别出这两个字符,最多进行10次学习,最少只需学习4次,平均学习6.95次。忽略两极分布情况,大部分学习次数为[5,8],数据波动小,稳定性较好。

  在源代码中,加入时间统计代码“tic;toc;”,便可精确计算每次学习的运行时间,大部分实验耗时0.004~0.09 s之间,平均耗时0.006 812 56 s。

  根据实验数据可以看出,感知机字符识别器要想识别两个字符,平均学习6.95次,耗时0.006 8 s,每识别出一个字符,需耗时0.003 4 s。按此数据推算,完成一段字数为8 000字的文章字符识别,只需要耗时27.201 6 s。据统计,国人对汉字阅读速度一般为400字/min[8],想要完成8 000字的阅读,需耗时20 min,而掌握“速读”技巧的人能以4 000字/min的速度阅读书籍和资料,完成8 000字的阅读也需要耗费2 min。通过对比得知,基于感知机网络的字符识别器的识别速度是普通人的32.64倍数,是顶尖阅读学者的3.26倍,从识别速度的角度的来看,识别器完全达到了实际应用的要求。

  通过实验可以看出,基于神经元网络的字符识别器具有自我学习的能力,在每次的学习过程中,识别器会进行自我纠正;在实际的应用中,该识别器不需要预先建立数据库,可以减少程序的体积;对字符的噪音、不完整、倾斜等都具有较强的适应能力,容错能力和鲁棒性都要优于另外两种常用方法;具有较高的并行分布能力和联想存储能力,大大提高了字符识别器的识别效率。

4 总结

  本文详细分析了基于神经元网络模型的字符识别器,并对这个识别器进行了4 000次的实验与分析,通过与人脑阅读速度相比,得出识别器的识别速度是普通人的32.64倍,是专业学者的3.62倍数。从识别率与识别速度两方面来看,本次试验达到了设计的要求。

  在未来,字符识别它能大大提高信息采集的速度,减轻人们的工作强度。现在市面上已经有越来越多基于字符识别的产品出现,例如:步步高点读机等。随着网络的普及,大数据时代的来临,字符识别技术在签名识别、手写体和印刷体字符识别、目标检测与识别、车牌识别等领域都将会挥下重彩浓墨的一笔。

  参考文献

  [1] 高庆一,逯鹏,刘驰,等.模拟视觉机制的隐蔽目标识别算法研究[J].仪器仪表学报,2012,33(2):11-15.

  [2] 何灏,罗庆生,罗霄.基于强分类器的神经网络三维目标识别[J].计算机测量与控制,2012,20(7):26-32.

  [3] 曹步清,金殴,贺建飚.基于BP神经网络的货币识别算法设计与实现[J].计算机测量与控制,2007,15(4):20-30.

  [4] 韩英莉,颜云辉.基于BP神经网络的带钢表面缺陷的识别与分类[J].仪器仪表学报,2006,27(12):12-21.

  [5] EBERLIN L S,DILL A L,IFA D R,et al.Cholesterol sulfateimaging in human prostate cancer tissue by desorption electrospray ionization mass spectrometry[J].Analytical Chemistry,2010,82(9):3430-3434.

  [6] 张建华,祁力钧,冀荣华,等.基于粗糙集和BP神经网络的棉花病害识别[J].农业工程学报,2012,28(7):33-39.

  [7] 陈蕾,黄贤武,仲兴荣,等.基于改进BP算法的数字字符识别[J].微电子学与计算机,2004,21(12):4-10.

  [8] 黄志斌,陈锻生.支持向量机在车牌字符识别中的应用[J].计算机工程,2003,29(5):21-25.


此内容为AET网站原创,未经授权禁止转载。