常见问题      欢迎来到牛博士论文网, 本站提供、本科毕业论文范文硕士论文范文博士毕业论文范文发表职称论文范文,牛博士用心为您服务!欢迎关注微信公众号   
理工论文毕业论文分类>>
毕业论文怎么写更多写论文技巧>>
关于我们
    牛博士论文网经过十余年的心酸代写历程,我们起初的梦想逐渐变成了现实,已经发展成为了一个本科、硕士、博士研究生毕业论文代写代发为主的代写毕业论文平台。十二年专注致力于博士硕士专本科论文代写服务这一核心业务模块,让我们成为了业内有序经营时间最长的综合性论文网站之一,拥有丰富的服务经验和社会资源。合作的写作老师已有2000多位,均为有丰富实践经验的高学历专业人才,以保证文稿的质量与版权,为广大毕业生解决经济、管理、法律、医学、会计、体育、历史、教育教学、建筑等专业的毕业论文及代发代写论文等服务,强大的写作团队奠定了我们的实力! 我们相信通过我们的不断努力和追求,一定能够实现与客户的互利共赢!

python数字手写识别系统的设计与实现

本站原创   发布时间:2018-12-17   [点击量:611]  


Python作为一门编程语言,被昵称为“胶水语言”,更被热爱它的程序员誉为“最美丽的”编程语言。从云端、客户端,到物联网终端,python应用无处不在,同时也是人工智能首先的编程语言。下面给大家分享一篇,用python实现数字手写识别系统


摘   要

手写体数字识别是图像识别中一个较成熟的研究课题,是模式识别领域最成功的应用之一。本论文旨在研究GMM分类器和最近邻分类器这两种基本算法在数字识别这一问题上的应用。实验直接调用MNIST中数据集,集中每个手写数字存储为一个784维的归一化后的二值特征向量,因此可以省略数字的预处理过程,包括灰度化及二值化处理等。直接进行特征提取即主成分分析,把重点放在不同样本总数下二种方法的识别正确率的比较,验证最近邻法的渐进错误率最优极限为贝叶斯错误率这一结论。


关键词  数字识别 ,特征提取,主成分分析,GMM分类器,最近邻分类器,渐进错误率


第一章 

1.1 项目背景

自上世纪六十年代以来,计算机视觉与图像处理越来越受到人们的关注,并逐渐成为一门重要的学科领域。而作为它们的研究对象的数字图像,也因为它含有研究目标的丰富信息而成为越来越重要的研究对象。图像识别的目标是用计算机自动完成某些信息的处理,用来替代人工去处理图像分类及识别的任务。而模式识别是六十年代初迅速发展起来的一门学科。由于它研究的是如何用机器来实现人及某些动物对事物的学习、识别和判断能力,因而受到了很多科技领域研究人员的注意,成为人工智能研究的一个重要方面[1-5]。

1.2 手写数字识别的发展

手写数字识别是图像识别学科下的一个分支,是图像处理和模式识别领域研究的课题之一,由于其具有很强的实用性一直是多年来的研究热点。由于手写体数字的随意性很大,例如,笔画的粗细,字体的大小,倾斜等等都直接影响到字符的正确识别。在过去的数十年中,研究者们提出了许多的识别方法,取得了较大的成果。按提取的数字特征的不同,可以将这些方法分为两类[6-8]:基于结构特征的方法和基于统计特征的方法。统计特征通常包括点密度的测量、矩、特征区域等;结构特征通常包括圆、端点、交叉点、笔划、轮廓等,一般来说,两类特征各有优势。例如,使用统计特征的分类器易于训练,而且对于使用统计特征的分类器,在给定的训练集上能够得到相对较高的识别率;而结构特征的主要优点之一是能描述字符的结构,在识别过程中能有效地结合几何和结构的知识,因此能够得到可靠性较高的识别结果。在此次的设计中使用的是统计特征[9]。

