《手写数字识别系统的设计与实现》14000字【论文】_第1页
《手写数字识别系统的设计与实现》14000字【论文】_第2页
《手写数字识别系统的设计与实现》14000字【论文】_第3页
《手写数字识别系统的设计与实现》14000字【论文】_第4页
《手写数字识别系统的设计与实现》14000字【论文】_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

手写数字识别系统的设计与实现目录1.前言 11.1课题背景 11.2简介 11.3字符识别的目的 21.4字符识别技术的现状及发展局势 21.5课题整体结构 41.6课题难点分析 41.7本文研究的主要内容 52.系统 62.1MATLAB介绍 62.2MATLAB的特点 63.人工神经网络 73.1BP神经网络 73.1.1BP神经网络的网络模型 73.1.2BP学习算法的流程 73.2神经网络在模式识别问题上的优势 84.字符识别常规预处理和特征提取方法 104.1字符识别的识别过程 104.2字符识别的常规预处理方法 104.2.1图像的灰度化 114.2.2二值化 114.2.3平滑去噪 124.2.4书写的倾斜矫正 124.2.5数字图像分割 134.2.6图像的归一化处理 134.2.7图像的细化 144.2.7预处理小结 144.3特征提取 145.基于BP算法的手写数字识别系统的实现 165.1基于BP神经网络字符识别的过程 165.2样本准备 165.2.1灰度化 175.2.2二值化 175.2.3平滑去噪 175.2.4数字图像归一化 185.2.5细化 185.3特征提取 185.4神经网络结构参数的选择与确定 195.4.1输入层神经元个数和输出层神经元个数的确定 195.4.2隐层数 195.4.3隐层节点数 195.5仿真结果 206.总结 27参考文献 29

