python的som网络及其在手写体数字识别的应用(源码)【字数:10460】

摘 要随着近些年来机器智能的高速发展,字符识别已经被广泛应用于实际生活。而手写体数字识别作为字符识别的一个领域,也已经成为了人们研究的热点。在邮政编码的自动识别系统、税表与银行支票的自动处理系统中,手写体数字识别通过计算机自动识别手写的阿拉伯数字以及其较高的可靠性和易操作性,已经逐渐替代了人工识别,大大提高了工作效率和正确率。机器学习是实现手写体数字识别的一种方法,包括有监督学习和无监督学习。无监督学习是指在没有任何的数据样本做训练的情况下,直接对数据进行建模,它适用于没有训练样本或者训练样本成本过高。本文采用的SOM网络(Self Organizing Maps,自组织映射神经网络)就是一种无监督学习的聚类算法,搭建了Keras编程环境,分析了算法的基本原理和结构,最后应用python语言实现了该算法,计算了算法的正确率,并将训练结果进行了可视化,实验证明了SOM算法的高效性,良好的可视化性以及低失误率的准确性。
目 录
第一章 课题简介 1
1.1课题研究意义 1
1.2课题研究现状 1
1.3课题内容安排 3
第二章 开发技术简介 4
2.1Ubuntu介绍 4
2.2python介绍 4
2.3Keras介绍 5
第三章 SOM算法原理 7
3.1算法介绍和原理 7
3.2算法步骤 8
第四章 SOM算法实现 9
4.1算法实现 9
4.2实验结果 12
4.2.1选择样本 12
4.2.2实验环境 12
4.3.3结果对比 12
结束语 15
致谢 16
参考文献 17
第一章 课题简介
1.1课题研究意义
光学字符识别(OpticalCharacterRecognition,简称OCR)是模式识别技术的一种,其基本思想是把字符图像分割简化为若干基元[1],如拓扑点、结构突变点等,看必要的基元是否存在,不可有的基元是否出现,从而判断所属的类别[1]。光学字符识别将期刊、杂志、书籍、文档等印刷品中的文字或数字以及其他 *好棒文|www.hbsrm.com +Q: #351916072# 
字符信息通过扫描或者拍摄等光学设备的获取转换成图像信息,再使用字符识别技术把事先处理过的图像中的文字信息转换成计算机可以识别的机器信息,即方便了计算机的管理和维护,同时又减少了这些文字信息的存储量。
字符识别所处理的信息可以归为两类:一是文字信息,包括使用各国家和民族文字所书写、印刷的文本信息;二是数据信息,包括阿拉伯数字或由少数特殊符号组成的统计数据和各种编号。而本课题所要研究的内容是针对阿拉伯数字的手写体数字识别应用。
手写体数字识别作为光学字符识别的一个分支,其研究内容是:利用计算机自动识别技术识别人工手写体阿拉伯数字。例如邮政编码或者税表和银行支票的自动识别处理系统涉及到数字识别时,就要求该系统有较高的识别可靠性,尤其是涉及到有关金额的数字识别,例如支票上需要填写金额的部分。所以在面对这种问题时,系统设计的主要环节之一就是如何设计出具有高识别率和高可靠性的手写体数字识别。而这种通过手写体数字识别实现信息的自动录入,已经成为了解决传统人工处理中存在的工作量大、时效性差、成本高、效率低等问题最有效的帮助。
把手写体数字识别进行分类可以分为:按识别的对象来分,包括手写印刷体数字和自由手写体数字的识别;按识别系统运行方式分类,包括联机手写体数字和脱机手写体数字的识别,而本课题研究的内容则是属于脱机手写体数字识别。单从识别技术的难度来说,手写体数字识别技术的难度高于印刷体数字识别,而在手写体数字识别中,脱机手写体数字识别的难度又远远超过了联机手写体数字识别。并且由于每个人的书写习惯不同,相同数字的手写体最终的展示结果也会有很大差异,例如字体变形,结构不规范等问题。而脱机手写体数字与联机手写体数字不同,一般无法获取到写字的力度、速度、笔画顺序等信息,所以导致目前脱机手写体数字的效果还不够理想。但在经过多年的研究过程中,结合实际应用中的推广,脱机手写体数字识别可以通过聚类算来来完成。
而本课题研究的SOM网络(Self Organizing Maps,自组织映射神经网路)可以对数据进行无监督聚类学习,SOM的思想很简单,本质上是一种只有输入层和隐藏层的神经网路,训练采用的是“竞争学习”的方式。相对于其他网络,SOM隐藏层中的某些节点可以没有任何输入数据,并且具有良好的可视化图形。
1.2课题研究现状
面对科学技术的飞速发展,人们对计算机识别能力的要求也愈来愈高。如何将数字方便、快速地输入到计算机中已成为关系到计算机技术普及的关键问题[2]。目前手写体数字识别的实际应用领域有:(1)大规模的数据统计,例如,成绩单录入、人口普查报告、财务报表录入等数据统计需要做大量的数据处理和统计;(2)面对经济快速发展所带来的财务、税务、支票等大量数据,则采用高精度的手写体数字识别技术可以节省大量的时间和金钱;(3)经济的发展导致私人和隐私快件的急剧增加,从而邮件分拣系统每天拥有600余万件的快递需要分拣,而手写体识别系统可以大大减少邮件分拣的成本和时间等资源。针对于手写体数字识别的实际用例,下面介绍几种方法:
HMM(Hidden Markov Model, 隐马尔科夫模型)是一种统计学机器学习技术,它提供了一种基于训练数据的概率自动构造识别系统[3]。因为HMM对变化模式处理的灵活性,同样也被使用在图像处理和字符识别中。使用HMM进行脱机手写体数字识别时,就是在对相应的图像做分类识别,它不仅可以通过图像来建立二维的HMM模型,也可以将二维的图像转化为一维的特征向量进行处理。基于HMM的手写体数字识别通过模型参数的学习和训练,从而利用已建立的HMM模型做手写体数字识别。
主曲线的原理是主要成分分析的非线性推广,它通过数据的“中间”分布,并满足“自相合”的光滑曲线[4],较好的反映了数据分布的结构特征。利用软K段主曲线算法提取训练数据的特征[5],在分析手写体数字结构特点的基础上,找出手写体数字识别使用的粗分类与细分类特征,利用这些特征对手写体数字进行识别。该方法在CEDAR手写体数字数据库上的实验表明:选取的分类特征能够有效区分相似的手写体字符,提高手写体字符的识别率[5],为脱机手写体字符识别研究提供了一种新方法。

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/rjgc/440.html

好棒文