07032302 BP神经网络在模式识别中的应用 贺骏鹏(6)

2020-04-21 00:11

哈尔滨学院本科毕业论文(设计)

成了一定的困难,所以我们需要对图像进行去噪处理使模糊的图像变得清晰起来。用MATLAB的函数medfilt2()对图像进行平滑去噪。平滑去噪后的图像如图3-7所示。

图3-7 平滑去噪后的图像

⑸ 倾斜调整

因为通过扫描或其它方法得到的图像可能存在倾斜,所以必须对它进行调整,使得字符都处于同一水平位置,那样即便利字符的分割也可以提高字符识别的准确率。本文采用调整的算法主要是根据图像上左右两边的黑色像素的平均高度来的。一般来说,众多的字符组成的图像它的左右两边的字符像素的高度应该是处于水平位置附近的,如果两边字符像素的平均位置有比较大的起落,那就说明图像存在倾斜,需要进行调整。整体倾斜调整后的图像如图3-8:

图3-8 倾斜调整后的图像

⑹ 字符分割

由于需要识别的图像中往往会含有多个字母,识别的时候只能一个个字母进行识别,所以还要进行字符分割。这一步工作就是把图像中的每个字母独立的分割出来。

本文仅考虑每个字母都独立的情况,也就是不存在字符交叉的情况,所以采用的算法如下:

第一步,先自下向上对图像进行逐行扫描直至遇到第一个黑色的像素点。记录下来。然后再由上向下对图像进行逐行扫描直至找到第一个黑色像素,这样就找到图像大致的高度范围。

第二步,在这个高度范围之内在自左向右逐列进行扫描,遇到第一个黑色像素时认为是字符分割的起始位置,然后继续扫描,直至遇到有一列中没有黑色像素,则认为这个字符分割结束,然后继续扫描,按照上述的方法一直扫描直至图像的最右端。这样就得到了每个字符的比较精确的宽度范围。

第三步,在已知的每个字符比较精确的宽度范围内,按照第一步的方法,分别进行自上而下和自下而上的逐行扫描来获取每个字符精确的高度范围。图3-9为字符分割后的示

17

哈尔滨学院本科毕业论文(设计)

意图,外框为人为添加。

图3-9 字符分割后的图像

⑺ 归一化

我们在进行数字图像识别的时候,只关心图像中心的数字部分,而不关心其周边的空白部分,所以我们对图像进行归一化。如图3-10:

图3-10 归一化后的图像

将其调整成更规则的图像显示,紧缩重排后的图像如图3-11:

图3-11 紧缩重排后的图像

3.4.2 特征提取

特征提取工作是手写体数字识别最重要的组成部分之一。从特征提取得到的特征向量是最原始的输入值,是网络训练和字体识别的基础依据。

特征提取和特征选择的基本任务是研究如何从众多的特征中求出那些对分类识别最有效的特征,进而实现特征空间维数的压缩。在一个较为完善的模式识别系统中,特征提取和特征选择通常介于对象特征数据采集和分类识别两个环节中间,所提取和选择的特征的优劣直接影响着分类器的设计和性能。在样本数目不是很多的情况下,用很多特征进行分类器的设计,无论从计算的复杂程度还是分类器的性能来看都是不合适的,因此,研究如何把高维的特征压缩到低维的特征,以便有效的设计分类器就成为一个重要的问题,这也是模式识别中的一个关键问题。

特征向量的提取方法多种多样,对于手写体数字的特征提取,通常用的方法有逐像素特征提取法、结构特征法和统计特征提取法等方法。本文采用13点特征提取方法:

13点特征提取方法的总体思路是:首先把字符平均分成8份,统计每一份黑色像素点的个数作为8个特征。分别统计这8个区域中的黑色像素的数目,可以得到8个特征。然后统计水平方向中间两行和垂直方向中间两列的黑色像素点的个数作为4个特征,最后统

18

哈尔滨学院本科毕业论文(设计)

计所有黑色像素点的个数作为第13个特征。经过图像的灰度化、二值化、平滑、分割、归一化等一系列的预处理操作之后,原来大小不同,分布不规律的各个字符变成了大小相同,排列整齐的字符,接下来就要从被处理完毕的字符中,提取最能体现这个字符特点的特征向量。将提取出训练样本中的特征向量代入到网络之中就可以对网络进行训练,然后提取出待识别的样本中的特征向量代入到训练好的网络中,就可以对字符进行识别。