1.前言1.1课题背景几千年来,数字技术在世界上得到了广泛的应用。然而,在当今社会,如何快速、高效地将数字输入计算机,已成为影响人机效率的重要瓶颈,也关系到计算机能否在我国真正普及和应用。手写体字符识别的研究取得了一些成果手写体数字识别是光学字符识别的一个分支。研究如何利用计算机自动识别书写在纸上的阿拉伯数字。在整个OCR领域中,最困难的是脱机手写字符的识别。到目前为止,人们对脱机手写字符识别的研究虽然取得了许多可喜的成果,但离实际应用还很遥远。在这个方向上,经过多年的研究,研究人员已经开始将其推广到各种实际应用中,为高速自动输入书写数据提供了解决方案。字符识别的信息可以分为两类:一种类型是文本信息,主要利用不同国家和民族的文字(如汉字、英语等)来抽取或打印文本信息。目前,印刷技术和在线手写技术已经成熟,并引入了许多应用系统;另一种类型是数据信息,主要由阿拉伯数字和少量特殊符号组成,如邮政编码、统计报表、财务报表、银行票据等,处理这类信息的核心技术是书写数字识别。近年来,在我国广泛推广的“三金”工程在很大程度上依赖于数据信息的输入。如果能通过手写数字识别技术实现信息的自动输入,无疑将推动这一事业的进步。因此,对手写体数字识别的研究具有重要的现实意义。研究成果一旦投入使用,将产生巨大的社会效益和经济效益。1.2简介到现在为止,为了解决计算机字符的自动识别或者高速处理等问题,计算机实现了真正意义上的智能化,计算机识别在多年前的研究中就已经取得了很大的进步。字符识别是字符识别的一个分支,通常通过特征匹配和特征识别来处理。目前,识别率仍然具有很大的提升空间。近年来,人工神经网络技术取得了突破性的进展。它具有固定的并行结构和并行处理,知识存储,容错,适应性和模式识别,为字符识别开辟了新的、更多的可能性。1.3字符识别的目的识别符号是图像识别的一个重要分支,在邮政、税收、运输和金融等领域广泛应用。中国近几年来一直在推进的“三金”项目在很大程度上依赖于数据输入。但是如果通过字符识别技术自动输入信息,无疑将有助于这方面企业的发展。因此,对数字的自动统计研究是一个重要的、具有实际意义的举措。研究一旦成功并得到利用,将产生巨大的社会效益和经济效益。作为一个重要的图像识别问题,符号识别也具有重要的理论价值。一方面,阿拉伯数字是世界各地经常使用的一种符号。因此,这个数字是一个重要的关键。在字符识别领域,字符识别提供了一个平台,用于研究该领域的算法。另一方面,数字识别技术可以很容易地扩展到其他相关问题,特别是英文字母,但到目前为止,机器的识别能力不能与人类的认知能力相比。这仍然是一个严峻而又艰难的任务。根据收集到的数据总结,数字手写识别在学科上属于图像识别和人工智能类的范围。在过去的40年里,科学家们找到了许多方法来获得手写符号的关键特征。这些分为两大类:全局分析和结构分析。首先,我们可以使用匹配模板,像素密度,矩,特征点,数学变换等。对于后者,基本上是从符号或骨架的轮廓中提取符号形状的基本特征,其中包括:圆圈、端点、节点、弧、突起、凹痕等。多年的研究表明,几乎可以肯定的是,对于哪些完全无限制的手写数字:没有一个简单的程序可以达到高识字率和精确性来识别。因此,最近在这方面的努力是朝着更成熟、更复杂和更全面的方向进行的研究和发展。本篇论文主要模仿和学习了手写数字识别的算法。其中有一种手写数字识别的核心算法是,使用模板匹配、像素密度、矩、特征、数学变换等技术,来提取手写数字的关键特征进行识别,利用我们在电子信息技术方面所掌握的专门知识来做到这一点,然后完成手写体数字识别系统的学习和开发。1.4字符识别技术的现状及发展局势在60年代中期和70年代初期,数字识别技术就确定了相应的角色。日本Toshiha公司开发了自动邮政编码分类。RETINA开发了一个使用大量阿拉伯数字的系统,成为识别符号研究的开端。近年来,符号识别系统成为例如银行支票自动处理等方面的热点。符号识别通常可以分为两类:在线手写字符识别、光学字符识别或离线字符识别。在线手写识别中,计算机可以访问连接到计算机的手写输入设备来按照按照条形码、方向和符号形式接收输入字符。符号识别是光学识别技术的一个领域,其研究了电子计算机和其他媒体上阿拉伯数字自动识别的方法。在过去的40年里,人们发现了许多重要的特征来用于获取手写的文本。这些方法分为两类:全局分析和结构分析。在第一个例子中,可以使用像素密度和特征提取的模板匹配。在后者的例子中,包括环、顶点、节点、弧线、凸起、凹痕、图案等基本特征都需要从角色的轮廓或骨架中移除。语法分类通常与这些结构特征结合使用。事实上,对于完全无限制的手写数字,几乎可以确定一个简单的解决方案不会实现高水平的鉴定和准确性。研究人员正在研究将新知识应用于预处理、特征提取、神经网络分类和数学形式。研究手写识别中,研究神经网络的方法是很值得的。手写数字是字符识别领域中很难、很具有挑战性的话题。主要原因如下。首先,有些数字并没有那么不同,意思是部分数字形态上相差不大。很难区分这些数字。第二,虽然只有10个数字,但笔画简单,不需要相同的数字模式。世界各地的人都有独特的地理特征,这使得通用的识别符号系统来识别变得困难并且难以提高识别率。第三,由于写作者的个性,导致手写数字有很多随机的不同。例如,字符的粗细,字体的大小,字体的倾斜度,局部笔画的变形,以及其他差异等。此外,不管是目前和将来,在大规模数据(例如,一年一度的行业调查、人口普查等)是需要识别系统的使用。因为需要输入大量的数据,而以前完全要用手工输入,会耗费大量的人力物力。近些年来基于数据输入记录成为一大趋势,因为集中实施,这往往有助于数据自动识别可以通过专门和有限的形式进行,同时也便于机器的自动识别。目前,我国的大多数实用系统都要求用户按照规定的填写信息内容。此外,这些系统经常使用相应的用户界面,仔细检查id结果并确保它们是正确的。可以注意到,目前,许多国家的部门和单位对基本算法的识别要求较低,但也是他们应用开发的热点。金融、税收和财务是另一个让手写数字识别系统有所作为的领域。随着我们经济的快速发展,每天都有越来越多的人期待通过计算机自动来处理金融、税收、支票、工资单等等问题。与上面提到的方面相比,由于需要更精确的鉴定、更广泛的处理形式等,在这一领域的应用更加困难,这也增加了基本识别算法和预处理核心算法的要求。提高识别及预处理的核心算法的要求。在邮件分拣中使用手写数字识别技术也有广泛的应用。随着人们的生活水平升高,对于通信方面的发展与需求大大增加了信件的交互量,我国邮政业务总量也在不断增长,在一些大城市每天邮件数量达到上千万,工作量大幅增加,导致邮件分拣自动化成为主要趋势之一。在邮件自动分类时,手写数字识别通常与光学条码识别以及人工辅助识别相结合来完成,这就需要对具有特定性能的机器进行分类,错误越少越好。1.5课题整体结构我们的思路是利用Matlab软件建立一个手写数字识别的系统,实现图像输入,然后对输入的图像进行预处理,分割,结构特征提取,分类识别等常规操作学习,最终识别出图像上的数字,充分了解手写数字的识别的核心思想和技术。充分了解手写数字的识别的核心思想和技术。1.6课题难点分析数字只有十组类别是简单的,笔画更是及其简易,识别它们的似乎并不复杂。然而,在实践中,一些测试结果表明,正确的识别指标不如印刷体汉字的识别指标高,甚至不如手写汉字的识别率高。主要是因为数字字形的信息量比较小,不同的数字形式相似,字形的差别也很小,使得某些数字很难准确区分;其次,尽管这个数字只有10种,但所同一数字却有着千差万别,全世界所有地区的人民,他们的创作有着明显的区域特征,很难充分确保做到既能覆盖世界各种千奇百怪的写法并且又能具有极高识别率的系统。此外,在实践中,正确识别数字字符的要求要比不管是单词还是汉字都要难得多。这是因为数字在文中没有必然的上下文联系,每个独立的识别都很重要,数字识别往往与金融和财务领域有关,其严谨性这一点更加明显。因此,用户的需求并不仅仅是单群的高正确率的,更重要的是,极其低的错误率,哪怕不到万分之一以下。此外,在处理大量数据时,对系统的运行速度提出了相当大的要求,许多理论上比较理想但速度较慢的方法都是不行的。因此,要研究出高性能的数字识别算法是一个难题,高性能的手写数字识别技术更是一个复杂的且具有挑战的任务。充分了解手写数字识别的核心思想和技术。学习手写数字识别的核心技术。1.7本文研究的主要内容识别符号研究的最终目标是在实际操作中开发和应用快速和精确的识别算法。符号识别技术是独一无二的。识别技术远未达到使用的要求,而手写识别技术的创新应用本身将带来广泛的应用市场。高分辨率,快速识别。在实践中,高分辨率的本身要求是不可避免的。因为如果没有高效率的识别,应用程序的价值就会急剧下降。时间就是金钱,只有非常合理的,能被接受的速度才能占据市场。在这篇论文中,我们学习了数字识别问题,并选择了100个数字样本作为BP神经网络的训练样本来进行自我学习。在将识别算法应用于未知的数字图像之前,先对图像进行预处理,以获得识别算法所需的图像特征。用于图像预处理的算法也是主要的图像处理算法之一。灰度,二值化,平滑噪音消除,细化,标准化等均是同理。根据BP算法创建了一个基于神经网络结构的字符识别分类器。使用样本来训练神经网络和测试样本来验证模型。

