您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 基于BP神经网络手写体数字识别报告
基于BP神经网络的手写体数字识别系统设计姓名:专业:通信与信息系统学号:一综述1.引言近年来人工智能技术飞快发展,数字识别技术就是其中一个非常重要的分支,它在现实生活中的应用越来越广泛。比如在大规模数据统计中的应用,在财务、税务、金融领域中的应用,在邮件分拣中的应用等。这使得手写体数字识别技术成为目前信息技术的研究热点,但同时它也是研究难点。第一,不同数字之间字形相差不大,使得准确区分某些数字相当困难;第二,数字虽然只有十种,而且笔划简单,但同一数字写法千差万别,全世界各个国家各个地区的人都用,其书写上带有明显的区域特性,很难完全做到兼顾世界各种写法的极高识别率的通用性数字识别系统。但在实际的应用中往往要求识别系统具有非常低的错误率,这使得手写体数字的识别技术的实现非常困难。2.手写体数字识别的现状手写体数字识别时,首先将印在纸上的数字经过光电扫描产生模拟信号,再通过模数转换变成表示灰度值的数字信号输入计算机。纸张薄厚、洁白度、书写力度和笔划质量都要造成字形的变化,产生污点、飞白、断笔、交连等干扰。因此,一般由扫描得到的数值化的字符还需要多种进一步的处理。经过国内外科学家的研究得出结果,一般在输入手写体之后,首先需对图像进行预处理,为特征提取做好准备。特征提取一般是基于统计的特征选择方法和基于结构的特征方法进行分析。近年来,国内的一些专家学者研究出很多新型的特征提取方法,更有利于精确地识别手写体数字。根据基于字符整体特征的快速分类方法对手写体能较灵活的进行识别。其原理是根据字符结构提取其凹凸特征。首先,找出字符存在的圈,对于书写时产生的无效圈设定一定的阀值进行判别,把无效圈直接置为字符前景(像素点设为黑色)。然后,找出字符的凹陷区,如果图像上连接任意两点的直线都属于该图像.那么该图像为凸图像;如果连接图像上两点的直线有部分不属于该图像,那么该图像为凹图像。其中不属于图像部分所在的区域即为图像的凹陷区。最后,再将字符的凹陷区进一步区分为左、右凹陷区。通过上述的字符处理过程,就得到了以字符有效圈、左右凹陷为判断依据的凹凸特征。另一种新型的特征提取方法为13点特征提取法。其总体思路是:13点特征提取方法的总体思路是:首先把字符平均分成8份,统计每一份黑色像素点的个数作为8个特征。分别统计这8个区域中的黑像素的数目,可以得到8个特征。然后统计水平方向中间两行和垂直方向中间两列的黑色像素点的个数作为4个特征,最后统计所有黑色像素点的个数作为第13个特征。在特征提取之后,选择一种神经网络对手写体数字进行识别。T.F.Pawlicki将多层BP等多种神经网络用于识别手写体数字的实验,在比较实验结果之后,证实了多层网络的分类能力要比其它几种网络好,它在一定的字符集上取得了很好的识别效果。神经网络虽已在许多领域应用中取得了广泛的成功,但其发展还不十分成熟,还有一些问题需进一步研究和拓展。首先,神经计算的基础理论框架以及生理层面的研究仍需深入。其次,我们应该努力的拓宽神经网络领域,研究新型的网络,目前,除了传统的多层感知机、径向基函数网络、自组织特征映射网络、自适应谐振理论网络、模糊神经网络、循环神经网络之外,一些新的模型和结构很值得关注,例如最近兴起的脉冲神经网络(spikingneuralnetwork)和支持向量机(supportvectormachine)。而延伸到神经网络之外的技术,神经计算技术与其他技术尤其是进化计算技术的结合以及由此而来的混合方法和混合系统,正成为一大研究热点。从目前的研究不难预测,神经网络的应用领域将不断扩大,在未来的几年中有望在一些领域取得更大的成功,特别是多媒体技术、医疗、金融、电力系统等领域。3.本课题主要内容通常实现手写体数字识别技术的方法有很多种,比如说Fisher线性判别方法,最小风险贝叶斯判别方法,朴素贝叶斯判别方法,神经网络方法等。这些方法都可以实现手写体数字的识别,本课题是采用后向传播(BP)神经网络算法,先用MATLAB自带的函数im2bw把输入的数字图像二值化处理,然后取得图片数字部分的最大行列和最小行列,对图片进行实际大小的裁剪,为接下来的归一化做铺垫,将图片统一成7*5大小,取得图像的矩阵特征值,输入到设置好的BP网络中,让网络学习,并保存网络,最后用sim函数仿真识别。运行程序后,训练好的神经网络对输入的数字进行识别。但是有时识别同一数字图片后所得出的结果会不相同,训练网络的时长,精确度也不相同。由此我们可以得出神经网络具有不稳定性和局限性,同时很多因素都能影响网络,比如加入噪声,所以神经网络仍需要人们进一步的研究。二BP神经网络1.神经网络定义神经网络是由多个神经元组成的广泛互连的神经网络,能够模拟生物神经系统真实世界及物体之间所做出的交互反应.人工神经网络处理信息是通过信息样本对神经网络的训练,使其具有人的大脑的记忆,辨识能力,完成名种信息处理功能.它不需要任何先验公式,就能从已有数据中自动地归纳规则,获得这些数据的内在规律,具有良好的自学习,自适应,联想记忆,并行处理和非线性形转换的能力,特别适合于因果关系复杂的非确定性推理,判断,识别和分类等问题.对于任意一组随机的,正态的数据,都可以利用人工神经网络算法进行统计分析,做出拟合和预测.基于误差反向传播(Backpropagation)算法的多层前馈网络(Multiple-layerfeedforwardnetwork,简记为BP网络),是目前应用最成功和广泛的人工神经网络。2.BP模型基本原理学习过程中由信号的正向传播与误差的逆向传播两个过程组成.正向传播时,模式作用于输入层,经隐层处理后,传入误差的逆向传播阶段,将输出误差按某种子形式,通过隐层向输入层逐层返回,并“分摊”给各层的所有单元,从而获得各层单元的参考误差或称误差信号,以作为修改各单元权值的依据.权值不断修改的过程,也就是网络学习过程.此过程一直进行到网络输出的误差准逐渐减少到可接受的程度或达到设定的学习次数为止.BP网络模型包括其输入输出模型,作用函数模型,误差计算模型和自学习模型.BP网络由输入层,输出层以及一个或多个隐层节点互连而成的一种多层网,这种结构使多层前馈网络可在输入和输出间建立合适的线性或非线性关系,又不致使网络输出限制在-1和1之间.3.BP算法实现BP网络包括其输入输出模型、作用函数模型、误差计算模型和学习模型。(1)节点输出模型隐节点输出模型:)*(jiijjqXWfO输出节点输出模型:)*(kjjkkqOTfYf-非线形作用函数;q-神经单元阈值。(2)作用函数模型作用函数是反映下层输入对上层节点刺激脉冲强度的函数又称刺激函数,一般取为(0,1)内连续取值Sigmoid函数:)1/(1)(xexf(3)误差计算模型误差计算模型是反映神经网络期望输出与计算输出之间误差大小的函数:2*)(2/1pipiOtEpitpi节点的期望输出值;iOpi节点计算输出值。(4)自学习模型神经网络的学习过程,即连接下层节点和上层节点之间的权重拒阵Wij的设定和误差修正过程。BP网络有师学习方式-需要设定期望值和无师学习方式-只需输入模式之分。自学习模型为)(***)1(nWaOhnWijjiijh学习因子;i输出节点i的计算误差;jO输出节点j的计算输出;a动量因子。三手写体数字识别系统设计1.系统整体介绍及程序设计流程图该系统使用自建样本库,应用BP神经网络算法对样本进行训练识别。系统分为预处理、特征提取、分类器三部分。其中,预处理包括数据的读取,灰度转换,二值化,去噪,然后得到特征值,分类器的设计是整个系统的核心部分。具体程序流程图如下:2.系统实现过程(1)预处理该系统使用自建数据库作为训练数据,即一副写有50个手写体数字的图像,前四十个用来训练,后十个用来预测检测系统性能。载入手写数字后,系统首先进行预处理,预处理包括以下几个部分:灰度化,即将原始标准RGB图像转换为单一值的灰度图像,由于R,G,B的取值范围是0-255,所以灰度的级别只有256级,即灰度图像仅能表现256种颜色灰度。该实验系统使用rgb2gray函数进行灰度变换;二值化,图像中的每个象素的灰度值大小决定了象素的亮暗程度。需要对灰度样本图像进行二值化处理,以便开展后面面的图像处理操作。图像的二值化就是根据一定的标准把图像中的象素分成黑白两种颜色。该系统使用im2bw函数对灰度图像进行二值化;裁剪,将50个手写数字从整幅图中裁剪出来,该过程的实现主要是使用区域特征提取函数regionprops来实现,裁剪后的图像是二值化图像,然后再对每一读入原始图片片特征提取取预处理理利用BP网络训练数据预测测个数字进行边缘裁剪。经过预处理原始图像变化过程为:灰度化二值化(2)特征提取在特征输入方面,总的来说可以分为两类。一类是将原始像素灰度值作为神经网络的输入;另一类是通过结构特征和统计特征原理,提取一系列数字字符的特征,然后通过特殊的特征选择方法选择有效的特征构成一个有效的多维的特征集合。用原始的像素灰度值作输入,有点显而易见,就是保留了数字字符图片的所有信息。缺点是,输入的特征维数很大,加大了神经网络的复杂度,表现为需要建造更庞大的网络,分类器的训练所需要的数据量以及判别一个分类器的好坏所需要的数据量都随着所用特征量的数目呈指数增长I冽。第二类方法,优点是有效的降低了输入的特征维数,降低了神经网络的复杂度,提高了学习效率。但是,提取到的特征很难讲对所有的手写数字类型都适用,即使是多种较好的特征的集合也未必能显著提升分类器的性能。而且进一步抽取新的有效特征十分困难。从实验来看,这种方法的识别效果通常是不尽如入意,难以达到实用的价值。该系统在对每幅单个手写体图像进行边缘裁剪后,将裁剪后的二值图像转换成了5*7即35维的特征向量,即使用了第二类的方法,转换过程实现如下:bw_7050=imresize(bw2,[70,50]);forcnt=1:7forcnt2=1:5Atemp=sum(bw_7050((cnt*10-9:cnt*10),(cnt2*10-9:cnt2*10)));lett((cnt-1)*5+cnt2)=sum(Atemp);endendlett=((100-lett)/100);lett=lett';该系统没有采用二值化特征向量,而是根据占据空格面积大小作为特征值。特征提取后图片变化为:裁剪边缘的二值化图像提取特征后图像(3)利用BP网络训练数据该系统使用两层BP神经网络对样本数据进行训练,网络单输入单输出,每层网络包含十个隐含层,其训练过程流程图为:否是3.系统结果分析(1)当使用自建数据库中的图像,即原图像中用来预测的十个手写数字,系统误差率很低,预测结果如下:原始数字预测结果但是当重新建立数据库时,其预测准确率将会有所下降,经分析其主要原因是由于所新建的手写体数据库图片较之系统自建手写体数据库图片的分辨率有所差别,从而在经过图片预处理后,得到的特征向量会有所不同,因为该系统并非使用二值化特征向量,从而造成了其预测准确率的下降。(2)当改变BP神经网络隐层个数时,比如说从10改到5,理论分析系统误差率会有所下降,但实际得到结果却是误差率有所下降,经分析造成原因主要设定误差率随机设定权值进行BP训练更新权值计算误差率得到预测权值值误差率大于0.01?停止训练练是所建数据库太小,即包含的训练样本太小,使得其泛化能力很差,应适当将数据库扩大再用BP神经网络进行训练,可以降低其误差率。四手写体数字技术展望随着国家信息化进程的加速,手写数字识别的应用需求将越来越广泛,因此应当加强这方面的研究工作。应用系统的性能的关键与瓶颈仍然在于手写数字识别核心算法性能上,最终目标是研究零误识率和低拒识率的高速识别算法。除了本系统应用BP神经网络算法实现了手写体数字识别外,还有其他方法可以实现,比如说Fisher线性判别系统,最小风险贝叶斯判别系统等,每种方法的实现原理不一样,但都是训练与预测的过程,都可以实现手写体数字系统的识别。
本文标题:基于BP神经网络手写体数字识别报告
链接地址:https://www.777doc.com/doc-5171798 .html