基于BP神经网络的数字手写识别系统.doc
端点数 ;2.3 知识库的建立由于本文采用的是基于模式知识库的识别方法,所以对字符的结构特征的分析以及字符模型的构造是一个十分重要的环节,图2.8就是对识别数字的标准形态进行具体分析而构造的模板。图2.8 规范手写体数字形态DATA012,2,2,2,2,2,2,2,0;DATA111,0,0,1,1,1,1,1,2;DATA213,3,3,1,1,1,1,1,3;DATA313,2,3,1,1,1,2,2,3;DATA411,1,1,2,2,1,3,2,4;DATA513,3,3,1,1,1,2,2,4;DATA613,3,2,1,1,2,3,2,1;DATA712,2,2,1,1,1,1,1,2;DATA814,4,4,2,2,2,2,2,0;DATA913,3,3,1,2,1,3,1,1。由于本系统是对自由手写体进行识别, 因而要考虑数字书写体的多变性。通过对图2.9所示数字变体的分析来对知识库进行补充。图2.9 手写体数字变体DATA021,1,2,2,2,2,1,2,2;DATA223,2,2,1,1,1,1,3,2;DATA323,1,4,2,1,1,2,2,3;DATA421,2,2,3,3,1,2,2,2;DATA523,3,3,1,1,1,2,2,4;DATA623,1,3,1,1,2,2,2,2;DATA824,4,4,2,1,2,1,2,2;DATA923,2,3,2,1,1,3,1,3。最后得到知识库由上述两套模板所组成。2.4 本系统的模式识别方法在本次设计过程中,我们选择了模板匹配的识别方法。通过计算欧氏距离来衡量匹配程度。本系统中的特征矢量有9个分量,其计算距离公式如下: 公式(2.1)但在本次设计中我们计算距离时对上述公式进行了a改进,对于可靠性较高的端点数即最后一维特征值加大了权重,改进后的距离计算公式如下: 公式(2.2)在识别过程,分别计算待识别图像的特征值与知识库中两个模板的距离,与10个数字逐个比较,距离最小的对应的数字就是最后识别结果。该算法具有特征提取和模板建立都比较直观,时间复杂度低,易于实现等优点。其缺点是在建立知识库时需要进行大量的训练,当知识库中的模板增多时,特征矢量间的距离会减小。3 MATLAB程序设计本次设计使用MATLAB语言实现该系统,其用户界面分别介绍如下。(1) 读入图像:读入图像的用户界面如图3.1所示。图3.1 读入图像(2)对图像进行各种处理:选择对图像的各种操作的用户界面如图3.2所示,对图像取反的用户界面如图3.3所示,对图像平滑去噪的用户界面如图3.4所示,对图像进行二值化操作的用户界面如图3.5所示,对图像进行规范化处理的用户界面如图3.6所示,对图像进行细化操作的用户界面如图3.7所示,图3.2 选择对图像的各种操作 图3.3 图像取反图3.4 平滑去噪图3.5 二值化图3.6 规范化图3.7 细化(3)数字图像的识别:对手写体数字进行识别的结果显示界面如图3.8所示。图3.8识别结果显示在上述界面中, 系统可根据用户对识别结果正误的选择,自动计算识别率, 识别率结果显示在图像界面上方。4 实验结果及分析在实验过程中我们以两组样本作为训练样本对知识库的参数进行调整,这两组训练样本分别为100个规范手写体样本和100个自由手写体样本,规范手写体样本训练结果如表4.1所示,自由手写体样本训练结果如表4.2所示。表4.1 规范手写体训练结果数字类别正识样本数误识样本数识别率0100100%1100100%29190%39190%49190%59190%6100100%7100100%8100100%99190%合计95595% 表4.2 自由手写体训练结果数字类别正识样本数误识样本数识别率0100100%1100100%28280%39190%49190%58280%6100100%7100100%8100100%99190%合计93793%在测试实验中,我们以200个规范手写体和200个自由手写体共两组样本作为测试样本,识别实验结果分别如表4.3,4.4所示。表4.3 规范手写体识别实验结果数字类别正识样本数误识样本数识别率0200100%1200100%217385%318290%418290%517385%618290%7200100%819195%918290%合计1851592.5%由上表可以看出,本系统对规范的手写体有较好的识别效果,识别率达到92.5%。表4.4 自由手写体识别结果数字类别正识样本数误识样本数识别率019195%1200100%216480%318290%418290%517385%618290%7200100%819195%917385%合计1821891由上表所示,字符2和5的误识率较高,常误识别为对方数字,对待识别数字要求严格,这是由于它们的标准特征向量距离较小,需要通过增添标准库或参数调整对此情况进行改进。5 结论本文对自由手写体数字识别的基本原理及方法作了介绍,并用MATLAB工具实现了自由手写体数字识别系统。实验结果表明,基于所用结构模型和知识库的识别方法对规范手写体数字是可行的,具有较高的识别率及较好的抗噪性能,也可以识别一定条件下的自由手写体数字。为了提高识别率和可靠性,除了要增强对噪声的滤除能力外,还要增大知识库,以解决细化中出现的结构畸变问题,这些都有待我们进一步的研究。