预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

基于BP神经网络的数字识别探讨 2010-12-15 基于BP神经网络的数字识别探讨 [摘要]数字识别是当今模式识别领域中重要研究方向之一,而对手写数字体的识别更是具有广阔的应用前景。文章基于BP神经网络对如何进行数字识别进行了相关探讨。通过MATLAB仿真实验表明,基于BP神经网络的手写数字体识别可以取得较好效果。 [abstract]NumberIdentificationisanimportantresearchfieldofpatternrecognition,andthehandwritingrecognitionhasbroadapplicationprospects.ThearticleisbasedonBPneuralnetworktoidentifyhowtocarryouttherelevantfiguresdiscussed.ByMatlabsimulationshowsthatbasedonBPneuralnetworkhandwritingrecognitioncanachieveagoodresults. [关键词]数字识别;模式识别;BP神经网络 [keywords]Numberrecognition;Patternrecognition;BPneuralnetwork 数字识别广泛应用于汽车牌照的数字自动识别和成绩单的识别以及表格中的数字识别等。项目涉及到交通、银行、教育和邮政等领域。实现数字的自动识别给人们提供了很大的方便。数字识别的算法较多,当前运用较好的主流算法以统计、神经网络和聚类分析的识别算法为主,如误差反向传播算法、支持向量机算法、自组织映射以及径向基函数等等。人工神经网络的基本特征为非线性映射、学习分类和实时优化,因此它为模式识别、非线性分类等研究开辟了新的途径。BP神经网络是一种典型的人工神经网络,有着广泛的应用。本文利用BP神经网络进行手写数字识别系统的研究。 1BP神经网络概述 BP神经网络又称误差反向传递神经网络。它是一种依靠反馈值来不断调整节点之间的连接权值而构建的一种网络模型。它的整个体系结构如图1所示,分为输入层、隐藏层和输出层,其中隐藏层根据具体情况的需要,可以是一层结构也可为多层结构。BP算法的基本思想是:学习过程由信号的正向传播与误差的反向传播两个过程组成。正向传播时,输入样本从输人层传人,经各隐藏层逐层处理后,传向输出层。若输出层的实际输出与期望的输出(教师信号)不符,则转入误差的反向传播阶段。误差反传是将输出误差以某种形式通过隐藏层向输入层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。这种信号正向传播与误差反向传播的各层权值调整过程,是周而复始的进行的。权值不断调整的过程,也就是网络的学习训练过程,此过程一直进行到网络输出的误差减少到可以接受的程度,或进行到预先设定的学习次数为止。 图1BP神经网络体系结构 2BP神经网络的数字识别 BP神经网络数字识别过程由图像预处理和数字识别组成。图像预处理对图像进行一系列的变换后把最后提取到的样本的特征向量送到数字识别系统中,然后进行识别并给出结果。BP神经网络的数字识别过程如图2所示。 特征提取 BP神经网络训练 预处理 训练样本读入 期望输出 图2BP神经网络识别过程 2.1图像的预处理 图像预处理是图像问的变换处理,是图像分析的前期准备,目的是使图像中描述客体特征的图像更加简练、独特性更强、信息少而唯一。本文对手写数字图像样本进行了灰度化处理、二值化处理、去离散噪声、归一化调整等预处理。其中二值化处理利用graythresh函数得到图像的全局阈值,然后使用im2bw将灰度图像转换为二值图像。程序代码为: Threshold=graythresh(fig_gray); Fig_bool=im2bw(fig_gray,threshold); 其中fig_gray和fig_boo1分别为灰度图像的存储矩阵和二值化图像的存储矩阵。归一化处理将图片归一化为20×36像素点阵图。 2.2特征提取 在模式识别中,特征的选择是一个关键问题。将经过预处理后的数字图像中提取最能体现这个字符特点的特征向量,然后提取出训练样本中的特征向量代入BP网络之中就可以对网络进行训练,提取出待识别的样本中的特征向量代入训练好的BP网络中,就可以对字符进行识别。本文采用逐像素特征提取方法提取数字样本的特征向量。归一化后的图像形成一个36×20的布尔矩阵,依次取每列的元素转化为720×1的列矩阵,即数字字符的特征向量。 用matlab命令实现为:characteristic_vecotr=fig_bool_normalized(:); 其中fig_boo