基于Hopfield神经网络的字符识别摘要:文章介绍了离散Hopfield神经网络的基本概念及其原理,以Matlab为工具,根据Hopfield神经网络的相关知识,设计了一个具有联想记忆功能的离散型Hopfield神经网络。首先提取照片的像素值,通过对照片的灰度处理,得到灰度像素矩阵。由于对单个字符进行识别的效果比多个字符整体识别的效果好,故对不同的字符进行分割,然后运用OSTU算法求得最佳阈值,通过数据替换得到该字符的二值矩阵。用原图片的二值矩阵作为训练样本,生成Hopfield神经网络。然后分别在不同噪声强度的情况下,以噪声图像的二值矩阵作为测试样本,观察网络的输出效果,并计算出相应的识别率。通过测试发现,噪声强度在较小范围0.1左右时,该网络可达到很好的识别效果,此时识别率接近1;随着噪声强度的增大,识别效果变差;当噪声强度达到0.4时,该网络已无法进行识别。关键字:Hopfield神经网络二值矩阵OSTU算法识别率CharacterrecognitionbasedonHopfieldneuralnetworkAbstract:thearticleintroducesthebasicconceptandprincipleofdiscreteHopfieldneuralnetwork,whichisbasedontheMatlabtools,andHopfieldneuralnetworkknowledge,itdesignedadiscreteHopfieldneuralnetworkwithassociativememoryfunction.First,extracttheimagepixelvalues,throughprocessingtheimagegrayscale,graypixelmatrixisobtained.Duetotheeffectofsinglecharacterrecognitionisbetterthancharactersoverallrecognition,sothedifferentcharactersneedsegmentation.ThenoptimalthresholdisobtainedbytheuseofOSTUalgorithm,andthebinarymatrixofthecharactersiscreatedbyreplacingdata.Two-valuedmatrixintheoriginalimageisregardedasthetrainingsample,anditgeneratestheHopfieldneuralnetwork.Thenrespectivelyinthecaseofdifferentnoiseintensity,treatingbinarymatrixofthenoiseimageastestsamples,comparetheeffectaboutoutputofthenetwork,andcalculatethecorrespondingrecognitionrate.Throughtest,foundthatwhenthenoiseintensityinsmallwithin0.1,thenetworkcanachievegoodrecognitionrate,andrecognitionrateatthistimeiscloseto1;withtheincreaseofnoiseintensity,recognitionrateislower;whilethenoiseintensityis0.4,thenetworkhasbeenunabletoidentify.Keywords:Hopfieldneuralnetworktwo-valuedmatrixOSTUalgorithmrecognitionrate长江大学电子信息学院第2页共9页一、原理概述1.1Hopfield网络的拓扑结构Hopfield最早提出的网络是二值神经网络,神经元的输出只取1和-1,所以也称离散神经网络(DHNN,DiscreteHopfieldNeuralNetwork)。在离散Hopfield网络中,所采用的神经元是二值神经元,因此,所输出的离散值1和-1分别表示神经元处于激活和抑制状态。)(1ty)(2ty···)(tyn第一层x1x2···xn第二层)1(1ty)1(2ty)1(tyn图1Hopfield网络的拓扑结构如图一所示,其中第一层仅作为网络的输入,它不是实际的神经元,没有计算功能。第二层是实际神经元,因而执行对输入信息与系数相乘的积再求累加,并由非线性函数f处理后产生输出信息。f是一个简单的阈值函数,若神经元的输出信息大于阈值θ,则神经元的输出就取值为1;若小于阈值θ,则神经元的输出就取值为-1.1.2Hopfield网络的学习算法Hopfield网络的训练和分类利用的是Hopfield网络的联想记忆功能。当它进行联想记忆时,首先通过一个学习训练过程确定网络中的权重,使所记忆的信息在网络的n维超立方体的某一个顶角的能量最小。当网络的权值呗确定之后,只要向网络给出输入向量,即使这个向量是不完全或部分不正确的数据,但网络仍然产生所记忆的信息的完整输出。Hopfield网络的学习算法:(1)将输入向量X=],,[,...21xxxiniiT存入Hopfield网络中,则在网络中第i,j两个结点间的权重系数按下列公式计算:长江大学电子信息学院第3页共9页xxkjNkki1,i≠jwij=i,j=1,2,···,n0,i=j确定输出向量],...,,[21yyynYT。(2)对于二值神经元,计算当前Hopfield网络输出:jjiniijjxywUtt)()1(1,j=1,2,···,n))1(()1(tftUyji,j=1,2,···,n其中,xj为外部输入;f是非线性函数,可以选择阶跃函数;j为阈值函数。1,0)1(tUj))1((tfUj-1,0)1(tUj二、问题描述在日常生活中,经常会遇到带噪声字符的识别问题,如交通系统中汽车车号和汽车牌照,由于汽车在使用过程中,要经受自然环境的风吹日晒,造成字体模糊不清,难以辨认。如何从这些残缺不全的字符中攫取完整的信息,是字符识别的关键问题。字符识别在交通系统及商业票据甚至在案件侦查的指纹对比环节有着重大应用价值。现根据Hopfield神经网络的相关知识,设计一个具有联想记忆功能的离散型Hopfield神经网络。要求该网络能对字符,如数字、字母、汉字等进行正确的识别,并且具有一定的抗干扰能力,即当字符被一定的噪声干扰后,仍具有较好的识别效果。三、方案设计整个方案的设计步骤如图2所示,先利用Matlab对彩色图像进行灰度处理,得到像素矩阵,然后由OSTU算法得到阈值,进行数据替换后得到二值矩阵;再利用原始图像的二值矩阵作为训练样本,创建Hopfield神经网络。最后分别在不同噪声强度下得到的噪声图像的像素矩阵作为测试样本,得到测试后的数据,并调用函数将其显示出来,与原图像进行对比,并分析测试结果。方案设计流程图如图2所示。长江大学电子信息学院第4页共9页图2四、程序实现4.1图片预处理由于所得的图片为彩色图像,数据量太大,故一般将所得的图片进行灰度处理。由灰度图像可得到相应的像素矩阵,并根据字符的特点进行分割,为简单起见,可根据字符所占的比例将原像素矩阵分成各个字符的像素矩阵。进行分割后,字符可分为三类,分别是:数字、字母、汉字。下图是原车牌号和加了高斯噪声的车牌号之间的对比。程序见附录(1)图3以字母K为例,分割后的图像如图4(a)所示。提取相片的像素值,运用OSTU算法求得最佳阈值得到二值矩阵,生成点阵图创建Hopfield网络产生带随机噪声的数字点阵字符识别测试结果分析及评价长江大学电子信息学院第5页共9页4.2对数据进行压缩由于数据量过大,不便于神经网络的实现,而对像素矩阵进行成比例的压缩后,不改变字符的形状。为讨论方便,下面以字母K为例,每三行取一行,每三列取一列。经过上述处理后,数据量压缩到原来的1/9,但不改变图形形状,如图4(b)所示。相应的程序见附录(2)。4.3阈值的选取阈值的选取直接关系到字符能否准确的用二值矩阵表示出来。运用OSTU算法(大津算法)可求得最佳阈值,它的基本原理是:设原始灰度级为M,灰度级为i的像素点个数为in,对灰度值进行归一化:Mnpii;设分割阈值为t,将灰度分为两类。每一类出现的概率为tiipw00和Mtiipw11;每一类的平均灰度为00)(wtuu与0111)()(wtutuuT;其中:tiipitu0*)(,11*)(MtiiTpitu则类间方差定义为:2112002)(*)(*TTuuwuuw从1到M之间循环递增,使得此类间方差最大的值即为最佳分割阈值。按此方法,求得的阈值为94.求得阈值后,对像素矩阵进行-1、1替换,得到标准的-1、1矩阵。程序见附录(3)4.4进行训练和测试在Matlab中调用newhop函数,由所得的标准矩阵创建神经网络。然后对标准图像添加不同强度的随机噪声,以对比在不同噪声强度下该网络的识别效果。当噪声强度为0.1时,显示出噪声图像和经过训练后的图像,如图4(c)和图4(d)所示。(a)(b)(c)(d)图4相应的程序见附录(4)长江大学电子信息学院第6页共9页4.5结果分析现说明识别率α的概念。通过对比噪声图像测试后的像素矩阵和标准的像素矩阵之间的差异,可直观地看出识别率的好坏。故定义α如下:ppe1;其中,ep为两矩阵中对应元素不相等的个数,p为矩阵总元素的个数。分别增加随机噪声的强度,按上述4.1-4.4步骤进行仿真测试,然后统计出相应的识别率(程序见附录(5)),并根据识别效果划分成良好、一般、较差等三个等级。噪声强度、识别率、识别效果等级三者之间的关系见表一。表一噪声强度0.050.100.150.200.250.300.350.40识别率1.001.000.910.860.810.730.630.56识别效果等级良好一般较差由上表可知,噪声强度在较小范围0.1左右时,该网络可达到很好的识别效果;随着噪声强度的增大,识别效果变差,直至无法识别。图5是噪声强度为0.35的情况下,得到的噪声样本(见图5(a))和测试结果(见图5(b))。(a)(b)图5五、结语本文在前人研究成果的基础上改进了对字符进行识别的算法,通过对大量随机图的仿真计算,最终的实验结果表明,离散型Hopfield神经元网络能有效地进行字符识别,并且识别速度快,自适应性能好,分辨率较高。通过实验验证,本算法达到了一定的识别率,能在实际生活中得到应用,但也存在一些缺点和不足,如对训练样本和识别样本有一定的限制(尽管是为了方便训练和识别),且神经网络的设计方法在理论上还不是很完善,因此,还有待提取出新的方法,进一步提高识别率,识别系统的性能关键与瓶颈仍然在于字符识别的核心算法性能上,最终目标是研究零误识率和低拒识率的高速识别算法。当然,我们也可以把此神经网络的原理运用在其他的领域,以检验其算法的有效性。长江大学电子信息学院第7页共9页六、参考文献[1]Matlab中文论坛.MATLAB神经网络30个案例分析[M].北京航空航天大学出版社,2009.[2]许录平.数字图像处理[M].科学出版社,2007.[3]张良均,曹晶,蒋世忠.神经网络适用教程[M].机械工业出版社,2008.[4]张宏林.数字图像模式识别技术及工程实践[M].人民邮电出版社,2004.[5]邓丽华,崔志强,张静.基于人工神经网络的手写体数字识别[J].三峡大学学报,2005.6:255~256[6]孙兆林.matlab6.x图像处理[m].清华大学出版社,2002.[7]付德胜,张学勇.基于hopfield神经网络噪声数字的识别[J].通信技术,2010.6:1