手写体数字识别软件设计设计_第1页
手写体数字识别软件设计设计_第2页
手写体数字识别软件设计设计_第3页
手写体数字识别软件设计设计_第4页
手写体数字识别软件设计设计_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、唐山学院毕业设计设计题目手写体数字识别软件设计系别:智能与信息工程学院班级:12通信2班姓名:指导教师:2016年5月28日手写体数字识别软件设计摘要手写体数字的识别,作为光学字符识别技术中的一类,是图像处理领域中很具代表性的课题,其核心技术是人工神经网络算法。通过计算机来进行图像处理,使手写数字被识别出来。本软件主要用到的技术有数字图像的灰度化,二值化,图像的边缘检测和膨胀等预处理过程。还有特征提取,建立分类识别器进行识别的过程。本软件用到的主要技术为BP神经网络算法。用MATLABR2014a软件编写程序,并设计GUI界面来运行程序。经过不断地调试改进,可以良好的对手写数字0-9进行识别。

2、在经济全球化的今天,对于手写阿拉伯数字的正确识别在金融领域,特别是银行票据处理,业务受理查询方面的应用将极大的方便人们日常生活,提高工作效率,这也使得手写数字的识别研究工作飞速发展。关键词:字符识别特征提取BP神经网络MATLABTheDesignofHandwrittenNumeralRecognitionSoftwareAbstractHandwrittennumberrecognition,asakindofopticalcharacterrecognitiontechnology,imageprocessingfieldisthemostrepresentativeofthetopic

3、anditscoretechnologyisartificialneuralnetworkalgorithm.Throughthecomputertocarryouttheimageprocessing,sothatthehandwrittennumeralisrecognized.Thesoftwareismainlyusedinthetechnologyofdigitalimageofthegray,imageedgedetectionandexpansionofthepretreatmentprocess.UsingMATLABR2014asoftwarewrittenprocedure

4、s,andwriteaGUIinterfacetoruntheprogram.Aftercontinuouslyadjustablepilotimprovedcanbeagoodopponenttowritenumbers0-9identification.Intheeconomicglobalization,forhandwrittenArabicnumeralsrecognitioninthefinancialsector,especiallythebankbillprocessing,businessadmissibilityinquiryapplicationwillbegreatly

5、convenientforpeopledailylife,improvesworkefficiency,whichalsomakeshandwrittendigitalrecognitionofrapiddevelopment.Keywords:Characterrecognition;Featureextraction;BPneuralnetwork;MATLAB目录TOC o 1-5 h z HYPERLINK l bookmark10 o Current Document 1前言11.2技术的发展现状21.3软件研究难点3 HYPERLINK l bookmark12 o Current

6、 Document MATLAB介绍4MATLAB概况4MATLAB功能和特点4MATLAB界面4 HYPERLINK l bookmark14 o Current Document 手写体识别常用算法6常用算法介绍6人工神经网络发展史7 HYPERLINK l bookmark16 o Current Document 手写体数字识别整体设计8 HYPERLINK l bookmark18 o Current Document 4.1设计方案8 HYPERLINK l bookmark20 o Current Document 4.2图像采集8 HYPERLINK l bookmark22

7、o Current Document 4.3数字图像预处理94.4图像特征提取94.5分类识别10 HYPERLINK l bookmark24 o Current Document 4.6识别率的统计10 HYPERLINK l bookmark26 o Current Document 系统的具体设计11 HYPERLINK l bookmark28 o Current Document 5.1图像的切分11 HYPERLINK l bookmark32 o Current Document 5.2图像预处理11 HYPERLINK l bookmark34 o Current Docum

8、ent 5.2.1灰度化处理11 HYPERLINK l bookmark42 o Current Document 5.2.2二值化处理12 HYPERLINK l bookmark52 o Current Document 5.2.3边缘检测14 HYPERLINK l bookmark54 o Current Document 5.2.4图像的膨胀15 HYPERLINK l bookmark60 o Current Document 5.3图像特征提取15 HYPERLINK l bookmark62 o Current Document 5.4图像分类识别175.4.1人工神经网络的

9、学习17 HYPERLINK l bookmark64 o Current Document 5.4.2BP神经网络17 HYPERLINK l bookmark97 o Current Document 5.5实际操作流程21 HYPERLINK l bookmark99 o Current Document .6识别结果统计22 HYPERLINK l bookmark103 o Current Document 6总结24 HYPERLINK l bookmark105 o Current Document 致谢25 HYPERLINK l bookmark107 o Current D

10、ocument 参考文献26 HYPERLINK l bookmark109 o Current Document 附录27 HYPERLINK l bookmark111 o Current Document 附录1预处理程序27 HYPERLINK l bookmark113 o Current Document 附录2图像切分程序27 HYPERLINK l bookmark115 o Current Document 附录3特征提取程序28 HYPERLINK l bookmark117 o Current Document 附录4识别程序28 HYPERLINK l bookmark

11、119 o Current Document 附录5建立分类识别器的程序29 HYPERLINK l bookmark121 o Current Document 附录6建立GUI部分程序29唐山学院毕业设计唐山学院毕业设计 1前言很长时间以来,让机器具有可以智能识别的能力是科学研究的方向的重要方面,实现对图像的了解和识别是实现智能化的重要方法,近年来,科学发展的速度很快,字符识别发展迅速,并且成为了图像识别的主要组成部分。手写体数字识别则是字符识别的重要组成部分。实现手写体数字识别的主要步骤是,数字图像的预处理,特征提取,通过提取的特征来对数字进行识别,其中涉及到图像处理的技术有:灰度化,二

