基于神经网络的手写数字识别系统的设计与实现

目 录

摘要

ABSTRACT

第一章 绪论

1.1手写体数字识别研究的发展及研究现状

1.2神经网络在手写体数字识别中的应用

1.3 论文结构简介

第二章 手写体数字识别

2.1手写体数字识别的一般方法及难点

2.2 图像预处理概述

2.3 图像预处理的处理步骤

2.3.1 图像的平滑去噪

2.3.2 二值话处理

2.3.3 归一化

2.3.4 细化

2.4 小结

第三章 特征提取

3.1 特征提取的概述

3.2 统计特征

3.3 结构特征

3.3.1 结构特征提取

3.3.2 笔划特征的提取

3.3.3 数字的特征向量说明

3.3 知识库的建立

第四章 神经网络在数字识别中的应用

4.1 神经网络简介及其工作原理

4.1.1神经网络概述[14]

4.1.2神经网络的工作原理

4.2神经网络的学习与训练[15]

4.3 BP神经网络

4.3.1 BP算法

4.3.2 BP网络的一般学习算法

4.3.3 BP网络的设计

4.4 BP学习算法的局限性与对策

4.5 BP算法的改进

第五章 系统的实现与结果分析

5.1 软件开发平台

5.1.1 MATLAB简介

5.1.2 MATLAB的特点

5.1.3 使用MATLAB的优势

5.2 系统设计思路

5.3 系统流程图

5.4 MATLAB程序设计

5.5 实验数据及结果分析

结论 27

参考文献 28

致谢 30

附录 31

 要

手写体数字识别是模式识别中一个非常重要和活跃的研究领域,数字识别也不是一项孤立的技术,它所涉及的问题是模式识别的其他领域都无法回避的;应用上,作为一种信息处理手段,字符识别有广阔的应用背景和巨大的市场需求。因此,对数字识别的研究具有理论和应用的双重意义。

人工神经网络识别方法是近年该研究领域的一种新方法,该方法具有一些传统技术所没有的优点:良好的容错能力、分类能力强、并行处理和自学习能力,并且是离线训练和在线识别的。这些优点使它在手写体字符的识别中能对大量数据进行快速实时处理,并达到良好的识别效果。

由于手写体数字识别难于建立精确的数学模型,所以本文采用BP神经网络对这一问题进行处理。神经网络模式识别的一个关键步骤是预处理和特征提取,对于手写体数字识别,本文采用了一种基于结构特征和统计特征的提取方法,并用程序实现了这一特征提取过程。

通过测试,本识别系统对于较规范的手写体数字的识别达到了很好的识别效果。

关键词:  手写体数字识别,特征提取,人工神经网络,MATLAB

ABSTRACT

Handwritten character recognition is a very important and active research in pattern recognition. Theoretically, it is not an isolated technique. It concerns with the problem that all the other areas of pattern recognition must confronted; practically, being a kind of information processing measured,   character recognition has a very broad application background and vast need of market. Thus, it is of both theoretical and practical significance.

Artificial neural network recognition method is a new method of the research field in recent years, and this method has some merit that traditional technique do not have; good tolerance for error, strong sorting ability, strong parallel handling ability and strong self-learning ability as well as its off-line training and on-line recognizing. All these merits contribute its perfect performance in handling vast data set and handling in timely manner.

It’s difficult to make accurate mathematics model for handwritten numeral recognition, so BP neural networks is used here. The key steps of neural networks pattern recognition are preprocessing and feature subset selection. In this paper, algorithm of feature subset selection basing on structural characteristics and statistical characteristics has been adopted in handwritten numeral recognition, and the process of feature subset selection had been realized in program.

Recognition system in this paper has achieved a good rate of recognition in random handwritten numeral by test.

Keyword: handwritten numeral recognition, feature extraction, artificial neural network, MATLAB

第一章 绪 论

1.1手写体数字识别研究的发展及研究现状

模式识别[2]是六十年代初迅速发展起来的一门学科。由于它研究的是如何用机器来实现人(及某些动物)对事物的学习、识别和判断能力,因而受到了很多科技领域研究人员的注意,成为人工智能研究的一个重要方面。一个模式识别系统的基本职能是对系统所要处理的模式归属于哪一类做出判别,从该系统的模式输入到系统做出判别之间,主要包括信息检测、预处理、特征提取和分类几大环节。

字符识别是模式识别领域中的一个非常活跃的分支。一方面是由于问题本身的难度使之成为一个极具挑战性的课题;另一方面,是因为字符识别不是一项孤立的应用技术,其中包含的模式识别领域中其他分支都会遇到的一些基本和共性的问题。从50年代开始,许多的研究者就在这一研究领域开展了广泛的探索并为模式识别的发展产生了积极的影响。