在近几年国内外对手写数字识别系统的研究已经取得了进展,一些新的理论例如基于深度置信神经网络、基于小波技术、基于BP 神经网络以及支持向量机的研究应用在建立手写数字识别系统平台,并且在多数数据库中取得了较好的测试结果。但是目前仍然存在亟需深入研究解决的问题:一是识别的准确度需要达到较好的水平;二是识别的效率要达到很高的水平。数字识别输入的数据通常是很大的,而高精度与高速度是相互矛盾。这些难点存在的原因[10-15]是:

1) 数字的笔划简单,而且其笔划差别相对较小,字形相差不大,使得准确区分某些数字有一些困难;

2) 数字虽然只有10种,并且笔划简单,但同一数字写法却千差万别,全世界的各个国家各个地区的人都在用,则其书写上带有区域特性,很难做出可以兼顾世界各种写法的、识别率极高的通用性数字识别系统;

3)特征库的训练不够会导致识别率不高。

1.3 手写数字识别研究的意义

手写体数字识别实用性很强,在大规模数据统计(如例行年检,人口普查),财务,税务,邮件分拣等等应用领域中都有广阔的应用前景。手写体数字识别在特定的环境下,如邮政编码自动识别系统,税表和银行支票自动处理系统等一般情况都有应用。当涉及到数字识别时,人们往往要求识别器有很高的识别可靠性,特别是有关金额的数字识别时,如支票中填写的金额部分,更是如此[16]。

针对这类问题的处理系统设计的关键环节之一就是设计出高可靠性和高识别率的手写体数字识别方法。这个领域取得了飞速的发展,部分是由于更好的学习算法,部分是由于更优良的训练集。美国国家科学学会(NIST)建立了一个包含60000个经过标注的数字的数据库,它已经成为对新的学习算法进行比较的性能测试标准。然而可以说还没有哪个手写体数字识别器达到完美的识别效果。

手写数字识别的研究不仅存在很大的应用价值[17-20],由于手写数字识别本身的特点,对它的研究也存在着重要的理论价值:

1) 阿拉伯数字作为唯一被世界各国通用的符号,所以对手写体数字识别的研究基本上与文化背景无关,各地的研究工作者可以说是基于同一平台开展工作的,有利于研究的比较和探讨。

2) 手写数字识别应用广泛,如税表系统,银行支票自动处理和邮政编码自动识别等。在以前,这些工作需要大量的手工录入,投入的人力物力都相对较多,而且劳动强度较大。为了适应无纸化办公的需要,大大提高工作效率,研究实现手写数字识别系统是必须要做的。

3) 由于数字类别只有0-9共10个,比其他字符识别率较高,可将其用于验证新的理论或做深入的分析研究。许多机器学习和模式识别领域的新理论和算法都是先用手写数字识别进行检验,验证其理论的有效性,然后才会将其应用到更为复杂的领域当中。在这方面的典型例子就是人工神经网络和支持向量机。

4) 手写数字的识别方法很容易将其推广到其它一些相关的问题上,如对英文之类拼音文字的识别。事实上,有许多学者就是把数字和英文字母的识别放在一起研究的。

1.4 数字识别系统的一般结构

手写体数字识别系统需要完成以下主要方面的研究与设计工作[21]:手写数字绘制的问题、数字的预处理问题、特征提取问题、特征库的建立问题、数字识别问题。在本文中数字识别程序用Python来实现,程序实现了手写数字的输入、学习、识别过程。在最初的训练样本为数据集中全部60000个数据。在数字识别时分别使用了Bayes决策与最近邻决策两种方法。首先,通常小型手写数字识别系统应包含以下结果模块:

1.数字的获取与预处理