12、值化,图像的膨胀等图像处理技术。数字的识别经常选择的是创建人工神经网络的方法。人工神经网络算法近年来发展迅速。将这种算法应用到数字识别中对图像识别来说有着很丰富的意义。1.1软件的研究意义以及应用前景当今社会,信息化程度不断升高,人们更加青睐与使用信息化的手段处理生活中、工作中遇到的各种问题。越来越多的利用信息技术的新型产业前赴后继地出现在了我们的生活中。我们的生活中每天都会出现许多数字,例如支票上表示存款多少的数字、邮政编码、工作中出现的各种发票上的数据等。在这些数字中,有些必须通过人工来解决,而有些可以通过机器来识别,这样可以仅节省人力物力,达到人力的最大限度的利用。有很大的经济效益。字符

13、识别是其中的重要组成部分。阿拉伯数字是世界通用的,各国的人都认识这些数字。阿拉伯数字被广泛的应用于社会生活的各个方面。经济全球化不断向前发展,国际间的交流越来越多,数据的智能化处理对生活的影响日益增加。每个人写的数字都会存在差异,这些差异对数据交换和读取的速度及准确率都有一定的影响。当今社会信息化程度不断加深,对计算机拥有的存储、分析、处理数据的能力要求更高,计算机能够达到的水平也更高,使得计算机能够像人类一样去工作,更好的解放了人力,是人力资源得到充分的利用。因此,社会中已经已经兴起了建设人工智能的风潮。人工智能指的是科学家们通过研究人类的活动,用科技手段创造出来的一种新型的智能机器,其主要

14、的特点是面对事物能做出像人类一样的反应,以达到优化生产结构的目的。人工智能的实现包括对语言、图像等的智能化处理。因为科技的不断发展还出现了能代替人类工作的机器人。经过对人工智能的不懈的研究,人们对人工智能的了解程度也在不断深化。同时使人工智能所用到的理论和技术得以不断提高,人工智能在生活中的应用也更加广发。因为计算机能更准确,更快的计算处理数据,所以计算机可以代替人类完成拿些需要经过大量的计算才能完成的工作。字符识别是图像处理中一项非常重要的课题,手写体数字识别是字符识别研究的重要组成部分。如果可以将它广泛的应用工作和生活中可以给人们带来很大的便利。对社会的发展的意义重大。手写体数字识别和其它

15、类型的字符识别如字母,汉字的识别等相比,相对比较简单。对于对于手写体数字识别的研究可以帮助研究其它类型的字符识别,推动字符识别研究的发展,使字符识别技术更加进步和完善。本软件主要是用人工神经网络,通过BP神经网络这种算法处理数字识别的问题。利用计算机对手写体数字进行识别的应用前景非常光明,手写体数字的应用非常多,随着经济的发展,人们需要处理越来越多的手写体数字信息。例如会计每天都需要面临的统计报表、财务报表和在邮政,银行等部门大量出现的个人凭证,支票,发票,进账单等等票据。这些东西都有存在大量的数据信息。如果能把这项技术应用到上述那些内容中,将手写数字放到计算机中去识别,不仅可以减少人的工作量

16、还可以减少人力的使用,使每个人的价值得到最大的发挥。是以,我们应该花费更多的精力到这项研究上,这项研究有很大的发展空间,并且具有很大的市场发展空间。如果这项技术更加完善的话,肯定有着良好的的应用价值和市场前景,同时也具有理论价值。技术的发展现状1、国内发展现状我国开始对手写体数字识别进行研究最早是在七十年代。后来中国工程院开始对这种技术进行研究。复旦大学经过不懈的努力在七十年代末研究出了中国第一台印刷体数字识别机,它可以实现识别打字机输出的数字的功能,这是我国在手写体数字识别上迈出的一大步。紧接着国内各大高校也开始了对手写体数字识别的研究,而且获得了许多很好的成果。从此以后,国内越来越多的人投

17、入到了这项研究中去,也使得它的发展达到了高峰。2、国外发展现状早在20世纪20年代末,德国就有人获得了OCR专利权。陆续又有其它国家的人获得专利权。但真正意义上的OCR系统是在计算机出现后才出现的。第一代OCR系统只能识别特定的几个字符。其中最具代表性的是OCR420和Farrington3010。第二代比第一代的系统在功能上有了很大的进步,它能够识别出书写相对整齐的手写体字符。其中以日本应用最快,根据这个系统发明了世界上第一台邮政编码自动分拣机。第三代OCR系统相对来说还不完善,第三代要求更高,它要求能够识别任意体的手写字符。近年来出现的手写体识别程序都属于第三代,但是能够完全准确识别任意手

18、写的字符还是有一定困难的。识别的过程中会受到许多干扰,这些干扰的存在影响着识别率。至今都没有能够达到那么高标准的技术。唐山学院毕业设计唐山学院毕业设计 我们依然要努力的对这项技术进项研究。软件研究难点虽然每一个阿拉伯数字的结构笔画都很简单,但是想准确的识别相当困难。每个人由于字体的不同写出的数字也存在较大的差异。即使是同一个人写出的数字也会存在差异。并且有的数字的结构有相似的地方,字形相似,特征提取的时候容易提取出相似的特征,导致识别错误。每个人书写数字也都有不同的习惯,写出的数字并不会那么工整。这也给准确识别带来很大的困难。由于地域上的差别,世界各国人民的习惯不同,写出的数字的差异比同一个国

