基于VC++的数字识别系统的设计与实现1第1章绪论1.1数字识别概述模式识别是六十年代初迅速发展起来的一门学科。由于它研究的是如何用机器来实现人(及某些动物)对事物的学习、识别和判断能力,因而受到了很多科技领域研究人员的注意,成为人工智能研究的一个重要方面。字符识别是模式识别的一个传统研究领域。从50年代开始,许多的研究者就在这一研究领域开展了广泛的探索,并为模式识别的发展产生了积极的影响。字符识别一般可以分为两类:1.联机字符识别;2.光学字符识别(OpticalChara-cterRecognition,OCR)或称离线字符识别。在联机字符识别中,计算机能够通过与计算机相连的输入设备获得输入字符笔划的顺序、笔划的方向以及字符的形状,所以相对OCR来说它更容易识别一些。但联机字符识别有一个重要的不足就是要求输入者必须在指定的设备上书写,然而人们在生活中大部分的书写情况是不满足这一要求的,比如人们填写各种表格资料,开具支票等。如果需要计算机去认识这些己经成为文字的东西,就需要OCR技术。比起联机字符识别来,OCR不要求书写者在特定输入设备上书写,它可以与平常一样书写,所以OCR的应用更为广泛。OCR所使用的输入设备可以是任何一种图像采集设备,如CCD、扫描仪、数字相机等。通过使用这类采集设备,OCR系统将书写者已写好的文字作为图像输入到计算机中,然后由计算机去识别。由于OCR的输入只是简单的一副图像,它就不能像联机输入那样比较容易的从物理特性上获得字符笔划的顺序信息,因此OCR是一个更具挑战性的问题。数字识别是多年来的研究热点,也是字符识别中的一个特别问题,它是本文研究的重点。数字识别在特定的环境下应用特别广泛,如邮政编码自动识别系统,税表和银行支票自动处理系统等。一般情况下,当涉及到数字识别时,人们往往要求识别器有很高的识别可靠性,特别是有关金额的数字识别时,如支票中填写的金额部分,更是如此。因此针对这类问题的处理系统设计的关键环节之一就是设计出高可靠性和高识别率的数字识别方法。然而可以说还没有哪个数字识别器达到完美的识别效果。在过去的数十年中,研究者们提出了许许多多的识别方法。按使用的特征不同,这些方法可以分为两类:基于结构特征的方法和基于统计特征的方法。结构特征通常包括圆、端点、交叉点、笔划、轮廓等,统计特征通常包括点密度的测量、矩、特征区域等,一般来说,两类特征各有优势。例如,使用统计特征的分类器易于训练,而且对于使用统计特征的分类器,在给定的训练集上能够得到相对较高的识别率,而结构特征的主要优点之一是能描述字符的结构,在识别过程中能有效地结合几何和结构基于VC++的数字识别系统的设计与实现2的知识,因此能够得到可靠性较高的识别结果。1.2神经网络在数字识别中的应用神经网络模型用于模拟人脑神经元活动的过程。其中包括对信息的加工、处理、存储和搜索等过程,它具有如下基本特点:1、神经网络具有分布式存储信息的特点。它存储信息的方式与传统的计算机的思维方式是不同的,一个信息不是存在一个地方,而是分布在不同的位置。网络的某一部分也不只存储一个信息,它的信息是分布式存储的。神经网络是用大量神经元之间的连接及对各连接权值的分布来表示特定的信息。因此,这种分布式存储方式即使当局部网络受损时,仍具有能够恢复原来信息的优点。2、神经网络对信息的处理及推理的过程具有并行的特点。每个神经元都可以根据接收到的信息作独立的运算和处理,然后将结果传输出去,这体现了一种并行处理。神经网络对于一个特定的输入模式,通过前向计算产生一个输出模式,各个输出节点代表的逻辑概念被同时计算出来。在输出模式中,通过输出节点的比较和本身信号的强弱而得到特定的解,同时排出其余的解。这体现了神经网络并行推理的特点。3、神经网络对信息的处理具有自组织、自学习的特点。神经网络中各神经元之间的连接强度用权值大小来表示,这种权值可以事先定出,也可以为适应周围环境而不断地变化,这种过程称为神经元的学习过程。神经网络所具有的自学习过程模拟了人的形象思维方法,这是与传统符号逻辑完全不同的一种非逻辑非语言的方法。在神经网络研究的历史进程中,它在模式识别方面的应用一直是最活跃和最成功的领域。神经网络与它在模式识别中的应用是息息相关,密不可分的。几乎可以说,神经网络模式识别研究的发展史贯穿了整个神经网络的研究历程。目前,随着计算机的迅速发展,性能价格比的不断提高,模式识别技术己经从理论探讨为主发展到大量的实际应用,人们将更多的注意力开始转向那些用于语音,图像、机器人以及人工智能等的模式识别实际问题。解决这些问题的关键是需要进行复杂而庞大的实时数据处理,而现有计算机的存贮容量及计算复杂性的局限,使得真正实时化的应用受阻。这种面向实时应用的模式识别问题促使人们开始将并行处理的神经网络应到模式识别,而神经网络模式识别技术又将模式识别实时应用推进了一大步,数字识别就是这种应用的一个很重要的领域。数字识别是一项极具研究价值的课题,随着神经网络和模糊逻辑技术的发展,人们对这一问题的研究又采用了许多新的方法和手段,也使得这一古老的课题焕发出新的生命力.目前国际上有相当多的学者在研究这一课题,它包括了模式识别领域中所基于VC++的数字识别系统的设计与实现3有典型的问题:数据的采集、处理及选择、输入样本表达的选择、模式识别分类器的选择以及用样本集对识别器的有指导的训练。人工神经网络为数字识别提供了新的手段。正是神经网络所具有的这种自组织自学习能力、推广能力、非线性和运算高度并行的能力使得模式识别成为目前神经网络最为成功的应用领域。1.3数字图像处理的应用数字图像处理主要研究的内容有以下几个方面:1、图像变换。由于图像阵列很大,直接在空间域中进行处理,涉及计算量很大。因此,往往采用各种图像变换的方法,如傅立叶变换、沃尔什变换、离散余弦变换等间接处理技术,将空间域的处理转换为变换域处理,不仅可减少计算量,而且可获得更有效的处理(如傅立叶变换可在频域中进行数字滤波处理)。目前新兴研究的小波变换在时域和频域中都具有良好的局部化特性,它在图像处理中也有着广泛而有效的应用。2、图像编码压缩。图像编码压缩技术可减少描述图像的数据量(即比特数),以便节省图像传输、处理时间和减少所占用的存储器容量。压缩可以在不失真的前提下获得,也可以在允许的失真条件下进行。编码是压缩技术中最重要的方法,它在图像处理技术中是发展最早且比较成熟的技术。3、图像增强和复原。图像增强和复原的目的是为了提高图像的质量,如去除噪声,提高图像的清晰度等。图像增强不考虑图像降质的原因,突出图像中所感兴趣的部分。如强化图像高频分量,可使图像中物体轮廓清晰,细节明显;强化低频分量可减少图像中噪声影响。图像复原要求对图像降质的原因有一定的了解,一般讲应根据降质过程建立“降质模型”,再采用某种滤波方法,恢复或重建原来的图像。4、意义的特征部分提取出来,其有意义的特征有图像中的边缘、区域等,这是进一步进行图像识别、分析和理解的基础。虽然目前已研究出不少边缘提取、区域分割的方法,但还没有一种普遍适用于各种图像的有效方法。因此,对图像分割的研究还在不断深入之中,是目前图像处理中研究的热点之一。5、图像描述。图像描述是图像识别和理解的必要前提。作为最简单的二值图像可采用其几何特性描述物体的特性,一般图像的描述方法采用二维形状描述,它有边界描述和区域描述两类方法。对于特殊的纹理图像可采用二维纹理特征描述。随着图像处理研究的深入发展,已经开始进行三维物体描述的研究,提出了体积描述、表面描述、广义圆柱体描述等方法。6、图像分类(识别)。图像分类(识别)属于模式识别的范畴,其主要内容是图像经过某些预处理(增强、复原、压缩)后,进行图像分割和特征提取,从而进行判基于VC++的数字识别系统的设计与实现4决分类。图像分类常采用经典的模式识别方法,有统计模式分类和句法(结构)模式分类,近年来新发展起来的模糊模式识别和人工神经网络模式分类在图像识别中也越来越受到重视。在数字识别中分类识别之前要利用数字图象处理和计算机图形学的知识进行图象的预处理以便进行下面的特征提取以及识别。图象的预处理包括二值化、图象的增强、图象的锐化以及图象的分割等。1.4本论文所做的工作本论文在数字识别及预处理方面做了如下工作:1、介绍了数字识别广阔的应用前景和常用的识别方法,通过分析指出数字识别的难点在于无法建立精确的数学模型和做出简单可行的识别系统。2、本文第二、三章介绍了人工神经元网络基本原理和它的BP学习算法,然后论述了模式识别的方法和有关概念,指出了神经网络之所以能够用于数字识别的内在机理和独特优势。3、第四章分析了常规数字识别的基本步骤,并指出数字识别的关键步骤是预处理和特征提取。详细了图像预处理的步骤及BP神经网络在数字识别中的应用。基于VC++的数字识别系统的设计与实现5第2章模式识别及人工神经网络概述2.1模式识别简述在观察各种事物或接受各种客观现象时,人们总是不断地进行模式识别。各种具有相似的特征又不完全相同的事物和现象组成不同的类别。在同一类别中,事物和现象不尽相同,但它们总是表现出某些方面的相近之处。例如,每个人写出来的数字“8”可能千差万别,但它们的共同之处在于,它们都属于数字,“8”这个范畴。也就是说,这些千差万别的数字“8”的共性是它们具有相同的属性特征。人的思维可以对初次见到的事物进行分类。比如,即使人们初到一个城市,也可以轻易地辨认出“街道”、“房屋”、“汽车”这样的事物。同样,看到另外一种写法的“8”,人们仍然可以清楚地知道它的含义。正是人脑的这种推广能力,使得人们利用见到过的有限事物和现象,形成各种事物类别的概念。这些有限的、个别的事物和现象就可以称为模式,而整个类别的现象和事物则可以称为模式类,或者简称为类。人们根据所见模式的特性,将其划归为某一类的过程,实际上就是模式识别的过程。模式识别这个词既可以是指人对事物的,一个分析、描述、判断和识别的过程,也可以是指利用计算机对某些物理对象进行分类的这门学科。模式和集合的概念是分不开的,模式可以看作是集合论中的元素,而类则可以看作是子集。2.2人工神经网络模式识别具体的模式识别是多种多样的,如果从识别的基本方法上划分,传统的模式识别大体分为统计模式识别和句法模式识别,在识别系统中引入神经网络是一种近年来发展起来的新的模式识别方法。尽管引入神经网络的方法和引入网络的结构可以各不相同,但都可称为神经网络模式识别。而且这些识别方法在解决传统方法较难处理的某些问题上带来了新的进展和突破,因而得到了人们越来越多的重视和研究。人工神经元网络(ArtificialNeuralNetwork)简称神经网络,是基于日前人们对自然神经系统的认识而提出的一些神经系统的模型,一般是由一系列被称为神经元的具有某种简单计算功能的节点经过广泛连接构成的一定网络结构,而其网络连接的权值根据某种学习规则在外界输入的作用下不断调节,最后使网络具有某种期望的输出特性。神经网络的这种可以根据输入样本学习的功能使得它非常适合于用来解决模式识别问题,这也是神经网络目前最成功的应用领域之一。基于VC++的数字识别系统的设计与实现6预处理神经网络模式识别的基本方法是,首先用己知样本训练神经网络,使之对不同类别的己知样本给出所希望的不同输出,然后用该网络识别未知的样本,根据各样本所对应的网络输出情况来划分未知样本的类别。神经网络进行模式识别的一般步骤如图2-1所示,分为如下几个部分。图2-1神经网络模式识别基本构成1、样本获取这一步骤主要是为了得到一定数量的用于训练和识别的样本。2、常规处理其作用相当于传统模式识别中的数据获取和常规处理两步的功能。即通过对识别对象的有效观测、进行采样量化,获得一系列数据,再经过去除噪声、加强有用信息等工作获得尽量逼真的原始数据。通过这一步骤,得到了样本的原始表达。3、特征变换在原始样本表达的基础上,进行适当的变换,得到适合神经网络进行识别的样本的特征表达。以上两步构成了神经网络模式识别中的预处理过程。这一步骤与传统模式识别的特征提取选