字符识别,从采用的输入设备来分,可分为脱机识别(又称为光学字符识别Optical Character Recognition ,OCR)和联机识别,脱机字符又分为印刷体和手写字符识别,从对书写者要求来分,手写字符又分为限制性和非限制性的手写字符识别。在联机手写字符识别中,计算机能够通过与计算机相连的手写输入设备获得输入字符笔划的顺序、笔划的方向以及字符的形状,所以相对OCR来说它更容易识别一些。但联机字符识别有一个重要的不足就是要求输入者必须在指定的设备上书写,然而人们在生活中大部分的书写情况是不满足这一要求的,比如人们填写各种表格资料,开具支票等。如果需要计算机去认识这些已经成为文字的东西,就需要OCR技术。比起联机字符识别来,OCR不要求书写者在特定输入设备上书写,它可以与平常一样书写,所以OCR的应用更为广泛。OCR所使用的输入设备可以是任何一种图像采集设备,如扫描仪、数字相机等。通过使用这类采集设备,OCR系统将书写者已经写好的文字作为图像输入到计算机中,然后由计算机去识别。由于OCR的输入只是简单的一副图像,它就不能像联机输入那样比较容易的从物理上获得字符笔划的顺序信息,因此OCR是一个更具挑战性的问题。

脱机字符识别(OCR)分为印刷体OCR和手写OCR。印刷体字符比手写体字符少了随机性,它的识别相对容易些,难点已经不在识别环节,而在于字符的分割上。印刷体识别的错误绝大多数都是错误的分割引起的[3]。对于手写体OCR,无论是联机还是脱机识别,手写体的识别都要经历由限制性手写体识别到非限制性手写体识别两个阶段。本文将以手写体数字为代表,讨论非限制性手写体字符的识别。脱机字符识别的研究最早始于上个世纪六十年代,是为了应付汉英翻译的需要。八十年代后的研究重心转移到脱机手写字符的识别上。对于小类别数的字符集如数字、字母的识别,已经可以做到对书写不加任何的限制。非限制性手写OCR的研究始终以阿拉伯数字为主导。这事因为,第一,十个阿拉伯数字是全世界的一套通用字符。第二,在数字的许多应用场合,如报表、账单、支票等,手写体还难以被印刷体所替代,而且对识别的可靠性要求极高。三,由于类别数少,所以模式识别中的许多方法研究均可以以数字识别作为实验背景。对脱机手写体字符的研究,人们由简单集成笔画密度、笔画方向和背景特征方法过渡到特征匹配方法,进而过渡到结合神经网络方法,随着对识别可靠性要求的提高,九十年代以后,多分类器集成方法成为了一个研究重点。

1.2神经网络在手写体数字识别中的应用

目前,随着计算机的迅速发展,性能价格比的不断提高,模式识别技术已经从理论探讨为主发展到大量的实际应用,人们将更多的注意力开始转向那些用于语音、图像、机器人以及人工智能等的模式识别实际问题。解决这些问题的关键是需要进行复杂而庞大的实时数据处理,而现有计算机的存贮容量及计算复杂性的局限,使得真正实时化的应用受阻。这种面向实时应用的模式识别问题促使人们开始将并行处理的神经网络[4]应用到模式识别,而神经网络模式识别技术又将模式识别实时应用推进了一大步,手写体数字识别就是这种应用的一个很重要的领域。

手写体数字识别是一项极具研究价值的课题,随着神经网络[1]和模糊逻辑技术的发展,人们对这一问题的研究又采用了许多新的方法和手段,也使得这一古老的课题焕发出新的生命力[5]。目前国际上有相当多的学者在研究这一课题,它包括了模式识别领域中所有典型的问题:数据的采集、处理及选择、输入样本表达的选择、模式识别分类器的选择以及用样本集对识别器的有指导的训练。人工神经网络为手写体数字识别提供了新的手段。正是神经网络所具有的这种自组织自学习能力、推广能力、非线性和运算高度并行的能力使得模式识别成为目前神经网络最为成功的应用领域。

二十多年来,人们在数字识别领域做了大量的研究工作,所提出的各种方法在印刷体和手写印刷体数字识别方面已经取得了较好的成绩,识别率稳定在96%左右。但是自由手写体数字的识别工作目前并不成熟,仍旧是文字识别中最有挑战性的课题之一。

字符识别长期以来都是采用传统的识别方法,对印刷体字符的识别率一般只是稳定在96%左右,不能进一步提高;而对手写体字符的识别,其研究还处于探索阶段,其识别率还相当低,因此,为了提高识别率,就必须寻求新的方法和途径。

进入九十年代以来,人工神经网络(ANN)技术发展十分迅速,它具有模拟人类部分形象思维的能力,是一种模仿人脑学习、记忆、推理等认知功能的新方法。特别是它的信息并行分布式处理能力和自学习功能等显著优点,更是激起了人们对它的极大的兴趣。人工神经网络是由一些类似人脑神经元的简单处理单元相互连接而成的复杂网络。已涌现出许多不同类型的ANN及相应的学习算法,其中BP(或EBP-Error Back Propagation)网络及学习算法得到了广泛关注和研究,并在数字识别方面取得了许多有意义的应用成果。