一般图像系统的预处理需要对图像进行灰度化处理、去噪处理等基本操作。在手写数字图像识别系统中,预处理是为了突出手写体数字的特征。图像的二值化处理就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果。在手写数字识别系统中,我们利用程序保存的坐标值就可以对生成一张二值化图像,相当于图像处理系统的二值化处理。这样内存中图像的数据区域的二维数组就跟手写区域的坐标相同,我们再取出手写区域的坐标值,将这些坐标值对应到图像图像数据区域中,并且将它的灰度值置为255(白色),将图像数据区域的其它坐标值下的灰度值置为0(黑色),这样我们就得到了一张手写数字的二值化图像。在数字图像处理中,二值图像占有非常重要的地位,图像的二值化有利于图像的进一步处理,使图像变得简单,而且数据量减小,能突显出感兴趣的目标的轮廓。

2.特征的提取

若直接把预处理后的数据作为输入量,进行分类计算时数据时数据量大,同时由于手写字体的多样化及图像本身和预处理过程中附带的某些干扰的影响,对系统的容错能力要求较高。特征提取的目的就是从分析数字的拓扑结构入手,把它的某些结构特征提取出来,使数字的位移、大小变化、字形畸形等干扰相对较小,也就是把那些反映数字特征的关键信息提供给系统,这样就等于间接地增加了系统的容错能力,而且经过特征提取后数据量也大大减少了,这样就提高了识别的效率[22-23]。

因此得到手写数字的二值化图像后,通常要进行特征提取前需要对此图像的数据区域进行定位,在程序中我们遍历此二值化图像,找到手写数字区域的上、下、左、右边界,重新生成一张数字图片,利用新生成的数字图片分成N*N的区域,统计每个区域的目标像素个数和整个小区域像素个数,计算目标像素个数与整个小区域像素的比值,得到N*N个特征值,作为这个手写数字的特征值。

手写数字识别的特征提取极大程度地影响着分类器的设计和性能,以及识别的效果和效率。为了保证所要求的分类识别的正确率和节省资源,希望依据最少的特征达到所要求的分类识别的正确率。在进行手写数字识别的过程中,特征提取应遵循以下原则:

(1)特征应能尽量包含字符的有用信息;

(2)特征的提取方法应简单而且提取快速;

(3)各个特征之间的相关性应尽可能小;

(4)特征数量尽可能少;

(5)特征应有较好的抗干扰能力,同时要考虑到算法的实时性、快速性和准确性。

3.特征库的训练

我们需要训练一个特征库,作为识别的标准。我们可以手写一个数字提取出它的特征值,再输入这些手写数字,将数字与这些特征值相对应存储到特征库里面,在程序中将此输入数字与所有特征值相对应,作为模板库的一条记录,初始化模板库之后,就可以对手写数字进行识别,在识别的过程中我们不断的丰富模板库,如果手写数字识别成功则不需要将此数字存储到模板库中,如果识别失败就需要将此数字存储到模板库中,这样我们的模板库将越来越丰富,特征库越丰富,识别率越高。本文我们简化了这一过程,直接使用MNIST数据库中储存样本信息。

4.数字识别

在手写数字识别中,即分类器准则的设计,是整个过程的核心。如本文中使用的一个方法是最近邻法,其实质就是提取出手写数字的特征值,利用这些特征值与特征库的数字的特征值进行比对,它是将从待识别的图像提取的若干特征量与模板对应的特征量进行比较,计算图像和模板特征量之间的距离,用最小距离法判定所属类。模板匹配通常事先建立标准模板库。这里,模板库中的标准模板是数字样本的特征向量。找出待识别数字特征值与特征库里存储的特征值最接近的数字,作为识别结果。

5.性能需求分析 

得到数字识别系统后,我们要对这一系统的识别效果做出评价,通常从以下三个方面入手:

(1)正确性:根据手写数字识别系统的设计流程,流程中的每个步骤在系统中都必须有所体现,以保证程序的正确性;

(2)精确性:根据手写数字识别系统的应用领域,该系统的识别结果必须有很高的识别精度,这样才能真正的实现该系统的价值;