19、家的人的差异更大,做出一款可以兼顾国内外的数字识别软件几乎是不可能的。进行识别时输入的只是图像,无法从笔顺上确定出手写的数字,这给准确识别带来了不小的麻烦。想准确的识别数字难度很大。但是对于数字来说,一般情况下,要求的精度很高。是以对数字的识别必须要准确。手写体数字书写过程中会产生各式各样的字体、形状,这些都会导致识别率下降。但是这些问题缺不可能克服,只能通过技术来提高识别率。在日常生活中要求能够准确的识别数字。例如支票等票据识别错数字会带来巨大的损失,邮政编码识别错误会导致收件人无法收到东西。文字的识别相对来说要求较低,只是识别错一个文字可以通过全文来掌握意思。但是数字错一个就会造成巨大的错

20、误。数字的识别在统计,金融,科研领域应用时,对识别率的要求非极其严格的,一个手写数字,不仅能够被系统识别,要保证在大量数据处理时,系统识别的低错误率,因为手写数字样本的多样性,保证这一点往往是困难的,识别的低的错误率和高识别率是手写数字识别领域里亟须改进的两个主要的问题1。2MATLAB介绍手写体数字识别软件是用MATLAB来编写程序的。它是Mathwork公司开发的一款工程数学计算软件。它是对机器行为进行描述的,能对数学操作进行更直接的描述。MATLAB图像处理工具箱封装了一系列针对不同图像处理需求的标准算法,可以通过直接或间接的调用矩阵运算和数值运算函数来进行图像处理。此外MATLAB可以

21、和其他编程语言。它将数值分析、矩阵计算、可视化等功能集结在一个开发环境中,为科研和工作提供了强大支持。MATLAB概况MATLAB即矩阵实验室。20世纪80年代,克里夫莫勒尔(CleveMoler)为了方便学生学习线性代数,编写了LINPACK和EISPACK子程序库的接口程序。这是第一个版本的MATLAB。这个版本的MATLAB主要是进行矩阵的运算。但是这也给学生带了极大的方便,深受学生们的喜爱。提到MATLAB不得不说的就是Simlink。它是MATLAB的重要组成部分。是基于框图设计的可视化的仿真工具。可以进行系统的建模,在许多方面都有广泛的应用。MATLAB程序族在控制、通信系统设计、

22、仿真,财务领域等方面都得到了大量的应用。尤其是它的工具箱功能,用起来方便简单,每一个用MATLAB的人都可以编写出一个工具箱。MATLAB功能和特点MATLAB的主要功能有矩阵运算功能,数据可视化功能,GUI程序设计功能,还有大量的专业工具箱功能等。MATLAB的基本数据单位是矩阵,所有的运算都有用到了矩阵,矩阵是所有运算的基础。MATLAB的主要特点2:丰富的数据库函数。种类全面的运算符MATLAB不但提供C语言种的基本运算符号,还在此基础之上,提供了矩阵,向量运算符。MATLAB界面MATLAB软件分为3个子窗口,即工作区、命令窗口、当期目录文件列表。作为MATLAB运行的主体,上面加载了

23、所具有的各种功能,命令行窗口可以编写程序。以下是MATLAB主窗口示例:卜*MAiLAt丄辽胃.rnisFJTRfl-卫Elt*?n.3l*Ir.E图2-1MATLAB主窗口(1)命令窗口命令窗口是软件所有的窗口中最主要的部分,一般来说,开MATLAB软件会有命令窗口,命令窗口不但能运行MATLAB的所有程序,还能编辑程序。执行命令时可以采用输入命令执行程序也可以用提前编好的窗口来运行的方法。(2)工作区窗口工作区窗口在该软件所有窗口中占据着很重要的地位,工作区窗口的主要功能是显示变量名称,字节数等临时的数据文件,也可以查看、编辑、导入、保存和删除变量。不同类型的变量对应的图标也是不同的。(3

24、)当前目录文件列表窗口当前目录文件列表窗口可以直接对文件和文件夹进行操作,也可以改变程序的运行路径。要调用的函数必须在该程序的运行路径下。3手写体识别常用算法近年来,手写体数字的识别的研究发展十分迅速,能够进行识别的算法日趋多样化。目前研究比较成熟的主要算法有:贝叶斯分类算法,统计决策算法,模版匹配算法,逻辑推理法,结构特征法,神经网络法和支持向量机法等多种算法。其中最具代表性的算法有:人工神经网络算法,隐马尔可夫模型算法,支持向量机算法。3.1常用算法介绍隐马尔可夫模型是根据马尔可夫随机过程得出的一种统计模型。同时也是一个含有“隐含”的马尔可夫过程。这些隐含状态都有一个相应的概率密度函数。要

25、想转换状态,必须通过一个状态转化概率矩阵才能实现。隐马尔可夫模型可以很好的处理随机信号。实现对随机信号的建模。语音识别大量的用到了隐马尔可夫模型,这种算法对语音识别来说有很好的效果。现在许多人在尝试着把它用到图像、视频等的处理中,也取得了一定的成果。支持向量机方法是从统计学中得到的机器学习语言,因为此种方法的学习能力很强,因此被运用到了许多领域并获得成功。SVM在识别上作用很大,在兼容性上也有很好的表现。其他机器学习问题也可以从中得到启发。支持向量机方法的最基本的原理是结构风险最小化原理,主要是通过一系列变换得到最优线性分类面。通过一些变换函数可以得到这一系列的变换。想实现机器的学习功能必须使