1.3 论文结构简介

本毕业设计主要解决以图像形式存在的手写体数字识别的问题。整体分为三个部分,第一部分是图像预处理,第二部分是对手写体数字的结构特征的提取,第三部分是设计神经网络并对前面得到的样本数据进行学习和训练。

本文通过图像预处理和数字特征提取以后基于神经网络的判别方法,然后结合使用了MATLAB工具箱中提供的人工神经网络函数设计了一种手写数字识别的新方法。实验表明,该方法可以获得较好的识别率。

第二章 手写体数字识别

2.1手写体数字识别的一般方法及难点

字符识别问题的研究已有几十年的历史了,但时至今日,字符识别的研究成果远未达到人们所期望的,这其中有理论研究和技术实现等多方面因素. 在理论方面,我们对人类的视觉认知机理的研究还只是初步的,远未达到深入和透彻的水平。在技术方面,我们使用的计算机的运算水平和存储能力, 比起人脑的信息存储和处理能力有很大差距. 因此,目前的文字识别只能建立在现有的理论基础上,使用现有的技术来研究和解决问题。手写体数字识别是字符识别的一个分支,问题虽然简单,但却有较大的实用价值。

数字的类别虽然只有十种,笔划又简单,其识别问题表面上是一个较简单的分类问题。但实际上,虽然各种新的识别算法不断的推出。其识别率和误识率仍距实用有相当距离。手写阿拉伯数字具有变形多差异大的特点,字形与书写人的职业、文化程度、书写习惯以及所使用笔墨纸张所处环境等都有关,所以手写体数字变形多、规律复杂。具体地说有两个:一是0~ 9 十个数字中,其中的一些数字字形相差不大,使得准确区分某些数字相当困难;二是数字虽然只有十种,但同一数字写法千差万别。不同的人写出的同一个数字都有差别,即使同一个人在不同的时候也会有不同的写法。笔划的书写顺序经常发生变化,因此极大地增加了匹配的难度。一般人写字时都不会一笔一划的书写,为了节省时间,连笔字是自然而然的事情,对于结构识别而言,连笔一方面使笔划种类大大增加,甚至达到难以归纳的程度;另一方面,连笔又使得笔段抽取难度大增,因为连笔会增加一些冗余笔段,连笔造成的畸变又会使笔段方向严重离散。总之,连笔不论对于基于哪种基元的结构识别都是严峻的挑战。这是造成手写数字识别过程复杂、达到较高识别率困难的根本原因。

如图2.1各种各样的手写体数字。

图2.1 各种各样的手写体数字

2.2 图像预处理概述

预处理[6]是字符识别重要的一环, 它把原始的图像转换成识别器所能接受的二进制形式。

要识别手写体数字首先要对其字符图像进行预处理。预处理的主要目的是去除字符图像中的噪声、压缩冗余信息, 得到规范化的点阵, 为识别做好准备。这就要求预处理在消除图像中与识别无关的因素时尽量保持原图像的字符特征。

手写体数字图像预处理的过程,就一般情况而言,主要经过如图2.2所示的几个步骤。不同的识别方法对预处理的项目和要求有所不同。如结构识别方法[7],对字符规范化可以从简,甚至不需要。有的识别方法对细化要求很高,有的则不需要细化。本章中将分别对平滑去噪、二值化、归一化和细化分小节讨论。

图2.2  图像预处理的基本流程

2.3 图像预处理的处理步骤

2.3.1 图像的平滑去噪

手写体数字由于其随机性大,断笔,连笔、飞白状况时常发生,为了减少灰度图像的一些不该出现的黑白噪声,可以采用图像的平滑去噪技术。

进行图像平滑处理的是一种空域滤波器[8],空域滤波器一般可分为线性滤波和非线性滤波两类。线性滤波器的设计常基于对傅立叶变换的分析,如均值滤波器;非线性滤波器则一般直接对邻域进行操作,如中值滤波器。

以下为采用中值滤波对图像进行平滑处理的部分代码[9]:

for i=2:175;

      for j=2:259

        Xtemp=0;

        for m=1:3

            for n=1:3

                Xtemp=Xtemp+X2(i+m.2,j+n.2);

            end

        end

        Xtemp=Xtemp/9;

        X3(i,j)=Xtemp;

      end

end

2.3.2 二值化处理

图像的二值化就是把图像中的像素根据一定的标准划分成两种颜色。在这个系统中就是根据像素的灰度值处理成黑白两种颜色。对数字字符图像二值化后要能真实的再现原数字, 其基本要求为:笔画中不出现空白点, 二值化的笔画基本保持原来文字的结构特征。图像二值化的关键在于阈值的选择。图像的

  • 19
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值