(3)效率性:根据该系统的应用领域可知,系统一旦投入应用需要处理大量的数据,所以对系统的处理速度也有很高的要求。

综上所述,数字识别系统的基本结构一般分为左右两部分,左半部分完成未知类别模式的分类;右半部分属于设计分类器的训练过程,利用样品进行训练,确定分类器的具体参数,完成分类器的设计。而分类决策在识别过程中起作用,对待识别的样品进行分类决策。

(全文略)

参 考 文 献

[1].张学工. 模式识别[M]北京:清华大学出版社,2010.8.

[2].王有伟. 手写体数字识别.[D].山东:山东大学硕士学位论文.2004.

[3].许东星.基于GMM和高层信息特征的识别研究.[D].河北.中国科学技术大学博士学位论文.2009.

[4].Bishop C M. Pattern recognition and machine learning[M]. Vol. 1:springer New York,2006.

[5].朱小燕. 手写体字符识别研究[J]. 模式识别与人工智能, 2000.

[6].张林娜. 手写数字识别系统的设计与实现.[D]北京.北京理工大学. 2009.

[7].Yang J M, Kao C Y, A robust evolutionary algorithm for training neural networks. Neural Computing and Application[M], 2001.10 214~230.

[8].Ciaccio E. J., Dunn S.M, Akay M, Binominal Pattern Recognition and interpretation Systems (Review of Applications), IEEE Engineering in Medicine and Biology Magazine[M],1994, 13 .2:269~ 273, 283.

[9].吴佑寿,丁晓青. 汉字识别原理方法与实现[M].北京:高等教育出版社,1992.105~121.

[10].张立明.人工神经网络的模型及其应用[M].上海:复旦大学出版社,1992.156~170.

[11].蔡元明.神经网络识别手写体数字预处理后样本空间凸集性研究,中国科学院半导体所硕士学位论文[D].保存地点:华中科技大学图书馆,1995.6.

[12].崔屹.图像处理与分析--数学形态学方法及应用[M].北京: 科学出版社,2002.

[13].金忠等.手写体数字有效鉴别特征的抽取与识别,计算机研究与发展,36(12),1999,1484~1489.

[14].飞思科技产品研发中心. MATLAB6.5辅助图像处理.北京:电子工业出版社,2002.212~220.

[15].飞思科技产品研发中心. MATLAB6.5辅助小波分析与应用.北京:电子工业出版社,2002.

[16].胡小峰.四维科技.Visual C++/MATLAB 图像处理与识别实用案例精选.北京:人民邮电出版社,2004:32~35.

[17].MATLAB,信号处理的小波导引.北京:机械工业出版社,2002:58~59.

[18].孙即祥等.模式识别中的特征提取与计算机视觉不变量.国防工业出版社,2001.9:115~140.

[19].黄心哗,王茂祥,富煌清,陆估人.基于结构分析的手写体数字识别算法.电子工程师[J],1999年第11期.

[20].Bernhard R. C,Shi Y,Evolving artificial neural networks,In: Proc of 1998 Int'l Conf. on neural networks and brain pp. PL5-PL13. Beijing,P. R. China,1998.

[21].Hu, J., Yan, H., A model-based segmentation method for handwritten numeral strings,Computer Vision and Image Understanding [N] ,70(3),1998,383~403.

[22].从爽.面向MATLAB工具箱的神经网络理论与应用.中国科学技术大学出版社[M],2003: 19~35.

[23].飞思科技产品研发中心,神经网络理论与MATLAB7实现.北京:电子工业出版社[M],2005: 42~51.

文章标题:《python数字手写识别系统的设计与实现》,原文地址:,如有转载请标明出处,谢谢。

上一篇: BIOS中显示字符串子功能的程序框架研究


下一篇:基于JAVA的银行账户管理系统的设计与实现_代写毕业论文


[相关文章]