文献标识码: A
文章编号: 0258-7998(2015)03-0120-03
0 引言
目前,在字符识别的研究中,最常见的识别方法就是先建立字符库,或储存字符信息模板,或存储字符特征信息,在进行识别时,将待识别字符与字符库中的信息进行逐个比对,进而识别出待识别字符。由此衍生出来算法有两种:基于模板匹配的字符识别法、基于特征统计匹配的字符识别法[1-3]。模板匹配算法的高速识别和特征统计匹配识别算法的简单原理,让这两种算法得以广泛应用,然而当面对批量图书文字、字体种类繁多、识别字体模糊等问题时,以上两种算法在识别准确率、程序鲁棒性、适应性上都显得不够理想。
由此,本文运用一种新方法解决以上问题——基于感知机神经网络的字符识别法。通过仿真实验,对算法进行改良、数据分析与比较,验证了全新算法较目前常规算法的卓越性能优势。
1 字符识别器的设计
1.1 感知机网络模型
感知机神经网络现在仍处于发展阶段,主要应用在模糊识别领域中。在识别字符时,神经元网络先对待识别字符进行特征提取,然后用所获得的特征来训练神经网络分类器。它的优点是识别器自身可进行学习训练,识别器的容错能力强,识别率高。
其基本思想是将一些类似生物神经元的处理单元构成一个计算网络,该网络能够自动学习如何对“模式”进行识别和分类。
感知机模型是一种具有权值元素的前馈网络,通常由感知层S(Sensory)、连接层A(Association)和反应层R(Response)构成[4]。
1.2 感知机网络的学习过程
如图1所示,当输入X时,经过神经元的计算,得出实际输出值。这个实际输出值与期望输出值进行比较,并进行误差计算,如果误差为0,则输出;如果误差不为0,则进行学习,修改阈值t,其算法为e(t,0)[5]。
阈值被修改后,重复进行以上工作,直至实际输出数据与期望输出数据相同,学习结束。
2 字符识别器的实现
2.1 实例
设计并训练一个印刷字符分类器。如图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]:
(3)计算网络的实际输出:
式中,uki为第i次uk输入;f(x)为双极阶函数(激活函数),用来限制神经元输出振幅。由于它将输出信号压制到允许范围之内的一定值,故而激活函数也称为压制函数。通常,一个神经元输出的正常幅度范围可写成单位闭区间[-1,+1]:
(4)计算输出层单元的期望输出与实际输出之间的误差:
dk=yk-y(4)
(5)修正A层各单元与输出层R之间的连接权与阈值:
式中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。
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.