[理学]毕业论文唐炜炜.doc
2010 届毕业设计(论文) 题 目: 手写数字识别方法研究 学 院: 电子与信息工程学院 专 业: 通信工程 班 级: 通信0602 姓 名: 唐炜炜 指导教师: 谭红 起讫时间: 2010-3-20-2010-6-14 2010年6月37手写数字识别方法研究摘 要手写数字识别是图像处理和模式识别领域中的研究课题之一。手写数字由于书写者的因素,使其数字图像的随意性很大,如:笔画粗细、字体大小、字体的倾斜度等差异都将直接影响到数字字符的最终识别结果,因此手写数字识别是模式识别领域内最具有挑战性的课题。本文主要对手写数字识别的方法进行研究。文中描述了手写数字识别的研究背景和发展状况,并且详细介绍了手写数字识别的预处理方法,讨论了灰度化、二值化、去噪、字符分割、归一化、细化、特征提取和分类识别等方法。在此基础上实现了一个数字识别系统。本系统提取数字的粗网格特征,采用BP神经网络进行训练和识别,并且创建了一个图形用户界面对系统的识别效果进行验证。实验结果表明,本系统其识别正确率达到了预期设想,是行之有效的系统。关键词:数字识别 粗网格特征 BP神经网络目 录摘 要Recognition of handwritten digitsAbstractHandwritten number recognition is one of the research topic field of image processing and pattern recognition. As a result of the written factors that make number images very arbitrary, such as: stroke thickness, font size, the inclination of handwritten numbers, which have a direct impact on the correct identification of numbers. So recognition of handwritten numbers is the most challenging issues of pattern recognition area.The paper aims to study the methods of handwritten number recognition. In this paper, the background and development of the handwritten number recognition method are introduced. Also the preprocessing of the handwritten number recognition is introduced, which discuss the algorithms of binarization, the smooth, character segmentation and refinement. And then it uses the characters of coarse grid to pick up the numbers characters. After that it use the BP neural network to train and recognize. At last, a GUI is created to verify the result. The experimental results show that the recognition systems recognition accuracy meets the expected requirements. The system is effective. Key Words: Number recognition; Characters of coarse grid; BP neural network 目 录摘 要IAbstractII第一章 绪论11.1 手写数字识别的意义和应用前景11.2 字符识别的研究与发展21.3 手写数字识别的难点31.4 本文的主要内容和安排3第二章 字符图像预处理52.1 图像灰度化52.2 图像二值化62.3平滑去噪82.4 字符分割92.5 字符图像的归一化和细化102.5.1 字符图像的归一化102.5.2 字符图像的细化102.6 本章小结11第三章 字符特征提取123.1 统计特征提取123.1.1 复杂指数特征123.1.2 四周边特征133.1.3 投影特征133.1.4 弹性网格特征133.2 结构特征提取143.2.1 笔道密度函数143.2.2 空洞和缺口143.2.3 字符的特殊节点数143.2.4 字符链码153.3 本文的特征提取153.4 本章小结16第四章 神经网络训练及识别174.1 人工神经网络模型174.1.1 生物神经元模型174.1.2 神经元模型184.1.3神经网络模型184.2 BP神经网络194.2.1 BP神经网络介绍194.2.2 BP神经网络的构建204.2.3 BP神经网络的学习训练204.3 基于BP神经网络的字符分类器的设计214.3.1 BP网络的结构设计214.3.2 BP神经网络学习参数设计224.4 本章小结23第五章 系统实现和性能分析245.1 系统的实现245.1.1 预处理模块245.1.2 特征提取模块255.1.3 基于BP神经网络分类器模块265.2 系统性能测试与分析285.2.1 系统性能测试285.2.2 系统性能分析29第六章 总结与展望306.1 工作总结306.2 对未来的展望30参考文献31附1 字符预处理模块程序32附2 BP神经网络分类器的设计34附3可视化GUI识别验证程序35致谢38南京工业大学本科生毕业设计(论文)第一章 绪论手写体数字识别是多年来的研究热点,是指利用计算机自动识别手写在纸张上的数字,它是模式识别领域中最成功的应用之一,具有很高的商业价值。目前,市场上也出现了一些手写体数字识别产品,在许多特定系统(如邮政编码自动识别系统、银行支票自动处理系统等)中有广泛的应用。但由于各人、各地的写法不同,要完全正确的识别手写体数字仍是一件不容易的事情。总之,机器的识别能力与人自身的识别还是有很大差距的,这种差距激励着更多的研究者不断的研究各种各样的手写体数字识别方法。1.1 手写数字识别的意义和应用前景对手写体数字的识别研究不仅有着重大的现实意义而且还有十分广阔的应用前景。当今经济的发展,金融市场化进程的日益加快,票据业务发展很快,票据数量也与日俱增。其中个人凭证、支票、发票、进账单等等票据均需要处理大量的信息。而目前,人类的许多信息是记录在纸上的文字图像,将这些信息输入计算机是比较繁琐且低效的工作。如果通过手写体字符识别技术来实现信息的自动录入,无疑将会有效解决传统人工处理方式中存在的工作量大、成本高、效率低、时效性差等问题。此外,手写数字识别应用领域还有:(1) 手写数字识别在大规模数据统计的应用。例如:人口普查、成绩单录入、行业年检、财务报表录入等应用中。(2) 手写数字识别在财务、税务、金融领域应用。随着我国经济的快速发展,每天会有大量的财务、税务、支票等需要处理。(3) 手写数字识别在邮件分拣系统中的应用。由上可见,对手写体数字识别有着很高的实用价值,除此之外,手写体数字识别作为模式识别领域的一个重要问题,也有着重要的理论价值:(1) 阿拉伯数字是唯一的被世界各国通用的符号,对于手写体数字识别的研究基本上与文化背景无关,这样就为世界各国研究者提供了一个供大家共同探讨技术的平台,研究并比较各种算法的优缺点。(2) 由于手写体数字识别的类别少,有助于作深入分析与验证一些新的理论。这方面最明显的例子是人工神经网络(Artificial Nenural Network,ANN)。很多ANN模型和算法都是以手写体数字识别作为实验测试平台,验证其理论的有效性,评价各种方法各自的优缺点。(3) 尽管人们对手写体数字识别已经从事了很长时间的研究,并取得了一定的成果,但是到目前为止,机器识别本领与人的认知能力相比,还是有很大的差距。(4) 手写体数字识别的方法很容易被推广到其它相关问题上,比如英文字母识别、汉字识别等等。1.2 字符识别的研究与发展字符识别的最早能追溯到1890年一项帮助盲人阅读装置的发明专利。1929年,由德国人Tausheck首先正式提出光学字符识别(Optical Character Recognition ,OCR)的概念,并取得了OCR专利权,四年后美国人Handel也取得了同样的专利权。但真正OCR是在本世纪50年代随着计算机的出现而到来的。在字符识别大发展时期(1990年后),许多研究者对字符识别进行了探索与研究,当时提出许多新的有效识别工具,其中人工神经网络(Artificial Neural Network ,ANN),支持向量机(Support Vector Machine),隐马尔科夫模型(Hidden Markov Model,HMM)等,而这些识别工具至今仍然是研究的热点。(1) 在人工神经网络识别方法中,模式类的描述方法一般还是特征向量,只是在分类时,利用了神经网络的自动学习和记忆功能,通过对样本的训练建立起记忆,然后将未知样本作为输入让神经网络“回忆”出该样本所属的类别。(2) 支持向量机是Vapnik 等人根据统计学理论提出的一种新型机器学习方法。由于其出色的学习性能,该技术已成为机器学习界的研究热点,并在很多领域都得到了成功的应用,如人脸识别、手写体数字识别、文本自动分类等。(3) 隐马尔科夫模型是一类基于马尔科夫随机过程的统计模型。隐马尔科夫模型对于随机信号具有很强的学习和建模能力,因此在语音识别中取得了很大的成功。从上世纪90年代开始,一些研究者已经将隐马尔科夫模型引入到了图像处理、识别和分析中来。手写体数字识别在学科上属于模式识别和人工智能的范畴。在过去的数十年中,研究者提出了许多识别方法,目前手写体数字识别方法可以分为两类:基于结构特征的方法和基于统计特征的方法。通过几十年来各国研究学者得对数字识别的研究,国内外在手写识别上也取得了一定的成就。在我国邮电部第三研究所,以信函分拣为目的,识别书写在信封上的邮政编码。其它用传统方法进行识别研究的有中国科学院自动化研究所,该所对手写体数字识别的研究历史几乎有20年了,在他们新近的报告中,利用以有限状态自动机为主的识别途径识别1100个手写体数字,识别率达95.2%,拒识4%,误识0.2%,上海交通大学基于压缩字结构特征的手写体数字识别算法选取了12600个样本组成训练集,6000个样本组成测试集,用BP网络进行分类,识别正确率为97.58%,误识率为1.04%,拒识率为1.38%。 德国E9的Friedhelm Schwenker采用SV-RBF40对手写体数字进行识别,测试样本10000个,识别正确率为98.56%。清华大学采用SVM对金融票据中的手写体数字进行识别,测试样本20000个,识别率约为92%。然而以上提到的系统,要么对书写的正规程度有要求,要么其测试样本和训练样本出于同一批人之手。总之,一般的系统对书写人员限制较多,或者对书写的正规程度有要求,或者对书写位置有要求,或者对所用笔、纸有要求,例如对税务报表的识别就要求用规定的字型书写数字,并且对书写的位置有要求,而真正的无限制手写体数字的识别的研究还有待进一步提高。1.3 手写数字识别的难点数字识别的难点主要在于以下几方面:(1) 阿拉伯数字的字型信息量很小,不同数字写法字形相差又不大,使得准确区分某些数字相当困难。(2) 数字虽然只用10种,而且笔画简单,但书写上带有明显的地域特性,同一数字写法千差万别,不同地域的人写法也不相同,所以很难做到兼顾各种写法的极高识别率的通用型数字识别系统。(3) 在实际应用中,对数字的单字识别正确率的要求要比文字要苛刻得多。这是因为文字组合一般都存在上下文关系,但数字组合存在极少的或没有上下文关系,所以每个孤立数字的识别都至关重要。而且数字识别经常涉及到财务、金融领域,其严格性更是不言而喻的。因此,对手写数字识别系统的要求不仅仅是单纯的高正确率,更重要的是极低的误识率。(4) 由于脱机手写数字的输入只是简单的一幅图像,它不像联机输入那样可以从物理输入设备上获得字符笔画的顺序信息,因此脱机手写数字识别是一个更有挑战性的问题。1.4 本文的主要内容和安排 本文将对手写数字识别的预处理、特征提取及分类识别的方法进行研究,一个数字识别系统包括图像预处理模块,特征提取模块,字符分类模块。本文的系统框图如图1.1所示。图1.1 系统结构框图 由图1.1可知,数字图像在送入计算机后要先对其进行预处理操作,本文将在第二章介绍图像预处理的相关步骤,并给出一些步骤的效果图。第三章将对数字识别中的特征提取进行介绍,将涉及到特征提取的两大类方法:结构特征提取及统计特征提取。最终介绍本系统使用的特征提取方法:粗网格特征提取法。对于数字识别而言,字符分类器的设计至关重要。在第四章中,本文将对BP神经网络分类器的背景、设计、算法等进行介绍。在本文的第五章,将使用图形用户界面对所设计的系统进行验证。并对结果进行分析,找出不足。最后对论文的工作进行总结和展望。第二章 字符图像预处理数字识别是将写在纸张上的数字,经过扫描变为模拟信号,再经模数变换变为数字信号输入计算机。由于纸张的厚薄、光洁度、书写质量等会造成计算机读取的数字变形,加上扫描、输入过程中不可避免的存在噪声,从而会给实际识别造成干扰。因此在识别前要对输入的图像进行预处理。2.1 图像灰度化图像按色彩类型分为彩色图像、单色图像或称灰度图像。大多数图像是用32位RGB格式表示的,在RGB真彩色图像中,每个像素由相应于红、绿、蓝的3个不同的值组成。当然彩色图像还可以表示成HSL,HSV,HSI等模式。而灰度图像是彩色图像的一个分量之一,一般是8bit的,每个像素用(0,255)表示。只有0和1(或0和255)二值表示的灰度图我们称之为二值图。为了保留更多的图像信息,减小目测结果的误差,本研究采集的是RGB模式的彩色图像。由于印刷的污点和纸张不清洁的影响使彩色图像不容易实现图像分割,故需将彩色图像转化为灰度图像,以利于待识别图像的进一步处理。 设经过扫描输入计算机的图像点阵为: (2.1)式(2.1)中的是图像每个像素点的色彩值。彩色图片上每个像素颜色由RGB三个分量决定,每个分量有255种值可取。 (a)原彩色图像 (b)灰度化图像图2.1 图像灰度化效果图将彩色图像的灰度化处理成灰度图像可用两种方法来实现:第一种方法是求出每个像素点的R, G, B三个分量的平均值,然后将这个平均值赋予给这个像素的三个分量;第二种方法是根据YUV的颜色空间中,Y的分量的物理意义是点的亮度,由该值反映亮度等级,根据RGB和YUV颜色空间的变化关系可建立亮度Y与R, G, B三个颜色分量的对应:,以这个亮度值表达图像的灰度值。本系统将使用方法二进行灰度化操作,灰度化效果如图2.1。 2.2 图像二值化 二值化就是将灰度图像进行二值化处理,将图像上的点的灰度置为0或255,使整个图像呈现出明显的黑白效果,且二值化图像仍可以反映图像整体和局部特征。对图像进行二值化,需要选择合适的阈值,同时为了得到理想的二值图像,一般采用封闭、连通的边界。由于字符笔画内部有均匀一致的灰度值,使用阈值法就可以得到比较好的分割效果。字符灰度图像中灰度小于阈值T的像素被判定为字符笔画,灰度值置为0。否则这些像素点被认为是背景,其灰度值用255表示。一般的二值化方法有整体阈值法、局部阈值法、动态阈值法。所谓整体阈值法就是指事先设定一个阈值T,在对所有像素进行操作时此阈值T都保持不变,阈值T可以由通过灰度直方图得出。设原始图像灰度级为L,灰度值为i的像素点数为,则图像全部像素数为: (2.2)归一化直方图为: (2.3)图2.2 灰度双峰直方图图2.2所示两个波峰分别为数字笔画和背景部分,波谷即该图的整体阈值T。目标灰度与背景灰度有明显的差距时采用整体阈值法可以达到很好的二值化效果,但是若输入的图像的目标灰度和背景灰度差距不大或光照不均时,采用此方法就不能得到较好的效果。本文采用的是Otsu二值化方法(最大类间方差法)。依照阈值T,将灰度级划分为两类: (2.4)因此和类的出现概率和均值分别由下式给出: (2.5) (2.6) (2.7) (2.8)式中:。由此可知,对任何t值,下式均成立: (2.9)和类的方差可由下式求出: (2.10) (2.11)定义类内方差为: (2.12)类间方差为: (2.13)使类内方差和类间方差之比达到最大值时的T值即为最佳阈值。采用此方法对图2.1所示灰度图像进行二值化操作后的效果如图2.3所示。图2.3 二值化图像2.3平滑去噪数字图像的噪声主要来自于图像的获取阶段。噪声对于图像的预处理非常重要,它会影响图像处理的输入、采集、处理各个环节和识别结果的全过程。特别是图像的输入、采集的噪声是十分关键的问题。如果输入不良伴有较大的噪声,滤波去噪后不能达到理想效果,将必然的严重影响处理的全过程甚至识别结果。噪声去除已经成为图像处理极其重要的步骤,然而现在还没有一个通用的滤波去噪方法对所有的图片适用,一般的图像预处理必须根据实际情况选择不同滤波去噪方法进行比较,最后得出最佳的滤波去噪方法。滤波去噪的方法可以简单分为两类:频域滤波和空间域滤波。频域滤波一般采用的方法是将空间图像采用快速傅里叶变换转换成频域信息,然后再采用信号处理的滤波方法进行滤波,滤波处理后再通过傅里叶逆变换成空间图像信息,从而达到去噪效果。但是由于频域滤波需要频域转换后再采用滤波器滤波,其实现起来较为复杂,效率也相对较低,而空间域滤波方法速度较快、实现简单、效果很好,因此现在很多研究者中都采用空间域滤波方法对数字图像进行滤波。常用的滤波方法如下:邻域平滑法:利用某一像素及其邻域像素灰度的平均值作为该中心像素的灰度值,该方法简单但缺点明显,它使图像边界变得模糊。保存边界平滑法:以某一像素作为正方形邻域的中心点,然后选择若干模板,计算每个模板所含像素灰度的方差,计算方差最小的模板所含像素灰度的平均值作为该像素的灰度值。该方法既可以达到去噪的目的,又可以同时保存边界,但计算量庞大。中值滤波算法:中值滤波算法的思想是首先确定一个以某像素为中心点的邻域,一般为方形邻域,然后将邻域中的各个像素的灰度值进行排序,取其中间值作为中心点像素灰度的新值。这里的邻域一般可以称为窗口。当窗口在图像中上下左右进行移动后,利用中值滤波算法就可以很好地对图像进行去噪处理,同时使得图像更加平滑。2.4 字符分割 由于考虑到数字识别的时长及识别准确率,若直接识别一连串数字则效率较低,因此要将输入的一连串数字进行分割,分割成单个的数字再进行识别。一般地,现有字符分割的方法可分为三类。其中第一类是基于统计方法的切分,这种方法适用于字符宽度相差不大的场合。它根据字符的总体统计分布特征,确定字符之间的界线。进行分割判别时以字符的平均字宽作为辅助判别,统计分布特征的代表性和稳定性对切分的正确性及收敛性起很重要的作用;第二类是基于结构的切分,即从字与字之间以及字符本身的结构入手,综合分析、寻找切分的规则;第三类是基于识别的切分方法,即在实际切分前,对各种可能存在的切分结果进行识别,通过对识别结果的判别来选择最终的切分点。而本系统采用的字符分割方法如下:第1步,先自下而上对图像进行逐行扫描直至遇到第一个黑色的像素点并记录下来。然后再自上而下的对图像进行逐行扫描直至找到第一个黑色像素点,这样就找到了图像大致的高度范围;第2步,在这个高度范围内逐列进行图像扫描,把遇到的第一个黑色像素点作为字符分割的起始位置,然后继续扫描,直至遇到有一列中没有一个黑色像素点。这样就得到了第一个字符比较精确的宽度,记录下这个宽度,以备后用。接着照此方法一直扫描到图像最右端,获得所有字符的宽度;第3步,在已知的每个字符精确宽度的范围内,按照第一步的方法,分别自下而上和自上而下的逐行扫描从而获得每个字符的精确高度,这里同样需要对这个值h做记录以备后用。以图2.3中第一行的数字“6”为例,如图2.4所示为二值化图像进行字符分割的效果图。 (a)为左右分割的图像 (b)为左右分割后再进行上下分割后的图像图2.4 二值化图像字符分割效果图2.5 字符图像的归一化和细化由于书写的随意性,分割后的数字图像的大小不尽相同,各笔画的密度也不尽相同,因此要对图像进行归一化和细化。2.5.1 字符图像的归一化 归一化是指将不同大小的字符图像映射到固定大小的字符点阵中来满足识别的需要。归一化可分为线性归一和非线性归一两种方法。线性归一化就是将文字图像按比例线性放大或缩小为同一尺寸,算法简单,失真较小,但是无法调整手写字符的中心位置和笔画密度。非线性归一化强调按照手写字符的特征分布来处理,调整字符的中心位置,削弱那些偏长、偏粗的笔画段,增强一些较短、较细的笔画,或者是突出字符笔画密集的区域,压缩笔画分散的区域。常见的实现方法有:基于字符点密度的方法,基于字符笔画交叉点密度的方法等。本系统将使用线性归一化。本文将切分后的图像归一化为70x50大小的点阵图像,图2.5即归一化后的效果图。图2.5 归一化图像效果图2.5.2 字符图像的细化 对字符细化处理过程中:要保留原有笔画的连续性,不能由于细化造成笔画断开;要细化为单线,即笔画宽度只有一个像素;细化后的骨架应尽量是原来笔画的中心线;要保持文字原有特征,既不要增加,也不要丢失。 细化的算法很多,但大多数细化算法都是从字符的边界开始逐层移去黑点,称之为脱壳算法。图像的细化算法目前依据是否使用迭代运算可将其分成两类:第一类是非迭代算法,一次即产生骨架,如基于距离变换的方法、游程长度编码细化等。第二类是迭代算法,即重复删除图像边缘满足一定条件的像素,最终得到单像素宽骨架。这类方法依据其检查像素的方法又可再分成串行算法和并行算法,在串行算法中,是否删除像素在每次迭代的执行中是顺序固定的,它不仅仅取决于前次迭代的结果,也取决于本次迭代中已处理过像素的分布情况,在并行算法中,像素的删除与否与像素在图像中的顺序无关,仅取决于前次迭代的结果。常用的有Hilditch细化算法、Deutsch细化算法、Pavlidis异步细化算法等。 Hilditch细化采用串行处理方式,Deutsch细化采用并行处理方式,Pavlidis异步细化则采用并行和串行混合处理方式。经过对扫描输入图像的一系列预处理阶段后,就得到了可以直接提取特征和分类识别的单个字符的骨架。2.6 本章小结 本章对数字图像的一些预处理方法进行了讨论,包括图像灰度化、二值化、平滑去噪、字符分割、细化和归一化。文中提到的预处理的方法,由于本次课题设计的着重点在特征提取及分类识别部分,并未涉及到平滑去噪及细化,因此这些方法有待以后再进行研究。第三章 字符特征提取用于数字字符识别的分类特征应满足以下要求:(1)有较强的分类能力,类内各样本距离应尽量小,类间距离尽量大;特征用于粗分类时,粗分后各子集的样本数不宜过多,其数量应该大体相等。(2)具有较高的稳定性和鲁棒性,尽量减少笔划断裂或粘连的影响。(3)易于提取,在保证系统性能稳定的前提下,特征的维数不宜过高,以减少运算量和存储复杂度。一般情况下,很难使以上三个条件一起满足,在字符识别中有两大类方法:统计特征和结构特征。3.1 统计特征提取设字符二值化图像为f(x,y),大小为。3.1.1 复杂指数特征字符x方向和y方向的复杂指数定义为: (3.1) 其中,分别为x和y方向黑色像素的总和,而分别为x方向和y方向质心二次矩的平方根: (3.2) (3.3)其中,分别为字符质心的,方向坐标: (3.4) (3.5)复杂指数反映了x方向和y方向字符笔划的复杂程度,该特征对于字符的位置和大小不敏感,但是字符图像的质量对于复杂指数影响较大。3.1.2 四周边特征四周边特征是描述一个字符四边白色像素分布情况的特征,该特征对字符的断线有较强的适应性,其特征提取的算法如下:(1) 确定字符周围边框的大小W和向内取的宽度大小w;(2) 根据W和w分割出字符四周的四个部分;(3) 计算每一个部分中黑色像素的多少;(4) 将四个部分计算所得的值合成一个向量,该向量即为四周边特征向量。3.1.3 投影特征投影特征是描述一个字符在不同方向上黑色像素多寡的特征,该特征对汉字字符具有较强的分类能力。其特征提取算法如下:(1) 沿水平方向和垂直方向将每行和每列中的黑色像素进行累加,获得水平和垂直方向上直方图,即水平方向和垂直方向上的投影特征,特征向量的维数分别为M和N;(2) 先将字符图像逆时针旋转45度,获取其垂直方向上的投影特征,该特征即为45度方向上的投影特征;同理,将字符图像顺时针旋转45度,获取其垂直方向上的投影特征,该特征即为135度方向的投影特征,特征向量的维数均为;(3) 为方便起见,每个方向取n个值作为特征,形成4n维特征向量,该特征向量即为投影特征向量。3.1.4 弹性网格特征由于粗网格在垂直方向和水平方向均匀分布的,可以称之为均匀网格。如果根据字符图像的笔划分布用非均匀的网线划分字符得到的网格,就是非均匀网格,又称之为弹性网格。通常,非均匀网线是根据字符图像在水平、垂直两个方向上的直方图投影来确定的,对直方图的均匀等分实际上就是对字符图像的非均匀等分,其特征提取如下:(1) 取定弹性网格的网格数n,m;(2) 应用3.1.3中的算法分别获取水平和垂直方向上的投影值Horn(i),Vert(i);(3) 根据下面两式计算水平、垂直方向的非均匀网线 (3.6) (3.7)(4) 根据计算所得,将字符图像分割成相应的网格,计算每个网格向量中黑色像素的数量;(5) 将统计所得的值合并在一起构成一个向量,该向量即为弹性网格特征。3.2 结构特征提取 常用的结构特征主要有:笔道密度函数、空洞和缺口、字符的特殊节点数、字符链码等。3.2.1 笔道密度函数笔道密度函数是指沿某一方向切割字符时交截笔划的次数。其优点是无需进行细化处理。例如,标准的数字“0”的横向笔道密度函数d(x)和纵向笔道密度函数d(y)分别为和,其中具体的1和2的个数由数字的大小和笔划宽度决定。将函数中相同的项合并起来,则该数字“0”的横向和纵向笔道密度函数都可以简化为称之为规格化笔道密度。这正是数字“0”在拓扑结构上的对称性的具体表现。3.2.2 空洞和缺口空洞和缺口是数字非常重要的结构特征。数字“0”“6”“8”“9”等有明显的空洞。“2”“3”“5”则有明显的缺口。在判断这些数字时采用这类结构特征是快速有效的。3.2.3 字符的特殊节点数字符的特殊节点数是对细化后的字符提取的一种特征。字符的特殊节点是指端点、三节点和四节点。以待审点为中心,从其八个邻接点的任意一点开始顺时针方向查看一周,记下由白到黑的次数。一次说明待审点是端点,两次说明待审点是一般连接点,三次对应三节点,四次对应四节点。3.2.4 字符链码 链码也可以称作字符的一种结构特征,虽然链码本身并不能直接用于识别。对于二值图像中的一条直线或曲线,可以用链的起点坐标及链码序列来完全描述。链码表示就是从某一起点开始沿曲线观察每一线段的走向并用相应的指向符来表示。常用的是八向链码。由于有8种可能的方向,因此可以将它们从0到7编号。如图3.1所示,是对8种可能方向的一种编码方案。图3.1 8方向链码3.3 本文的特征提取 本文将采用粗网格特征提取方法。粗网格特征是属于统计特征中的局部特征,又称局部灰度特征。所谓的粗网格特征就是将待识别的字符平均分为若干个网格,分别统计各个网格的特征,最终将所有的网格特征值组合成一个粗网格特征向量,以供识别。本文以图2.5中归一化后的数字“6”为例,首先将字符图像分成7x5个网格,其示意图如图3.2所示。图3.2 数字“6”分成7x5个网格这里将字符的笔画部分的像素值设为0,背景部分设为1。然后计算各个网格内的黑色像素(笔画部分)的个数,得到一个以数字表示的7x5维的网格特征,如图3.3 所示。最终通过7x5维的网格特征得到粗网格特征的标识图,如图3.4所示。图3.3 数字图像“6”的特征提取示意图图3.4 数字“6”的7x5的网格特征标识图由图3.3及图3.4对比可以看出,若某区域内的黑色像素数目为0或很小时,代表该区域的特征点就非常小,趋向于无,而黑色像素数目较多,则该区域的特征点就相对较大。3.4 本章小结本章介绍了特征提取的两大类方法:结构特征和统计特征,并详细介绍了这两大类方法中的一些常用方法。这些方法在不同的环境下的效果不尽相同,因此选取一种或多种最佳方法是提高识别率的关键所在。经过提取的图像特征,将被送入到训练好的神经网络中进行识别。下面一章将重点介绍神经网络识别法。第四章 神经网络训练及识别神经网络是由大量简单处理单元互相连接而形成的复杂网络系统,它反映了人脑功能的许多基本特征,是一个复杂的非线性动力学系统。神经网络的发展与神经科学、数理科学、认知科学、计算机科学、人工智能、信息科学、控制论、机器人学、微电子学、心理学、光计算、分子生物学等有关,是一门新兴的交叉学科。4.1 人工神经网络模型人工神经网络(ANN)是对生理学上真实人脑神经网络的结构和功能的抽象、简化和模拟而构成的一种信息处理系统。人工神经网络是由大量与自然神经细胞类似的人工神经元互联而成的网络,能够模拟生物体中神经网络的某些结构与功能,进行大规模并行信息处理。4.1.1 生物神经元模型神经元是神经网络的基本单元,只有了解神经元模型才能认识神经网络的本质。在人体内神经元的结构形式并非是完全相同。但是,无论结构形式如何,神经元都是由一些基本的成分组成的,神经元由细胞体、树突和轴突三部分组成。其中突触是神经元之间的连接。(1)细胞体细胞体是由很多分子形成的综合体,内部含有一个细胞核、核糖体、原生质网状结构等,它是神经元活动的能量供应地,并进行新陈代谢等各种生化过程。(2)树突细胞体的延伸部分产生的分枝称为树突,树突是接受从其他神经元传入信息的入口。(3)轴突细胞体突起的最长的外伸管状纤维称为轴突,轴突是将神经元兴奋地信息传到其他神经元的出口。(4)突触一个神经元与另一个神经元之间相互联系并进行信息传送的结构称之为突触。突触的存在说明两个神经元的细胞质并不是直接连通的,两者是通过突触这一结构接口联系的。目前神经网络的研究只是处于初级阶段,但神经网络的研究已向人们展示了其美好的前景,只要按阶段不断取得进展,神经元和突触是完全可以实现人工模拟的。4.1.2 神经元模型人工神经元模型是生物神经元的模拟与抽象。这里所说的抽象是从数学角度而言,所谓模拟是以神经元的结构和功能而言的。图4.1所示是一种典型的人工神经元模型,它模拟生物神经元的细胞体、树突、轴突、突触等主要部分。图4.1 人工神经元模型是神经元的输入,即来自前级的3个神经元的轴突的信息;是神经元的阈值;是输入神经元对的权值连接,即突触的传递效率;o是神经元的输出;f是传递函数,决定神经元受到输入的共同作用达到阈值时以何种方式输出。4.1.3神经网络模型根据神经元之间的连接拓扑结构上的不同,可将神经网络分为两大类:分层网络和相互连接型网络。分层网络是将一个神经网络中的所有神经元按功能分为若干层,一般有输入层、隐含层、输出层,各层顺序连接。分层网络可以分为三种互连形式:简单的前向网络、具有反馈的前向网络以及层内有相互连接的前向网络。对于简单的前向网络,给定某一输入模式,网络能产生一个相应的输出模式,并保持不变。输入模式由输入层进入网络,经过隐含层的模式变换,由输出层产生输出模式。因此前向网络是由分层网络逐层模式变换处理的方向而得名的。相互连接型网络是指网络中任意两个单元之间都是可以相互连接的。对于给定的输入模式,相互连接型网络由某一初始状态出发开始运行,在一段时间内网络处于不断更新输出状态的变化过程中。人工神经网络模型常用的有BP神经网络、径向基函数神经网络、自组织竞争神