26、得学习精度和学习能力达到平衡。统计决策法主要用到的是概率论和数理统计的知识,它主要是把提取的一组统计特征进行判决,进行分类。统计决策法是基于数学产生的一种算法,它通过数学计算来识别字符。它的抗干扰及抗噪声能力很强,但是想得到较好的特征相当不容易,并且模式结构特征非常粗糙。人工神经网络理论所用到的最重要的要素就是特征向量。主要是利用神经网络的学习和记忆功能,使其学习各个模式中的样本并且记住这些样本特征。识别时通过和已经记住的样本特征做对比,并因此成功识别出该字符。近年来,经过不断的努力人工神经网络方面的研究取得了许多理论成果。该理论的发展也越来越好,广泛的用到了工作和生活中。人工神经网络所包含的

27、算法很多,其中应用最广泛的是BP神经网络算法。误差反向传播算法(ErrorBackpropagationTraining)最早是在1986年出现的,是一种按误差逆传播算法训练的多层前馈网络,对于非线性问题有很大的作用。可以逼近任意连续函数。BP神经网络的中间层数和神经元数可以是人为设置的。这种算法的抗干扰能力很好。同时可以消除一些错误信息,因此具有很高的容错能力。当然不可避免的也存在着缺点,学习效率有待提高。但它也有很大的优势,被广泛应用在图像处理上,因此采用这种算法实现对手写体数字的识别。3.2人工神经网络发展应用1890年,美国心理学家WilliamJames发表了一部详述人脑及功能的书心

28、理学原理,他预测神经细胞激活是细胞所有输入叠加的结果。自1987年以来,人工神经网络各方面的内容得到了极大的丰富,这些内容囊括了它的理论、应用等,并且都发展迅速,科学家们开发出了许多不同作用的神经网络模型,神经网络已经被应用到了许多方面。该网络的信息存储能力随模型的不同而变化。由于人工神经网络具有非线性特性、并行行、学习性,因此人工神经网络模型普遍具有很强的计算能力,并且使该网络具有很强的环境适应能力和容错能力。人工神经网络的应用非常广泛,在医学检测数据分析、生物活性研究、军事工程、化学工程、水利工程等方面都有运用到这种方法。唐山学院毕业设计唐山学院毕业设计 4手写体数字识别整体设计手写体数字

29、识别系统分为:图像数据的采集,图像预处理,特征抽取,分类识别和对识别结果进行统计几部分。4.1设计方案首先要将提前写好的数字转换成bmp格式的图片,将其导入,并将图像进行切分,即选中几个数并将其分成一个一个的。然后对图像进行预处理,图像预处理就是将每一个数字进行灰度化处理、二值化处理、边缘检测、膨胀等处理。然后分别对采集到的每一个数字图像进行特征提取,特征提取选用的方法是粗网格特征提取。识别时用的是BP神经网络算法。神经网络的原理是不断的对数据进行学习、训练,随着学习的不断进行,误差会越来越小。完成后把上一步提取出来的特征用神经网络去识别。图4-1系统整体设计4.2图像采集准备一张手写数字的图

30、片,首先要将其转换成MATLAB能识别的格式。在本程序中将图片格式设为bmp格式。进行图像采集的方法有两种,一种是先将数字图像导入到程序中,然后切分图像,得到一个一个的数字图像。这样做主要是为了能够更方便快捷的进行预处理工作。另一种方式则是先把图像做预处理,然后再进行数字的切分,这样做的好处是就省去了对多个图像进行预处理的繁琐过程,本软件的设计采用的是先分割图像再预处理的方法。4.3数字图像预处理手写体数字识别的预处理过程主要分为:将每一个数字进行灰度化处理、二值化处理、边缘检测、膨胀等。首先将彩色图像进行灰度化处理,得到灰度图像。在灰度图像中,通常用0表示黑,255表示白,从0到255亮度逐

31、渐增加,但是并没有色彩信息。然后进行二值化处理得到二值化图像,即黑白图像。就是图像像素只存在0,1两个灰度。接着对图像进行边缘检测,边缘检测的目的是找出图像中亮度发生了巨大变化的点。边缘检测可以减少数据量,去掉一些不相关的信息,加快运算速度,提高运行速率。图像的膨胀的目的是扩大物体的边界,可以将断裂的部分连接起来,即使书写不准确补充完可以识别出来。预处理对于系统的设计非常重要,预处理的好坏直接影响着识别结果。经过预处理后的图像才能进行特征的提取,因此必须提高程序的预处理能力。4.4图像特征提取特征提取是这个系统中最重要的部分之一。特征提取的比较好的话可以有更高的识别率。特征显而易见值得是不同点

32、,也就是说它指的是某一事物和其它事物不同的方面,特征是我们经过一系列特殊手段,例如测量和处理等方法可以得到数据。从特征自身的特点上可以将其分为两大类,一种是它的外形特征,另一种是比较深层的纹理特征,这个特征可以表现表面的灰度变化。统计特征和结构特征是手写数字特征的两个主要类别3,提取特征能够从这两个方面出发。结构特征指的是我们可以看出来的诸形状,书写笔画等具有比较明显的特点的特征。每个数字的笔画都不尽相同,例如数字1只有一画,但数字4却有两画。即使笔画相同结构也有很大差异。例如2和6的结构就存在着明显的差异。也正因为这些差异的存在才使得特征提取不是那么困难。但是有些数字的结构上存在着相似的地方