图3-12是“D”的八等分图,通过图3-13可以得到“D”的前8个特征,图3-13是水平扫描和垂直扫描图像的示意图,通过图中可以得到“D”的水平和垂直各2个特征,加上总像素,共13个特征,从而通过一系列预处理,利用特征提取,得到图片3-3中“D”的特征向量为[7,5,4,3,5,3,5,0,2,2,2,3,31]。

图3-12 8等分提取特征向量示意图 图3-13水平、垂直扫描提取特征向量示意图

3.4.3 神经网络结构参数的选择与确定

⑴ 输入层神经元个数和输出层神经元个数的确定

网络的输入层神经元个数和输出层神经元个数根据应用的具体要求来设定,输入层节点数目取决于数据的维数,如本系统采用13点特征提取法,且像素为8×16,所以输入层神经元的个数为13个。因为要识别26个字母,因此一般输出选择为26×1的矩阵,输出层神经元个数为26,分别对应A~Z,即当字母图像A~Z输入神经网络后在输出神经元对应的位置上为1,其他的位置为0。

⑵ 隐层数

一般认为,增加隐层数可以降低网络误差,提高精度,但也使网络复杂化,从而增加了网络的训练时间和出现“过拟合”的倾向。Hornik等早已证明:若输入层和输出层采用线性转换函数,隐层采用Sigmoid转换函数,则含一个隐层的MLP网络能够以任意精度逼近任何有理函数。显然,这是一个存在性结论。在设计BP网络时可参考这一点,应优先考虑

19

哈尔滨学院本科毕业论文(设计)

3层BP网络(即有1个隐层)。一般地,靠增加隐层节点数来获得较低的误差,其训练效果要比增加隐层数更容易实现。

⑶ 隐层节点数

在BP网络中,隐层节点数的选择非常重要,它不仅对建立的神经网络模型的性能影响很大,而且是训练时出现“过拟合”的直接原因,但是目前理论上还没有一种科学的和普遍的确定方法。目前多数文献中提出的确定隐层节点数的计算公式都是针对训练样本任意多的情况,而且多数是针对最不利的情况,一般工程实践中很难满足,不宜采用。事实上,各种计算公式得到的隐层节点数有时相差几倍甚至几十倍。为尽可能避免训练时出现“过拟合”现象,保证足够高的网络性能和泛化能力,确定隐层节点数的最基本原则是:在满足精度要求的前提下取尽可能紧凑的结构,即取尽可能少的隐层节点数。研究表明,隐层节点数不仅与输入、输出层的节点数有关,更与需解决的问题的复杂程度和转换函数的型式以及样本数据的特性等因素有关。

在确定隐层节点数时必须满足下列条件:

1.隐层节点数必须小于N-1(其中N为训练样本数),否则,网络模型的系统误差与训练样本的特性无关而趋于零,即建立的网络模型没有泛化能力,也没有任何实用价值。

2.训练样本数必须多于网络模型的连接权数,一般为2-10倍,否则,样本必须分成几部分并采用“轮流训练”的方法才可能得到可靠的神经网络模型。

总之,若隐层节点数太少,网络可能根本不能训练或网络性能很差;若隐层节点数太多,虽然可使网络的系统误差减小,但一方面使网络训练时间延长,另一方面,训练容易陷入局部极小点而得不到最优点。

3.4.4 仿真结果

对采集的手写字母样本进行特征提取之后,分为训练样本和测试样本,训练样本用来训练网络并建立分类器模型,测试样本用来分析网络模型的分类精度和泛化能力。根据上一节的分析:BP网络选择三层结构,隐含层节点选择25,训练最大步数3000,训练学习率0.05,显示网格数26,隐含层激励函数选择Logsig函数,使用函数traingdx进行训练,训练网络的收敛程度如图3-14所示,可以看出:训练步数为254步,达到了收敛误差要求。

20

哈尔滨学院本科毕业论文(设计)

图3.14 BP网络的训练过程

BP网络建立好以后,我们用50个测试样本和50个训练样本对训练好的BP网络进行识别研究,训练样本的识别率为90%,测试样本的识别率为78%。建立好的BP网络已经对训练样本进行了自学习,故网络模型对训练样本的识别较高,由于手写体字母的变动性较大,随意性较强,很多字体容易混淆,故造成测试样本的识别率较低。

21


07032302 BP神经网络在模式识别中的应用 贺骏鹏(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:小学科学《茎的作用》教案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: