基于BP神经网络的字符识别算法的实现设计

基于BP神经网络的字符识别算法的实现设计
基于BP神经网络的字符识别算法的实现设计

基于BP神经网络的字符识别算法的实现设计

一、原始依据(包括设计或论文的工作基础、研究条件、应用环境、

工作目的等。)

工作基础:了解C++的基本概念和语法,熟练使用Visual C++6.0软件。

研究条件:BP神经网络的基本原理以及图像处理的基本常识。

应用环境:基于BP神经网络的图片图像文件中的字符识别。

工作目的:掌握基于Visual C++6.0应用程序的开发。

了解人工智能的基本概念并掌握神经网络算法的基本原理。

掌握Visual C++6.0中的图片处理的基本过程。

二、参考文献

[1]人工智能原理及其应用,王万森,电子工业出版社,2007.

[2]VC++深入详解,孙鑫,电子工业出版社,2006.

[3]人工神经网络原理, 马锐,机械工业出版社,2010.

[4]Visual C++数字图像处理典型案例详解,沈晶,机械工业出版社,2012.

[5]Application of Image Processing to the Characterization of

Nanostructures

Manuel F. M. Costa,Reviews on Advanced Materials

Science,2004.

三、设计(研究)内容和要求(包括设计或研究内容、主要指标与技术参数,并根据课题性质对学生提出具体要求。)

1、掌握C++的基本概念和语法。

2、掌握二维神经网络的基本原理。了解BP神经网络的基本概念。

3、完成Visual C++中对于图像的灰度、二值化等预处理。

4、完成基于样本的神经网络的训练以及图像中数字的识别,并对其性

能进行统计和总结,分析其中的不足。

指导教师(签字)

年月日

审题小组组长(签字)

年月日北京理工大学本科生毕业设计(论文)开题报告

摘要

人工神经网络是通过对人脑生物神经机理进行简化,抽象和模拟之后建立起来的一种计算模型,属于机器学习的重要研究领域。

本设计主要提出一种用神经网络来识别含有数字字符的方法。神经网络采用带有动量项和自适应学习率的反向传播算法(BP)进行训练。在识别之前要对图像进行一系列的预处理,主要包含灰度化、二值化、锐化、噪声去除、字符分割、字符归一化、字符骨架提取等。经过预处理的图片适合后续的训练及识别。预处理后对图片上的字符进行特征提取,特征提取的方法很多,这里选择效果较好的十三特征提取法来进行特征提取。最后采用BP神经网络来对待检测的图片上的数字进行识别。

关键词:反向传播算法;BP网络;人工神经网络;图像处理;特征提取

ABSTRACT

Artificial neural network is a computational model which is established after the simplification of the biological neural mechanism of human brain and abstract and simulation. It belongs to the important research field of machine learning.

In this design, a neural network is proposed to identify the method of containing digital character. The neural network is trained by the back propagation (BP) algorithm with momentum and adaptive learning rate. Before identification, there are a series of image pretreatment which are graying, binarization, sharpening, noise removal, character segmentation, character normalization and character skeleton extraction. Images which are pretreated will be more suitable for the later training and recognition. After pretreatment, feature extraction is performed. There are a lot of ways of feature extraction, the extraction method of thirteen features which has better evaluation was chosen here. Finally, it uses BP neural network to identify the numbers on the pictures which are to be tested.

Keywords: BP algorithm; BP Neural Network; ANN; image processing;Feature Extraction.

目录

第一章绪论 (1)

1.1字符识别的简介 (1)

1.2文字识别方法及研究现状 (1)

1.3课题研究内容 (2)

第二章人工神经网络 (3)

2.1人工神经网络算法 (3)

2.2BP网络 (6)

第三章图像的预处理 (13)

3.1256色位图灰度化 (13)

3.2灰度图像二值化 (14)

3.3图像的梯度锐化 (15)

3.4去除离散的杂点噪声 (15)

3.5整体倾斜度调整 (16)

3.6字符分割 (17)

3.7标准归一化 (19)

3.8紧缩的紧缩重排 (20)

3.9特征提取 (20)

第四章基于人工神经网络的数字识别 (23)

4.1系统框架 (23)

4.2基于神经网络的数字识别的基本过程 (23)

4.3程序的运行 (27)

第五章总结与展望 (29)

5.1总结 (29)

5.2后续工作及展望 (29)

参考文献

外文资料

中文译文

致谢

第一章绪论

1.1 字符识别的简介

字符识别是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,然后用字符识别方法将形状翻译成计算机文字的过程;即,对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程。如何除错或利用辅助信息提高识别正确率,是字符识别中最重要的课题。

早在60、70年代,世界各国就开始有对于字符识别的研究,而研究的初期,多以文字的识别方法研究为主,且识别的文字仅为0至9的数字。以同样拥有方块文字的日本为例,1960年左右开始研究OCR的基本识别理论,初期以数字为对象,直至1965至1970年之间开始有一些简单的产品,如印刷文字的邮政编码识别系统,识别邮件上的邮政编码,帮助邮局作区域分信的作业;也因此至今邮政编码一直是各国所倡导的地址书写方式。

1.2 字符识别方法及研究现状

1.2.1 字符识别方法

字符识别方法:字符识别方法基本上分为统计、逻辑判断和句法三大类。常用的方法有模板匹配法和几何特征抽取法。

① 模板匹配法将输入的字符与给定的各类别标准文字进行相关匹配,计算输入字符与各模板之间的相似性程度,取相似度最大的类别作为识别的结果。这种方法的缺点是当被识别类别数目增加时,标准字符模板数量也随之增加。这一方面会增加机器的存储容量,另一方面也会降低识别的正确率,所以这种方式适用于识别固定字型的印刷体字符。这种方法的优点是用整个字符进行相似度计算,所以对于字符缺损、边缘噪声等具有较强的适应能力。

② 几何特征抽取法抽取字符的一些几何特征,如字符的端点、分叉点、凹凸部分或水平、垂直、倾斜等各方向的线段、闭合环路等,根据这些特征的位置及相互关系进行逻辑组合判断,获得识别结果。这种识别方式由于利用了结构的信息,因此也适用于手写体文字那样变型较大的字符。

1.2.2 字符识别发展现状

字符识别可应用于许多领域,如阅读、文献资料的检索、信件的分拣、稿件的校对、银行支票的处理、商品发票的统计汇总、商品编码的识别等。它可以方便用户快速录入信息,提高各行各业的工作效率。

进入20世纪90年代以后,随着我国信息化建设的全面开展,以及我国信

息自动化和办公自动化的普及,大大推动了字符识别技术的进一步发展,使字符识别技术的识别正确率、识别速度满足了广大用户的要求。文字识别技术诞生20余年来,经历从实验室技术到产品的转变,目前已经步入行业应用开发的成熟阶段。相比发达国家的广泛应用情况,在国内,文字识别技术在各领域的应用还有着广阔的空间。随着国家信息化建设的发展,文字识别技术拥有了一个全新的行业应用局面。各个研究文字识别的软件将会更加深入到信息化建设的各个领域。

1.3 课题研究内容

本课题研究内容如下:

1.BP神经网络是人工神经网络的其中一种,它利用实际输出与期望输出之差对网络的各层连接权由后向前前逐层进行校正。通过学习BP网络的算法,对BP网络进行反复训练,确定稳定的权值与阈值,进而应用到字符识别系统中去。

2.对待识别图片进行一系列预处理。预处理的过程主要包括对于图像的灰度化、二值化、图像的梯度锐化、离散噪点的去处、图像倾斜度的调整、字符的分割、图像的归一化处理、图像的紧缩重排等。

3.识别过程分为三个阶段:图像预处理阶段,BP网络的训练阶段,字符识别阶段。设计程序分别完成三个阶段,利用BP神经网络识别正确出图片中的数字信息。

第二章人工神经网络

2.1 人工神经网络

人工神经网络(Artificial Neural Network,简称ANN),以数学模型模拟神经元活动,是基于模仿大脑神经网络结构和功能而建立的一种信息处理系统。人工神经网络具有自学习、自组织、自适应以及很强的非线性函数逼近能力,拥有强大的容错性。它可以实现仿真、预测以及模糊控制等功能。是处理非线性系统的有力工具。

2.1.1 人工神经网络算法

一、设计信息处理单元连接的方式

按照信息处理单元的连接方式,神经网络可以分为多种类型。这里介绍按照结点有无反馈划分的两种典型的网络结构:

(1)前馈网络

网络可以分为几个层。各层按信号传输先后顺序依次排列,第i层的神经元只接受第i-1层神经元给出的信号。各神经元之间没有反馈。输入层结点与输出层结点称为“可见层”,其他中间层则称为“隐层”。

(2)反馈网络

网络分层,某些结点除了接受外加输入以外,还要接受其他结点的反馈,或者是自身的反馈。当然,除了这种划分方式,还有按照层数划分为单层网络与多层网络,按照输入数据的特点划分为离散网络和连续网络等。

不同的网络在性能和效率上会有很大的差异,一般来说,跨层连接的结点越多,网络越是可靠;层数越多,网络的效率越低;反馈越多,网络的学习能力越强;结点个数越多,网络的记忆能力就越好。因此往往要根据实际应用设计网络的连接。在这里,我们不难得出一个结论:信息处理单元连接的方式的设计是人工神经网络算法设计的一个重要方面。

二、设计学习算法

在人工智能领域,人工神经网络是模拟人脑的模式匹配的主要手段。根据常识我们很容易理解,人脑要对某个模式得到正确匹配,需要大量的训练和纠正。训练越多,纠正越多,匹配就越准确。人工神经网络也是如此,要通过大量的学习才能投入正确使用,在使用中又不断地自我学习。

现以人工神经网络对手写“A”、“B”两个字母的识别为例进行说明,规定当“A”输入网络时,应该输出“1”,而当输入为“B”时,输出为“0”。所以网络学习的准则应该是:如果网络作出错误的的判决,则通过网络的学习,应使得网络减少下次犯同样错误的可能性。首先,给网络的各连接权值赋予(0,1)区间内的

随机值,将“A”所对应的图象模式输入给网络,网络将输入模式加权求和、与门限比较、再进行非线性运算,得到网络的输出。在此情况下,网络输出为“1”和“0”的概率各为50%,也就是说是完全随机的。这时如果输出为“1”(结果正确),则使连接权值增大,以便使网络再次遇到“A”模式输入时,仍然能作出正确的判断。

如果输出为“0”(即结果错误),则把网络连接权值朝着减小综合输入加权值的方向调整,其目的在于使网络下次再遇到“A”模式输入时,减小犯同样错误的可能性。如此操作调整,当给网络轮番输入若干个手写字母“A”、“B”后,经过网络按以上学习方法进行若干次学习后,网络判断的正确率将大大提高。这说明网络对这两个模式的学习已经获得了成功,它已将这两个模式分布地记忆在网络的各个连接权值上。当网络再次遇到其中任何一个模式时,能够作出迅速、准确的判断和识别。一般说来,网络中所含的神经元个数越多,则它能记忆、识别的模式也就越多。

这个例子引出了一个“学习算法”。学习算法的设计是人工神经网络算法设计的另外一个重要的方面。学习算法设计得好,网络的学习能力就越强,容错能力也越强。

三、设计功能函数

信息处理单元的功能是人工神经网络算法设计的又一重要方面,一般以功能函数的形式给出(及模型中的F函数)。功能函数的设计直接影响到网络的功能。常见的功能函数有:

(1)简单线性函数

神经元功能函数F连续取值,输入X由连接矩阵W加权产生输出。

F(X)=X

(2)对称硬限幅函数

F(X)=SGN(X-Θ).此函数只有二值,大于阀值Θ输出+1,小于阀值Θ输出-1。

(3)正线性函数

F(X)=0 if X<0;

F(X)=X if X>=0。

另外还有硬限幅函数,线性函数,饱和线性函数,对称饱和线性函数,淡极性S形函数,双曲正切S形函数,竞争函数等。

综上,设计信息处理单元的连接方式,设计网络学习算法,设计信息处理单元的功能,是人工神经网络算法设计的三个基本的方面。具体的算法细则应该根据网络的性能,功能,应用场合等设计。

图2-1 线性神经网络结构模型

2.1.2神经网络的学习过程

模仿人的学习过程,人们提出了多种神经元网络的学习方式,其中主要有两种:有教师学习、无教师学习。按学习方式进行神经元网络模型分类时,可以分为相应的两种,即有教师学习网络、无教师学习网络。有教师型的学习或者说有监督型的学习是在有指导和考察的情况下进行的,如果学完了没有达到要求,那么就要再继续学习。无教师型的学习或者说无监督性的学习是靠学习者或者说神经系统本身自行完成的。这种学习没人监督,学到什么程度全靠大脑中的神经元网络的学习能力,最后也能把这种知识掌握到一定

的程度。学习是一个相对持久的变化过程,往往也是一个推理的过程。例如通过经验也可以学习,学习是神经元网络最重要的能力。

本设计采用的学习过程为有教师学习过程,其模型大致如下。

图2-2有教师学习网络

2.1.3神经网络的学习规则

输入部接收外来的输入样本X,由训练部进行网络的权系数W调整,然后由输出部输出结果。在这个过程中,期望的输出信号可以作为教师信号输入,由该教师信号与实际输出进行比较,产生的误差去控制修改权系数W。

在图中,1X,2X,…,n X,是输入样本的信号,W,2W,…,n W是权系数。

1

输入样本信号Xi 可以取离散值“0”或“1”。输入

样本信号通过权系数作用,在u 产生输出结果Xi Wi ∑,即有:n X n W X W X W u +++∑= 2211

再把期望输出信号Y(t)和u 进行比较,从而产生误差信号e 。即权值调整机构根据误差e 去对学习系统的权系数进行修改,修改方向应使误差e 变小,不断进行下去,使到误差e 为零,这时实际输出值u 和期望输出值Y(t)完全一样,则学习过程结束。

图2-3 学习机构模型

2.2 BP 网络

BP(Back-Propagation)神经网络算法,即反向传播神经网络算法,是一种用于前向多层神经网络的反向传播学习算法,这种算法由梅尔哈特

(D.Rumelhart)和麦克莱伦德(MeClelland)于

1985年提出,并实现了明斯基的多层网络设想。在BP神经网络算法中,我们可以对组成前向多层网络的各人工神经元之间的连接权值进行不断的调整,从而使该神经网络能够将输入它的信息变换成所期望的输出信息。如果将BP神经网络算法看作是一个变换,而网络中各人工神经元之间的连接权值看作变换中的参数,那么,这种算法的目的就是要求得这些参数。更进一步的说,BP神经网络算法在调整各人工神经元的连接权值时,所依据的是该网络的实际输出与其期望输出的差值,这个差值被反向的一层一层的向后传播,来决定各层神经元的连接权值的修改。目前,BP神经网络算法已经成为应用最多而且最主要的一种训练前向人工神经网络的学习算法,同时,这种算法也是前向网络得以广泛应用的基础。

BP神经网络的网络结构是一个前向的多层网络,该网络中不仅含有输入层节点和输出层节点,而且还含有一层或多层的隐层节点。在BP 神经网络中,同层的各神经元之间互不连接,相邻层的神经元则通过权值连接。当有信息输入BP 神经网络时,信息首先由输入层节点传递到

第一层的隐层节点,经过特征函数(人工神经元)作用之后,再传至下一隐层,这样一层一层传递下去,直到最终传至输出层进行输出。其间各层的激发函数要求是可微的,一般是选用S型函数。最基本的BP神经网络是包括输入层,隐层,输出层这三层节点的前馈网络。如下图所示。

图2-4多层前馈网络结构示意图

2.2.1BP神经网络的学习过程

BP 神经网络的学习目的是对网络的连接权值进行调整,使得调整后的网络对任一输入都能够得到所期望的输出。BP 神经网络的学习过程由正向传播和反向传播组成。正向传播用于对前向网络进行计算,即对某一输入信息,经过网络计算后求出它的输出结果;反向传播用于逐层传递

相关主题
相关文档
最新文档