33、,这就使得特征提取的时候很有可能提取出相似的特征,给识别带来困难。结构特征要求图像足够清晰,太模糊的话可能导致不能提取到合心意的特征。因此要想提取出比较好的特征首先要有高质量的图像。但是实际生活中,国家、区域、书写习惯、纸张材质都影响着图像的清晰度。这都给提取结构特征带来了许多问题。例如:有些人写字比较乱,有些人写出的数字1和7并没有太大的区别,这对于识别来说也是一个很大的问题。统计特征主要是用抽象的数学思维来建立一个或多个特征,来表述一个数字,实际上,就是通过函数,离散变换等方法在特征和数字模型之间建立映射关系,如:利用密度的估计,矩估计等数学统计方法表征一个数字图像的特征4。特征提取是要尽

34、量提取那些在同类图像之间差异较小,在不同类别的图像之间差异较大的图像特征。因为提取的特征不仅要能够很好地描述图像,更重要的是能够很好的区分不同类别的图像。进行特征提取时根据情况的不同而做出调整,它的评价标准也会受到主观想法的影响。特征提取也有一些比较普遍的原则,即特征应该比较容易提取,否则花费大量的时间只会得不偿失。其次选取的特征应尽可能少受噪声的影响。最重要的一点是应试图寻找最具区分能力的特征。在实际生活中,许多设计采用的是提取轮廓特征的方法。提取轮廓特征通过扫描数字的外部轮廓实现特征的提取5。还有一些方案采用了笔划密度特征,有一部分研究提取图像特征值的方法是基于统计特征的方法,例如基于傅立

35、叶变换特征的,这种正交变换的方式是一种主要的统计特征6。本软件为了便于理解采用的是粗网格特征提取。4.5分类识别分类识别是手写体数字识别最关键的部分,经过特征提取后提取来的特征将被送到分类器中并对其进行分类识别。分类识别是指根据特征将模式分配给不同的模式类,识别出模式的类别的过程。分类器可以理解为为了实现分类而建立起的某种计算模型,它以模式特征为输入,输出该模式所属的模式信息。具体的识别方式是,建立并训练人工神经网络,是用人工神经网络来架构分类识别器智能识别数字7,因为人工神经网络有良好的消除噪声影响的能力,并且具备较高的容错率和较高的识别率。而且人工神经网络的发展迅速,越来越成熟,因此本软件

36、的设计采用BP神经网络来完成识别。4.6识别率的统计识别完成后,为了总结出所设计的软件的完成度,需要对识别的结果进行统计。经过多次的实验,对多个不同的数,不同的人手写出的数分别进行识别,统计出识别率。并且详细得出该软件对何种字体或者哪个数的识别率更高。验证后将其记录成册,从中得出该软件对手写体数字识别的识别率的详细情况。并对其进行详细的分析,从而得出软件的使用价值。然后和其它的识别软件的识别率进行对比,找出优缺点,记录下来。5系统的具体设计手写体数字识别系统设计流程为:图像数据的采集,图像预处理,特征提取,分类识别和对识别结果进行统计分析。5.1图像的切分将整幅图片导入其中,并完成对这些信息的

