基于BP算法的数字字符识别技术的研究

(整期优先)网络出版时间:2019-07-06
/ 2
    摘  要 本文描述了数字字符识别的过程和步骤。采用带有动量项和自适应学习率的反向传播算法的人工神经网络来训练、识别理想信号和含有噪声信号的数字字符。通过比较测试结果得出对同一网络使用理想信号又使用带有噪声的信号对网络进行训练可使系统具有更强的容错性。

    关键词 神经网络;BP算法;有噪声的数字字符识别


1 引言

    数字识别技术是图像处理领域中的一个重要研究方向。是计算机应用领域中的热点之一。它又分为在线手写体识别和离线手写体识别。前者系统通过记录手写数字的抬笔、落笔、笔迹上各像素的空间位置,以及各笔段之间的时间关系等信息,对这些信息进行处理,在处理过程中,系统以一定的规则提取信息特征,再由识别模块将信息特征与识别库的特征进行比较、加以识别,最后转化为计算机所使用的文字代码。后者相对于前者没有笔划信息,因此难度更大、应用更广泛,如银行票据、工商报表、财务报表、统计报表等各种表格系统,是目前研究的一个重点,也是一个难点。本文将介绍如何用神经网络反向传播算法(BP算法)实现离线手写体数字的识别。

2 BP算法实现手写数字的简单流程

    利用BP算法实现数字识别的简单流程为“预处理“和“BP字符识别”具体如图1所示。

1442127269.jpg

图1  BP数字识别

    数字识别的前提工作是将视觉图像转化为可由计算机处理的二值图像,即用给定阈值法把图像中的像素根据一定标准化为两种颜色。但二值化的图像在很多情况下字体模糊,或出现杂乱散布的白点或黑点,给识别造成一定的困难,可采用梯度锐化的方法对图像进行锐化,使模糊的图像变的清晰,同时可以对噪声起到一定的去除作用。

    由于识别时只能根据每个数字字符的特征进行判断,所以对锐化后的二值图像还需分割成单个的字符,对字符进行细化。常用的脱壳算法,即从字符的边界逐层移去黑点,直到寻找到一个集合,此集合与其边界相重合(即厚度为1或2)。为了对任意字符的特征提取,还需要对数字字符进行规范化处理,即把字符的尺寸变换成统一大小,字符位置(旋转、平移)纠正。不少人认为把每个字符图像规一化为5×9像素二值图像是最理想的,因为图像的尺寸越小,识别速度就越高,网络训练也越快。而实际上,相对于要识别的字符图像,5×9像素图太小了。规一化后,图像信息丢失了很多,这时进行图像识别,准确率不高。实验证明,将字符图像规一化为10×18像素二值图像是现实中比较理想的。从被分割处理完毕的字符中,提取最能体现这个字符特点的特征向量,代入BP网络之中,对网络进行训练。然后提取出待识别的的样本中的特征向量代入到训练好的BP网络中,就可以对字符进行识别。常用的特征向量的提取方法有逐像素提取法、骨架特征提取法、垂直方向数据统计提取法等。本实验采用的是逐像素提取法。

3 BP神经网络进行数字识别

3.1 BP神经网络结构与描述

    BP网络是一种单向传播的多层前向网络。网络除输入输出节点外,还有一层或多层的隐层节点,同层节点中没有任何耦合。输入信号从输入层节点依次传过各隐层节点,然后传到输出节点。每一层节点的输出只影响下一层节点的输出。其节点单元特性(传递函数)通常为Sigmnid型 1442133160.jpg,其中,a为 Sigmnid的斜率参数,通过改变参数a,会获得不同斜率的Sigmnid函数。

    BP算法的基本思想是:对于一个输入样本,经过权值、阈值和激活函数运算后,得到一个输出,然后让它与期望的样本进行比较,若有偏差,则从输出开始反向传播该偏差,进行权值、阈值调整,使网络输出逐渐与希望输出一致。由此,BP算法是基于最速下降法的,由于最速下降法的固有缺点:易陷入局部极小、收敛速度慢和引起振荡效应,本文在调整权值时使用了增加动量法,该方法加速了收敛速度,并在一定程度上减少了陷入局部极小的概率,但也不能完全克服上述缺点。为了加快收敛速度,还使用了自适应学习率。