2.系统2.1MATLAB介绍MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB是矩阵实验室(MatrixLaboratory)的简称,和MathematicalMaple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈--指MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。MATLAB的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用MATLAB函数集)扩展了MATLAB环境,以解决这些应用领域内特定类型的问题。2.2MATLAB的特点(1)此高级语言可用于技术计算(2)此开发环境可对代码、文件和数据进行管理(3)交互式工具可以按迭代的方式探查、设计及求解问题(4)数学函数可用于线性代数、统计、傅立叶分析、筛选、优化以及数值积分等二维和三维图形函数可用于可视化数据(5)各种工具可用于构建自定义的图形用户界面(6)各种函数可将基于MATLAB的算法与外部应用程序和语言(如CC++、FortranJava、COM以及MicrosoftExcte集成.3.人工神经网络3.1BP神经网络神经网络中关于神经元之间的一些连接反映了其间的拓扑结构,这些决定了神经元的处理信息的能力和性质。根据其连接方法,神经网络模型被分为前向神经网络、反馈神经网络。前向神经网络之一就是这里使用的BP网络。反向传播网络是一种多层网络,可对非线性可微函数进行加权作用。在人工神经网络的实际应用中,许多神经网络模型使用BP网络或其变体,它们同时也是反映人工神经网络最重要部分前向网络核心部分。3.1.1BP神经网络的网络模型BP神经网络是一个典型的前向神经网络。网络的基本结构如图3-1所示。它是一个典型的三层BP网络模型,包括1、输入层,2、隐藏层,3、输出层。VVnWn输入层隐藏层输出层.……..……..…….图3-1BP神经网络的网络模型3.1.2BP学习算法的流程BP学习算法的流程如图3-2所示。初始化初始化给定输入向量和目标输出求隐层和输出层各单位输出求目标值与实际输出偏差E求隐层单元误差求误差梯度权值学习E满足要求?全部E满足要求结束YYN图3-2BP学习算法的流程图3.2神经网络在模式识别问题上的优势神经网络是一种抽象的、能够模拟人类大脑特征的一种技术。这是一个基于连接理论的智能模型的仿生。基于人工神经网络的人工神经网络在模拟推理和自动化学习方面的功能取得了重大进展,人工智能更接近于人脑的自我组织和并行处理的一些功能。它已经被证明了在许多领域,例如模型识别、集群分析和专家系统的主要优势。神经网络可以被看作是输入到输出空间的非线性映射关系。我经过学习认为可以通过改变或者调整部分权重和阈值来识别学习或发现变量之间的联系来实现事物的从而进行分类。人工神经网络具有识别模型这一优势。神经网络是具有分布式的存储信息这特别优势。其存储信息的方式与传统计算机有所不同。这条信息不是在一个地方,而是在另一个地方存在。在网络某些部分,这不仅仅是信息,而且是分发传播和存储这条信息。神经网络利用神经元之间的多个连接和每个通道链路的比重分布来表示特定的信息。因此,这种分布式存储方法具有恢复原始信息的优势,即使本地网络受损。神经网络具有与信息处理和推理过程相对应的特征。每个神经元都可以根据收到的信息进行独立的计算和处理,然后发送反映并行操作的结果。神经网络通过直接计算特定输入模式来生成输出模式,并计算每个输出节点表示的逻辑概念。在输出模式中,通过比较输出节点的强度和信号本身,可以找到一个特定的解并发布其他解。这描述了神经网络的并行推理。神经网络有能力独立处理信息。神经网络中,它的每个神经元之间的连接强度是由其重量决定的,重量可以预先设定或不断适应环境。这个过程叫做神经元过程。神经网络本身正在研究人类思维模式的模拟过程。这是一种不合逻辑的方法,与传统符号的逻辑完全不同。它在模型识别方面的应用是神经研究历史上最活跃和最成功的领域。神经网络及其在模式识别中的应用是紧密相连和不可分割的。

4.字符识别常规预处理和特征提取方法4.1字符识别的识别过程字符识别,使用不同的方法,处理步骤可能不完全相同。但是,一般来说,完整的识别系统通常在识别过程中经历以下处理阶段,如图4-1所示。原始数据原始数据图像预处理灰度化细化特征提取识别识别结束二值化平滑去噪原始文档归一化图4-1识别过程图4.2字符识别的常规预处理方法神经神经网络提供了一种强大的识字符识别的工具。目前,有两种神经识别模式。其中一个使用数字化的原始像素样本作为神经网络输入,另一个是,使用原始像素输入的样本数据来进一步预处理或转换。在某些特殊情况下,使用第一个测试样本的表达式可能会产生很好的识别效果,但是输入方法通常会使网络分级器的结构复杂化增强。因此,对原始样本的初步处理是成功识别神经网络模型的一个重要操作过程。虽然已经为数字的初步处理做了很多工作,但分析,最终将根据以下方式进行:第一种选择是将数字转换为m矩阵,乘以n像素,然后通过二进制处理接收原始的输入表达式。然后,对一些原始样本表达式进行一般或常规的变换,如平滑、规范化和细化原始表达式模式。最后,样品以不同的方式进行转换,以获得不同的特性来形成输入样本。这就相当于符合传统的标识符类型,用于特征提取和选择,这就称为特征转换过程。数字主题有多种变换特性的方法,主要是数字主题的宽度和长度,每个不管是笔画的长度和厚度,以及边缘形状的轮廓。传统的早预征处理方法可以广泛用于识别多种字符。。4.2.1图像的灰度化灰度意味着这些图像处理仅仅只包含亮度信息,而不是所谓的颜色信息。图像包含在彩色图像的亮度和颜色的过程中。因为,在早期的图像处理中,人们只关心类似笔画,却又不仅仅是数字的颜色。256位的调色板又太过复杂了,多个图像处理算法都无法部署。最后图像中的灰色水平。要将彩色图像转换为灰度图像,首先要查找彩色图像的颜色值:R,G,B。然后,通过公式Y=0.11*R+0.59*G+0.3*B式(4-1)可以获得亮度值Y.然后让:R=G=B=Y.产生的新图像是灰度图像。很多的图像处理中重要步骤之一就是灰度处理,它的结果是之后各种其他处理技术的基础。所以,有一个正确的灰度图像处理是极其重要。4.2.2二值化图像的二值化是根据特定标准将图像中的像素划分为黑色和白色。灰点上的图像设置为0或255,以在整个图像上产生清晰的黑白效果。在数字图像处理中,有利的是在图像被二值化之后进一步处理图像。图像仅与像素值为0或255的像素位置相关联。它不包含多值像素值,并且稍微压缩数据处理。二值化方法的基本公式如下:式(4-2)g(i,j)是二进制(i,j)点的值,f(i,j)是点(i,j)的灰度图像的灰度值,并且T是阈值。阈值的选择是图像二值化的关键。根据T的各种选择,可分为积分阈值二值化,局部阈值二值化,动态阈值二值化。当T为常数时,我们称全球阈值方法为不同图像样本的综合阈值方法,并根据实际情况确定。阈值设置得很好,因为样本背景的颜色几乎是白色的。一般阈值方法基本上会有许多不一样的缺点。我们不能选择每个角色的最佳阈值。因为一旦我们建立了总阈值,它就不会改变。但同样这里提到的是最简单、最快的方法。这是一种比较有效的不同的双值化方法,因为数字图像清晰,轮廓清晰,并且没有干扰。当然还有一种方法是,可以根据灰质等级图确定一般的总阈值。这种方法可以通过图像和背景的灰色值自动定义共同阈值。局部阈值法允许将图像的每一部分与坐标相关的阈值水平分开。这适用于照明条件不同或者说不均匀的不同情况。通过全球阈值方法对图像的两位数解释,效果是不够的,并且不充分,并且根据学习到的了解到,通过局部阈值方法能获得预期的两位数结果。但是呢,缓慢的执行同时也不能保证字符的具有连续性。动态阈值的选择并不仅要取决于像素的位置以及灰度,而是还要取决于像素的位置坐标。因为考虑到每个像素的特征以及领域性,背景和目标之间的边界也可以很好地解释和突出。这种方法还允许处理一些低质量或单峰长方形图像。数字图像、笔顺笔画和背景之间有着很明显的大差异,处理动态阈值需要更长的时间来进行操作来完成。所以,这就是它很少被用来识别符号的原因。4.2.3平滑去噪平滑去除噪声消除孤立的噪声点,来进行填补未来领域的孤立的白色点,去掉字符串上部分边缘的一个小突起,并填补算法的凹坑来提供给之后的算法来使用。数字图像预处理和处理的重要部分也包含了平滑图像。噪音也是会给未来的工作带来很多技术操作上的不便。因此,在处理图像时,应尽可能多地删除噪音图像。噪音消除效应会直接并严重影响图像的处理,比如说有提到的字符分离、特征提取等。目前,有三种比较常用有很经典关于图像的去噪算法:1.平均过滤算法平均过滤算法,也被称为线性过滤,同时邻域平均方法中的比较核心主要概念,取代了几个像素的灰色等级的平均值。能够有效地抑制附着噪声,但同业也比较很容易导致需要操作的图像变模糊,所以还可以改进,主要是为了避免场景的平滑现象。2.中位数过滤器中位数过滤器是一种非线性处理平滑波信号的方法,能基于有序的噪声统计理论进行抑制。对于中间值过滤的特征,首先在于要定义像素中心的区域,一般情况下是正方形的区域,或者圆形的以及可能有十字等,然后将数字图片像素的灰度值分类为相邻点的中间值。灰色等级的新含义被用于中心像素,这里有一个叫做窗户的字段。当窗口移动时,中间值滤波器可以使图像平滑。这种算法很简单,同时时间效率很低,但是呢不适用于中间点、点线或清晰的图像,因为者被很容易适应。3.维纳过滤维纳过滤是一种恢复方法,可以最小化原始图像与其恢复的图像之间的均方误差。这是一个自适应滤镜,可根据局部方差调整滤镜效果。去除高斯噪声的效果是显而易见的。4.2.4书写的倾斜矫正如果没有对不同模式的偏差进行修正,那么相同的字形形状会反映出不同的歪斜角度,这必然会增加培训的压力和负担并且会降低识别字符的系数。为了减少这个因素对其产生的影响,那么势必需要使用校正修改的数字来将字符从一个水平提高对齐到另一个水平。最简单的方法是在将图像转换成为电子图像时进行进一步手工解决处理这个问题,使其尽可能精确。根据计算机的校准,那我们只能通过计算图像的倾斜角度来进行对其倾斜的修正。通常情况下的修正方法是投影。投影是基于投影进行了几何分析,计算每一个倾角的投影形状和要定义的目标函数,实际上图像倾斜角度是优化了目标这个功能。在这种方法中,由于考虑到每一个倾斜角的投影形式是需要进行计算的,所以需要大量的计算技术来提高倾斜角度的预估精度。霍夫转换和接近方法也是倾斜校正方法之一。4.2.5数字图像分割如果需要识别的数字图像中有多个数字,那就要把图分割成每个不同独立的数字。图像的分割技术是作为数字识别的提取特定目标技术和过程必不可少的,将图像分割成不同的区域,使它们成为具有不同特征的独立区域。当处理数字图像时,图像中的字符被分开成独立分段。预处理器只考虑字符图像中的图形,其余的图像是对识别无关紧要的部分,通常这些图像包含多个数字。这种识别只能基于每个数字的特征来确定。图像分割是数字图像处理中的比较关键技术之一,因为这能够大大降低随这后期阶段(比如图像的分析和识别)处理数据的量。当扫描分段字符底部的碎片到顶部,在第一个黑色像素时相遇,然后慢慢逐渐的从上到下,直到第一个黑色像素被发现。在高度范围中,从左到右的进行扫描,第一个黑色像素是符号分割的开始,然后继续扫描,直到黑线像素列出现,再考虑完成这个符号的分离。这能够使得每个角色的宽度都比较的精确。4.2.6图像的归一化处理规范化也是初步处理中的重要组成部分之一。因为原始图像的大小差别比较的大,所以更需要对原始图像大小进行标准化,以便于减少网络训练的学习时间,并且还要提高识别精度。标准化有两种基本且重要的方法。线性标准化和非线性标准化,线性标准化的技术比较广泛用于识别符号,这是像素中对于线性坐标的转换。首先,使用导出需要进行比较的数字字符原始宽度标准化后,依据初始图像插技术来值映射标准图像点,然后将不同大小的图像转换成a图像,这一大小保留方法的好处是简单容易操作的。但缺点也是有的,那就是没有考虑到字符的分布,这不时能吸收字符的变形,极有可能出现原始图像,也可能出现新的变形。然而,这不妨碍它还是一个有效的分类方法。非线性归一化是一种容易使图像失真的技术,因为这是需要尽可能地吸收原始图像。在图像归一化之后,请记得考虑地原始图像还具有典型特征,并需要按照这些特性进行非线性变换的操作。4.2.7图像的细化需要注意的是这里不仅要仅仅关注线条之间的关系,还要关注的是在纸中手写数字图线条的粗细。因为存在笔划的粗细不同,即便是相同数量的图像也有可能由此显示出不同的线条,所以由于在笔划之后导致变薄的线也会具有相同的宽度(就比如像素的宽度)。一个字符的骨架是可以提高对于相关字符识别的识别时间和精准性。当然,根据多年来技术人员的研究,还有许多改进的算法。能够依据映射连续性的精准程度,分别有四个相邻的连接算法,八个相邻的连接算法和一个混合性的连接算法。其中关于四个相邻连接是指有不同的四个水平和垂直连接。另外,关于八个相邻连接也是同样的道理,是四个水平和垂直方向加上四个相邻的四个角。细分过程也是有多种处理方式,例如有串行的,有并行的和有串行并行的这四种。在检测到像素时,遇到m×m(一般情况下是3×3)的窗口当中,就需要注意有立即删除的情况,比如遇到在可移除点处,则要删除,因为会影响后续点的相关检测以继续细化处理我所有的边缘检测完成之后,就更应该改所有并可以删除点的值。关于串行并行细化是字符串和并行处理是这两技术的混合处理方法。该处理方法的优点是净化方向与净化效率成正比,意思就是,净化的方向点上升,净化的速度也会提升。4.2.8预处理小结预处理是手写数字识别中不可缺少的组成部分,对图片预处理的好坏直接影响到识别结果,关系到识别算法的好坏。经过学习首先对待识别数字的预处理进行了介绍,包括平滑去噪,二值化等图像处理方法,经过这些预处理步骤对图像中部分变形信息进行了修正,消除图像中与识别无关的元素,而且尽量保持原图像字符的特征,这样能够提高在实验里对于数字识别网络的相关认知。4.3特征提取字符的特征提取是整个字符识别系统中不可缺少的关键。识别算法是基于所选择图像的特性类型,选择的函数稳定性很关键的。在数字识别技术中特征提取的方式分别,一是单个像素特征,二是提取结构特征,三是统计特征这几种。像素提取技术最简单的方法是对初步处理技术操作过后的图像进行再连续扫描。当扫描到黑色像素时的特征值为1,当扫描到白色像素时的特征值为0,因此再扫描完成之后,会显示出一个同等像素的特征向量矩阵。特征提取算法比较简单,优点是计算速率高、能够快速进入BP网络,训练的效果良好,同样也有缺点,那就是适应性不足。然而,实现灵活性的提高我们就可以通过增加训练样本的数量来实现。结构特征提取的作用是为了达到分析字符这个目的,这是一种能够直接理解的解决方法。这个技术的想法可以看成是人类识别的原则,但它也是不同之处的。该技术的基本思想是将要是别的图像角色进行分解成为部分,比如笔划,甚至是笔段。目前对于结构特征提取技术的研究已经很成熟了,笔画和字符识别效果更好是基于分段分析。对于不同的数字字符手写样本,数字风格不尽相同,但是在所有的笔画与笔画之间的整体关系中,整体数字的笔画拓扑方向是不会改变的,在人们的认知是认为已经掌握了这些相关本质的变化,所以它可以适应到文本不同的写作风格,但是技术还在进步中,未来会做到更加精准。所以,相对于本篇论文中关于手写数字识别技术,一直以来字符识别研究的重要研究方法就是基于笔画的数字自动识别。接下来说统计特征提取模式。根据统计模式识别的这方面来看,字符识别从原理上来讲是模式分类的这一概念。基于对象的学习和特征分析是人类对自然物体识别这方面的理解,那么,计算机模式识别的过程从原理上来讲也等同于人类识别过程。然而事实上,这些都是通过学习或其他方法而形成的记忆知识库方式之一。当执行模式识别时,需要能够清楚表达从对象到记忆知识库的图像,并且获得识别结果。

5.基于BP算法的手写数字识别系统的实现5.1基于BP神经网络字符识别的过程基于BP神经网络识别技术,第一应该获得样本,然后通过初步处理来获得点阵图像,选择图像特征进行提取,将提取的特征输入到BP神经网络,在训练识别后进行输出。如结果未获到预期值时,需对计算误差进行校对并调整神经网络中每个类的网络权重,直到期望值。识别过程如图5-1所示。样本样本预处理点阵图像特征提取特征向量选取特征BP网络训练权值初始化调整网络权值输出比较误差期望输出图5-1识别过程图5.2样本准备在本篇论文中,根据学习数字识别的问题,选择100个数字图像样本进行训练样本来训练BP神经网络识别。测试样本用于验证识别BP神经网络模型的识别能力。图5-2为一个示例。图5-2手写数字样本举例5.2.1灰度化该系统通过MATLAB函数rgb2gray()实现彩色图像的灰度。图4-2中灰度显示后的图像如图5-3所示。图5-3灰度化后的图像5.2.2二值化我们可以通过im2bw()实现图像的二值化。im2bw()的阈值参数是灰度图像的值除以255.当灰度图像除以灰度值255时,该值大于255.当阈值小于阈值时,阈值为黑色。由于背景通常为白色,因此阈值设置为0.7,二值化图像如图5-4所示。图5-4二值化后的图像5.2.3平滑去噪因为扫描了大部分需要识别的图像,所以在大多数情况下字体都会模糊,这就导致了手写数字的识别遇到困难。但是为了系统能够顺利识别,图像需要锐化以使数字清晰,从而达到识别效果。该系统使用中值滤波方法使用MATLAB函数medfilt2()对图像进行上述文中提过的平滑技术和去噪技术。图5-5显示了使用平滑技术和去噪技术的手写数字图像作为案例。图5-5平滑去噪后的图像5.2.4数字图像归一化在我们执行手写数字图像识别时,我们应该只关心图像中的显示数字部分,而不是图像中心没有用的空白空间,因此我们将图像进行标准化。在本篇论文中,这里使用的方法是:上述文中提到的图像逐行扫描技术,许哟啊找到最小行黑色像素rowmin和最大行rowmax,同时也找到colummin和collummax。然后使用rowmin,rowmax,columnmin和columnmax作为新图像的边界。由于手写图像的数字尺寸差异大,因此对图像识别要求是该图像的像素是30×30,并且原始字符均需要全部统一为30×30像素。我们将提取的图像高度和宽度最大值来和标准尺寸进行比较,来获取需要变换的比率。所有原始图像均需依照标准化图像比例来进行像素大小的变换,如图5-6所示归一化后的图像。图5-6归一化后的图像5.2.5细化在MATLAB函数imresize()中精炼,第一个图像需要进行反向处理,例如细化并返回到原色的反函数,因此细化效果更好。精致的图像如图5-7所示。图5-7细化后的图像5.3特征提取经处理的数字图像采用逐像素特征提取方法。逐行扫描图像。遇到黑色像素时特征值为1,遇到白色像素时特征值为0。相同数量的特征向量矩阵。以数字“3”为例,得到的特征值如图5-8所示。图5-8由预处理图像得到特征值5.4神经网络结构参数的选择与确定5.4.1输入层神经元个数和输出层神经元个数的确定根据本次毕业设计代码的应用程序具体要求,这里将设置数量关于输入层中的神经元和网络中输出的神经元。其中输入层的神经元节点数是根据数据的维度设置。例如,本系统需采用像素特征提取方法,图像为30×30像素,所以输入神经元的数量就成为900。同理相对应于的0-9数字,即,被输入到相应的神经网络输出神经元位置的0-9数字图像,其中的一个位置为0,因此需要识别10个数字。5.4.2隐层数大多数被认为,减少网络错误的方法是增加隐藏层的数量,从而来提高神经网络的正确率,并且还能使神经网络变得困难化,通过增加神经网络的训练时间,这样就会容易“过度使用”。一直以来已经有文献表明,如果输入和输出层使用线性传递函数并且隐藏层使用Sigmoid传递函数,则具有隐藏层的MLP网络可以以任意精度逼近任何有理函数。这很明显是一个现有的结论。这可以参考本文中提到的BP网络设计,并且应该优先BP网络的第三层(即,隐藏层)。一般情况下,想要获得较低的错误率是要通过增加隐藏层节点的数量来达到这样的目的,在这里训练效果的体现要比增加隐藏层的数量显得更加容易。5.4.3隐层节点数在BP神经网络识别学习中,我们需要知道隐藏节点的数量选择是BP网络神经得出结果的重要步骤之一。这有两种关键结果,其中一个重要影响是对已建立的神经网络模型的性能方面,同时能直接导致训练过程中出现“过度拟合”的情况。但是,据目前我学习了解到的,对此没有比较理论科学的通用方法。研究表明,隐层节点的数量不仅与输入层节点和输出层节点的数量有关,而且与要解决的问题的复杂性,传递函数的类型以及样本的特征有关。。5.5仿真结果在手写数字样本的进行完特征提取之后,我们将训练样本分成两种来进行学习:训练样本和测试样本。其中,用来训练BP网络和学习建立分类模型的是训练样本。用来分析BP网络模型分类的正确率和泛化功能的则是测试样本。根据上文中分析,BP网络是具有3层结构的,这里隐层节点我们选择了25这个数值,训练最大步数为3000,训练和学习率达0.05,显示网格数为10,隐藏层激励功能选择的是Logsig功能,功能traingdx训练,如图4-9所示。根据网络训练过程,也就是下图中可以看出,训练步骤显示是254步,并且满足基本能够收敛的误差。图5-9BP网络的训练过程建立BP网络之后,想要识别已经训练有素的BP网络,我们需要使用已经收集好的100个手写数字样本和100个手写数字测试样本。得知结果为:训练样本的识别率达到百分之之九十八,测试样本的识别率达到百分之七十八。这样的结果表明,我们建立的BP网络已经可以自学训练样本了,所以BP网络模型对训练样本来就有相对高的识别认知。下面为本次毕业设计手写数字识别系统的最终展示成果:打开MATLAB进行仿真:手写数字识别图5-10打开手写板打开手写板鼠标手写数字的部分代码如下:case'start',%%开启图形视窗FigHandle=figure('WindowButtonDownFcn','MouseDrawdown');axis([1imSize1imSize]);%设定图轴范围%axisoff;gridon;boxon;%将图轴加上图框title('手写体输入窗');case'move',%%滑鼠移动时的反应指令CurPiont=get(gca,'CurrentPoint');X=CurPiont(1,1);Y=CurPiont(1,2);%当鼠标移动较快时,不会出现离散点。%利用y=kx+b直线方程实现。x_gap=0.1;%定义x方向增量y_gap=0.1;%定义y方向增量case'up',%%滑鼠按钮被释放时的反应指令%清除滑鼠移动时的反应指令set(gcf,'WindowButtonMotionFcn','');%清除滑鼠按钮被释放时的反应指令set(gcf,'WindowButtonUpFcn','');end图5-11手写结束图5-12预处理关于根据边界对图像进行裁剪主要代码如下:functionbw2=edu_imgcrop(bw)%获取图片的边界[y2tempx2temp]=size(bw);x1=1;y1=1;x2=x2temp;y2=y2temp;%寻找左边界cntB=1;while(sum(bw(:,cntB))==y2temp)x1=x1+1;cntB=cntB+1;end%寻找右边界cntB=1;while(sum(bw(cntB,:))==x2temp)y1=y1+1;cntB=cntB+1;end%寻找上边界cntB=x2temp;while(sum(bw(:,cntB))==y2temp)x2=x2-1;cntB=cntB-1;end%寻找下边界cntB=y2temp;while(sum(bw(cntB,:))==x2temp)y2=y2-1;cntB=cntB-1;end%根据边界对图像进行裁剪bw2=imcrop(bw,[x1,y1,(x2-x1),(y2-y1)]);图5-13特征提取图片归一代码如下:functionlett=edu_imgresize(bw2)%Thisfunctionwilltakethecroppedbinaryimageandchangeitto5x7%characterrepresentationinsinglevector.%图像归一化,长度和宽度限定为5*7的分辨率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';图5-14识别二、图片数字识别图5-15打开图片从打开选择具体代码如下:axes(handles.axes1)%在窗口1显示图片[filename,pathname]=uigetfile({'*.*','AllFiles(*.*)';},'选择文件');%调用打开文件对话框%ifisequal([filename,pathname],[0,0])return%如果选择的文件名为空,则返回else%读取图片pic=fullfile(pathname,filename);%文件名的完整路径b=imread(pic);%读入图片imshow(b);%显示图片tu=b;title('原图');%图像标题%handle.axes1=b;end图5-16预处理图5-17特征提取图5-18识别

6.总结字符识别是多年来的热门话题,也是一个具有重要研究价值的话题。字符识别研究的最终目标是设计快速准确的识别算法并将其应用于实际工作中。通常,在字符识别方面,人们经常要求标识符具有高识别可靠性。因此,系统设计这些问题的关键之一是设计一种高可靠性,高识别率的字符识别方法。在过去的几十年里,研究人员提出了许多识别方法。然而,到目前为止,还没有完全认识到字符识别器。神经网络在字符识别中的应用是神经网络应用最成功的方面之一,是性能良好的特征识别器,为字符识别提供了一种新的有效方法。与其他传统方法相比,人工神经网络具有优于其他传统方法的一些优点。它需要较少的问题知识,更复杂的特征空间分类,适用于高速并行处理系统。本文讨论并研究了神经网络技术中的字符识别问题。主要研究成果如下:对于数字数据,首先执行常规预处理的预处理,例如灰度,二值化,平滑去噪,归一化和细化。然后提取处理后的数字图像,并提取表征该字符的特征向量。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论