37、识别是很不容易的,为了方便识别将图像进行分割是十分必要的。经过图像分割将数字分成一个一个的,本软件最多可以一次对9个数字进行处理。图像的切割的目的就是截取单个图像,方便对图像进行二值化操作,可借助MATLAB中imcrop函数实现字符的切分,以下是切分的程序代码。bw2=imcrop(bw,xl,yl,(x2-xl),(y2-yl);图5-1图像的切分5.2图像预处理图像预处理阶段主要是对图像进行一系列的处理,得到能够很好的提取特征的图像,主要分成以下几部分:灰度化处理、二值化处理、边缘检测、膨胀等。5.2.1灰度化处理在计算机中,显示器的任何颜色都可以由3中颜色红、绿、蓝组成,称为三基色。彩

38、色图像就是由着三种颜色构成的。但是彩色图像对图像特征的变现不是很好。因此必须对对图像进行灰度化处理,利用MATLAB中的自带的函数rgb2gray,可以把彩色图像变成灰度图像。成在MATLAB中对彩色图像进行灰度化部分程序如下所示:I=imread(F:毕设手写体数字识别l.bmp);%读取图像Igray=rgb2gray(I);%将彩色图像灰度化Imshow=(Igray);图5-2灰度化处理5.2.2二值化处理图像的二值化是将图像转换为只有两级灰度的图像。二值化一般在图像灰度操作之后进行的。在数字图像中,二值图像是非常重要的。二值图像拥有存储空间小、处理速度快的优点,可以快捷地完成对图像的

39、布尔逻辑运算,更重要的是二值图像可以比较容易的获取目标区域的几何特征或者其他特性,比如描述规定区域的边界,获得所要处理的图片的更多特征,为对图像进行更深层的处理奠定基础。二值化的具体方法很多,常用的是阈值判定法。也就是说给定一个阈值,当灰度图像中像素点的亮度值小于该值时,把像素点设置成黑色,而当灰度图像中像素点的亮度值大于该值时,把像素点设置成为白色(或者黑色、其它颜色)。将图像二值化最重要的是阈值选择,不同的阈值处理出来的图像也是不同的,效果也存在着一定的区别。进行图像的二值化的目的就是防止多种灰度值对图像特征产生不良的影响,因为二值化图像仅有黑白两个元素构成,和经过灰度处理的图像相比,图像

40、显示出的是一种有很大对比的黑白效果,图像的特性也就仅与这两种像素有关,也就因此消除了不同灰度值对图像特征进行特征提取时的影响。唐山学院毕业设计唐山学院毕业设计唐山学院毕业设计 图像完成二值化的方法有很多,因为二值化的主要目的是找到一个特定的数值作为判别依据,灰度值比这个数值大像素就会判断为255,同理如果灰度值比这个标准小的话就会判断成0。这个做标准的值,就叫做阈值T,二值化的方法之间差异主要存在于阈值的选取问题上8。阈值的选取方法主要有最小均方差法,最大类间方差法,最佳阈值搜寻方法,迭代阈值选取方法等。最小均方差法通常将图像的灰度作为主要特征。一般来说,采用的是正态分布,即高斯概率分布。选择

41、最小均方差法主要是为了选择T时,对已知的像素不管是处理前景还是背景的时候出错概率降到最小9。但是想确定使均方误差最小的参数很复杂,而要采用这种方法图像的前景和背景都必须为正态分布。迭代选择阈值法的主要思路是:开始的时候先选择一个阈值当做初始值,然后根据特定的规则一直更新这个估计值,更新到符合要求的时候停止。这个过程的关键是选择迭代规则,合适的迭代规则不仅能够实现快速收敛,还能够不断优化迭代结果。此阈值选取方法的初始阈值为图像灰度范围的中值。根据初始值把原始图像分成前景和背景两部分,然后把对两部分进行积分取得的平均值当做新的阈值,然后再根据这个新的阈值把原始图像分成前景和背景两部分,并依次迭代下

42、去。当迭代达到一个比较稳定的值时,得到的这个值就是最终的阈值。本软件采用的是最大类间方差法。这种算法计算简单,是一种稳定、常用的算法。这种方法首先选取一个初始值当做阈值,按初始阈值将像素点分成背景和目标两部分,然后比较目标和背景的类间方差,类间方差最大的时候取得最终的阈值。类间方差越大二者区别越大,二值化结果比较好。此种方法不用提前设置各种参数,它可以实现自己选择阈值,并且选择的值比较合适。不管是两个区域或者是一个区域都可以选择到合适的阈值。在MATLAB中,最大类间方差法直接用函数graythresh就可以实现,编写程序时写出T=graythresh的形式,输出结果T就是二值化的阈值。得到了

43、阈值T的准确数值之后,图像的二值化处理只要把每一个像素去和T做比对从而得出灰度。利用MATLAB中的函数im2bw可以对图片进行二值化,对已经经过灰度化处理的图片进行二值化的程序如下所示,二值化后的图像如下:Igray=imread(F:毕设手写体数字识别l.bmp);Ibw=im2bw(Igray,graythresh(Igray);imshow(Igray);figure;imshow(Ibw);图5-3二值化处理结果5.2.3边缘检测边缘检测是是进行图像切分的必要步骤。图像的边缘是图像最直观可以直接看到的特征,图像主要信息都可以在边缘中得到,所以正确的将图像的边缘检测并提取具有重要意义。

44、边缘点指的是图像中和周围的点具有极大的差别的那些点。那些变化极大的点的图像属性可以反映许多东西,具有很大的意义。这种算法也被广泛的应用到了许多方面。边缘检测主要分为平滑滤波、锐化滤波、边缘判定、边缘连接等步骤。边缘检测的算法分为两类:基于查找的算法和基于零穿越的算法。除了这些方法,还有Canny边缘检测法、统计判别方法。基于查找的法是通过寻找图像一阶导数中的最大值和最小值来检测边界,通常是将边界定位在梯度最大的方向,是基于一阶导数的边缘检测算法。基于零穿越的方法是通过寻找图像二阶零穿越来寻找边界的,通常是拉普拉斯过零点或者非线性差分表示的过零点,是基于二阶导数得到边缘检测算法。不同算法得到的结

45、果存在很大差异,从边缘精度看,Roberts算子定位精确度较高。从对不同方向边缘的响应看。根据对边缘的感知程度划分的话,Sobel算子、Prewitt算子对于倾斜的边缘检测的时候可以有更好的效果,而Roberts算子则对垂直或水平方向有更好的加测效果。从可以滤除噪声的多好上划分的话,Sobel算子和Prewitt算子比其它的方法滤除噪声效果更好,可以将图像变得更加平滑,会去掉部分噪声,但是也会去掉一些有用的边缘信息,并且将有用的边缘也进行平滑,产生了许多影响,同时也影响了定位精度。综合全局来看,Canny算子的综合性能比较好,不仅定位精度较高,而且可以更好的滤除噪声,降低噪声影响,提高整体性能

46、10综上所述,在进行边缘检测的时候采用了Canny算子,这种方法可以提高本软件的识别率,也使得软件拥有更好的性能。524图像的膨胀将经过边缘检测后的图像进行膨胀,以便将手写数字过程中缺少的笔画补回来,增加特征提取的准确性。在进行膨胀操作时,进行处理后输出来的像素值是输入到其中的图像的所有像素里的最大的值。在二进制图像中,如果所有的像素值为1,则输出像素值为1;每一个图像都有一个像素的边界,将超过这个边界的所有的像素值概括成这个数据类型能够接受的最小值,二进制图像,采取的是将这部分像素值设置成0;但是对灰度图像来说则是不同的,unit8类型的最小值是0。除了具有高度的结构元素外,实际应用中使用更

47、多的是一种平坦(高度为0)的结构元素,这种结构元素只能由0和1组成,为1的区域指明了运算涉及的范围。实际上,二值形态学中的结构元素可视为一种特殊(高度为0)的灰度形态结构元素。当应用结构元素时,灰度膨胀完全变成了局部最大值运算。提前设置好该过程所要用到的参数,例如构成灰度图像的元素等。然后调用imdilate函数完成图像膨胀,得到想要的结果。平坦结构元素的创建过程与二值形态学中相同;而非平坦结构元素也可通过strel()函数进行建立。膨胀程序如下:se=strel(square,3);Iedge2=imdilate(Iedge,se);%图像膨胀函数,灰度扩张膨胀处理后的图像后为:ICropt

48、oE电e=s图5-4膨胀后的结果该图像和二值化后的图像相比明显加粗了,方便进行特征提取。5.3图像特征提取对图像进行特征提取应用的是粗网格特征提取的方法,粗网格特征指的大部分是图像的整体分布特征,手写体数字虽然都有一些差别,但是每个人写出来的数字整体上还是差不太多的。比如4,每个人写出来的外形或者笔顺或许有不同,但是4的笔划的特征分布存在一定的规律,每一个数字的特征向量也存在着很大的差别,在特征空间中,10个数字对应的特征向量的分布是离散的,它的离散性说明,数字特征向量的类间距离相对较大。将粗网格特征提取方式具体点来说就是:第一要先把数字按像素点分成许多N*N型的一个个的网格,第二就是将每个网

49、格中所包含的图像的所有的像素个数(统计灰度值为0的元素的数量并计算其占总数的比例,得出点阵密度)然后将收集计算的结果当做这个网格的特征的信息,接着在识别的时候,把所有的网格的特征的信息结合在一起,就得到了一个N*N维的各个网格特征的分布情况的图像。最后将得出的网格特征作为描述整个数字的统计特征11。首先要将输入的图像转变成50*70的特征矢量,然后将每10*10大小所包含的点加在一起聚合成为一个点,计算每一个10*10大小的范围内的所有图像象素的数量,计算每一个像素占所有像素数量的比例,并将其当做这个特征的数据信息,因为图像的尺寸是50*70,所以我们把它分成7x5的网格,每10*10大小范围

50、内包含的所有数据信息当做一个特征,总共可以得到35个特征,也就是说经过上述过程之后就有了35个粗网格特征。然后将所有的特征归一化,经此处理后的信息输入到识别系统中,然后就能将数字识别出来了。FeaturesExtractian.艮-H-0.-BFJ-=DE3-0图5-5粗网格特征提取示意图粗网格特征提取方法的好处是化整为零,将整体分为部分,一个网格的特征出现错误时,对整体的影响并不是很大。每一个网格特征反映的只是是图像的部分特征,输入图像都会包含一部分噪声,在对提取的特征进行归一化处理后,这些噪声可能会使局部数值“0”和T”的值互换,但是并不会对整体特征造成太大的影响。因此,粗网格特征可以较好

51、的抵抗噪声对它的影响。当然这种方法也存在着一些缺点,粗网格特征提取对位置变化非常敏感,如果提取特征的样本上位置发生了一些变化,比如书写数字倾斜,会使粗网格的识别率大大降低。因为这些原因,粗网格特征提取的方法并不是一种特别完美的方法,还存在着许多缺点。用这种方法识别时,唐山学院毕业设计唐山学院毕业设计 对于书写的不是特别规范的数字会有一定的出错率,对于写的相对整齐的数字来说可以达到较好的效果,有更好的识别率。5.4图像分类识别图像识别很多是通过图像的主要特征进行识别的。每个图像都有它的特征。相关研究表明,对图像极性识别时会把焦点集中在图像轮廓有较大变化的地方,而不是那些比较平滑的位置。有较大变化

52、的位置包含的信息更多,更有提取的价值。5.4.1人工神经网络的学习人工神经网络最重要的特征之一就是学习,必须按照规定的学习准则进行学习之后才能投入使用。如果想让一个神经网络能够识别A和B两个手写字母,也就是说字母A或者与其相似的字母输入神经网络的时候,神经网络输出1,;相似的若果输入的是字母B或与其类似的字母则输出0。因此我们可以得到这个网络进行学习时的规则是:假如网络没有正确的判决得个问题时少犯同样的错误。第一步要先给网络的各连接权值赋一个比0大又比1小的值,将“A”代表的图像模式发送到网络中,网络把输入的模式进行加权求和、和门限做对比、然后做非线性运算,就可以得到网络的输出。在这种情形时,

53、网络的输出是“1”和“0”的概率都是50%,换句话说就是输出结果是随机的,不定的。这种情况下假如输出为“1”(结果正确)的话,它的连接权值会变大,这样当网络又一次遇到“A”情况下的输入时,依然能准确的得出结果。假如输出结果是“0”(即为结果错误)的话,与上述情况相反要将网络连接权值向能够减小综合输入加权值的程度上变化,这样做是为了在网络再一次再碰上“A”模式的输入的时候,尽可能的不再犯这样的错误。经过上述调整后,我们再给网络依次输入几个手写的字母“A”、“B”后,然后让网络依照上述的学习方法进行多次学习以后,网络会更加准确的做出判断。完成上述内容后就说明对这两个模式的学习已经完成了,它已经把这

54、两个模式散步在了网络的每一个连接权值上并且进行了记忆。此时,如果网络碰上了它们中任意哪个模式时,都可以迅速、准确的对其实现判断和识别。一般说来,网络中所含的神经元个数越多,则它能记忆、识别的模式也就越多12。5.4.2BP神经网络BP神经网络拥有许多个隐含层,能够对线性不可分这种种类的问题进行处理。BP算法的主要学习过程是:首先从输入层向输出层逐层传播,然后将误差信号,即网络的期望输出与实际输出之差由输出层通过隐含层朝着输入层传播,一层一层的改正连接权值,然后重复上述的过程对网络实现“记忆训练”。最后将全局误差趋向与最小值,减小误差,提高识别率。BP算法包含两部分的内容:信息的正向传递与误差的

55、反向传播上13。在进行正向传播时,输入到其中的信息从输入层出发通过隐含层一层层的计算并将其传到输出层,每一层所包含的神经元的状况仅仅会影响下一层所拥有的神经元的情况。假如输出层的结果并不是希望得到的结果,就需要去算出输出层对应的误差转变了多大,接着进行反向传播,依靠网络让误差信号按照正向传播时的路线返回去,然后修正每一层神经元的权值,已达到缩小误差的目的,一直到输出结果符合要求。BP网络和其它常见的反馈网络相反,它是前馈运行的,而且还具有监督的性质。它由输入层i、隐含层h、输出层k还有层与层中间的节点的连接权构成的。它还分成了正向和反向传播,下面对每一层都做一个相对充分的介绍。正向传播过程:输

56、入层输入值一般为样本各分量输入值,输出值一般等于输入值。隐含层对于节点j,其输入值net输出值(5-1)(5-2)(5-3).为其前一层各节点输出值0的加权和:net=工WO工i.i.iO=f(net)isi式中f()称为激励函数或者作用函数。一般采用sigmoid函数:s1f(net)=sj1+e-(net.-9.)/九式中9称为阙值,久称为温度系数。i隐含层还可以叫做特征提取层,可为一层或者多层,但是隐含层的层数越来越多的话,网格也会变得越来越复杂,与此同时学习速度也会减缓,网络对结果进行推导的作用可能会受到影响。网络隐含层和节点数应该选择多少效果会更好是BP网络算法需要解决的问题之一。输

57、出层的输入结果net与输出O与隐含层类似,它们是:kk(5-4)net=丫WOkkiiiO=f(net)(5-5)kxk反向传播过程一般情况下,会将BP算法的误差函数定义成实际输出的结果和理想的输出的均方误差和。通过使误差函数最小化的过程不断的改变权重,完成从输入到输出的非线性映射14。唐山学院毕业设计唐山学院毕业设计 网络输入模式样本为x二X,理想的输出结果为t1,则均方误差函数Eppipkp是:1E(t-O)2(5-6)p2pkpkk对全部的学习样本来说,系统的均方误差为:(5-7)1E二莎(t-O)2p2Ppkpkpk为了实现学习的要求,要按照误差函数来调整网络间的连接权值。标准的BP神

58、经网络沿着误差性能函数梯度的反方向修改权值,常用的BP学习算法采用最速(5-8)下降法调整权值,每次调整的增量为:W二-qkjdWkj式中0ni称为学习率。因此可以得到连接权值的修正量公式为:W=2Okjkj(5-9)对于输出节点:d=(t-O)0(1-O)(5-10)对于隐节点:kkkkk8=O(1-O)6Wjjjkkj(5-11)kBP网络的设计主要包括输入层,隐层,输出层及各层之间的传输函数等几部分15。1、网络层数BP网络包含的隐层任意。对多层BP神经网络,可以包含一到多个隐含层,每一个隐层所包含的神经元的个数最好是1个。如果是单个隐含层的网络,那么能够采用适量的添加神经元节点的个数,

59、并通过这种方法完成任意非线性映射。输入层节点数是由输入向量的维数决定的。在面临实际应用中的问题时,要从这个问题中抽取出一个抽象模型,形成输入输出空间。MATLAB软件中创建BP网络是应用函数newff或newcf来完成的。下面是创建BP神经网络的部分主要程序。alphabet=P;%字符targets=T;%目标R,Q=size(alphabet);%图像的大小S2,Q=size(targets);S1=10;net=newff(minmax(alphabet),S1S2,logsiglogsig,traingdx);2、网络数据的预处理能够实现预处理的方式是多种多样的。其中包括归一化、标准化

60、和主成分分析等方式。常采用的是归一化处理,即将输入、输出数据映射到-1,1范围内,训练结束后再反映射到原数据范围13。3、输出层神经元个数输出层神经元的个数与输入层类似,也要从实际问题中获取抽象模型并靠其得出神经元的个数。4、隐层的节点数隐层节点数会对BP神将网络的性能产生很大的影响。节点数越多,性能越好。但是会延长训练时间。通常的做法是采用经验公式估计节点。用各种大小的n进行实验,观察其误差并确定网络误差最小时的隐层节点数。5、传递函数BP网络中通常采用S型函数当做传递函数。主要是因为这种函数的输出与生物神经元的输出方式最为类似,可以模拟生物神经元的非线性特征,同时由于这种特征使得它能够加强

温馨提示

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

最新文档

评论

0/150

提交评论