3.2 神经网络的设计和训练

    将要识别的目标是从0到9的10个数字字符。每个字符被分成5×7的小块进行数字化,分别用一个向量来表示。1 0个含 35个元素的输入向量被定义为一个输入向量矩阵,向量代表某个字母,其相应有数据的位置值为 1,而其他位置值为0。共有两类这样的数据作为输入:一类是在理想的状态下的信号;另一类是用随机方式生成含有噪声的信号。对网络进行快速训练,学习速率初始值选在0、01——0、7之间。连接权值取(-1,1)之间的随机数,期望误差的初始值为(0,1)之间的随机数。

    网络通过输出一个具有1 0个元素的输出向量来区分这些数字字符,例如字符1对应的向量,其第一个位置的元素值为 1,而随后位置的元素值都是0。确定好输入输出后可进行网络结构的设计。第1层为输入层,根据以上待识别的数据分析可确定神经网络输入层有3 5 个节点;第2层为隐含层,常规的确定方法是输入层接点的两倍,但依靠经验和尝试的方法来确定节点数目,通过对不同结构网络的误差测试确定本系统隐层结点为10个节点,参见表1。

表1  不同隐含层对含有噪声的信号训练及测试误差表

隐层神经元数目

训练误差

测试误差

5

0.099121

0.308258

10

0.098804

0.129052

15

0.099700

0.225840

第3层为输出层,由目标输出为含有10个数据的向量可知该层有10个节点。隐层和输出层的激活函数均为Sigmnid,即对数S型函数网络结构如图2所示。

1442138163.jpg

图2  对数S型函数网络结构


    寻找合适的训练方法,结果发现随着样本数的增加,单独采用B P法 或自适应学习率B P法训练结果并不理想,而兼有自适应学习率和动量项的B P算法的训练效果很好,所以采用这种训练函数来训练神经网络。为了使产生的网络对输入向量有一定的容错能力,最好的办法是既使用理想的信号又使用带有噪声的信号对网络进行训练。因此本实验中,第1次只使用15组理想信号对网络进行训练;而第2次先使用1 5组 带有噪声的信号再使用1 5组理想信号对同一网络进行训练。其中采用了1 0种递增的噪声信号,这是通过对理想信号字母表加入平均值为0 标准差从0 .05到 0 .5变化的噪声来得到的。网络训练的误差变化情况如图3所示。

1442144504.jpg

图3  无噪声训练过程误差变化情况

    观察这些曲线可知训练指标能在很快的时间内达到。

    同时,在使用不同级别的噪声信号情况下,分别对0到9这10个数字进行了100次测试,网络识别错误率与噪声信号的关系曲线如图4所示。

1442143309.jpg

图4  识别错误率曲线

    图4中虚线是未经误差训练的网络的错误识别率曲线,实线是经误差训练的网络的错误识别率曲线。从图4中可以看出经过误差训练的网络的容错性大大提高。

4 实验结果及分析

    基于 BP 神经网络的识别方法,将整个字符直接作为神经网络的输入。选取了500个数字字符,其中 200 个作为训练样本, 剩余的样本作为测试数据。测试的实验结果见表2。


表2

项目

总样本数

识别数

误识数

拒识数

识别率

误识率

拒识率

训练样本

200

200

0

0

100%

0%

0%

测试样本

300

282

9

9

94%

3%

3%


    实验结果表明:基于神经网络的字符识别方法具有较强的容错性和很强的自适应学习能力,所以是一种较好的识别方法。

参考文献

[1] 边肇祺.模式识别.北京:清华大学出版社.2002

[2] 杨淑莹.图像模式识别------VC++技术实现.清华大学出版社.2005

[3] 陈咏梅.前馈网络模式识别预处理方法在手写体数字识别中的应用.北京: 中科院半导体所.1995

[4] 杨勇,谢刚生.基于神经网络的手写数字识别.华东地质学报,2003,26(4):383-386 .

[5] MICHAELWRoth. SurveyofNeural Network Technologyfor Automatic Target Recognition .IEEE Trans Neural Networks, 1990, 1( 1) : 28- 43