当前位置:文档之家› 自由手写体数字识别系统的设计与实现

自由手写体数字识别系统的设计与实现

自由手写体数字识别系统的设计和实现

摘要:本文论述并设计实现了一个脱机自由手写体数字识别系统。文中首先对待识别数字的预处理进行了介绍,包括二值化、平滑滤波、规范化、细化等图像处理方法;其次,探讨了如何提取数字字符的结构特征和笔划特征,并详细地描述了知识库的构造方法;最后采用了以知识库为基础的模板匹配识别方法,并以MATLAB作为编程工具实现了具有友好的图形用户界面的自由手写体数字识别系统。实验结果表明,本方法具有较高的识别率,并具有较好的抗噪性能。

关键词:手写体数字;预处理;模式识别;特征提取

Abstrct: This paper describes and designs a free handwritten number recognition system. Firstly,

the pretreatment of the character to be recognized is introduced, including binarization,

smoothing, normalization and thinning. Next, how to extract the structural features of the numbers

is discussed, and we describe the constructing method of repository. Finally, we use the method

of template matching, based on repository, to recognize the digital number. Matlab is used as

a program tool to realize this free handwritten digital recognition system with friendly graphical

user interface. The experimental results show that the rate of the recognition system is high,

and the proposed method is robust to noise.

Keywords: handwritten number; pretreatment;pattern recognition; feature extraction

1 引言

OCR(Optical Character

Recognition)即光学字符识别技术,是通过扫描仪把印刷体或手写体文稿扫描成图像,然后识别成相应的计算机可直接处理的字符。OCR是模式识别的一个分支,按字体分类主要分为印刷体识别和手写体识别两大类。对于印刷体识别又可以分成单一字体单一字号和多种字体多种字号几类。而手写体识别又可分为受限手写体和不受限手写体两类;按识别方式可分为在线识别和脱机识别两类。

字符识别处理的信息可分为两大类:一类是文字信息,处理的主要是用各国家、各民族的文字(如:汉字,英文等)书写或印刷的文本信息,目前在印刷体和联机手写方面技术已趋向成熟,并推出了很多使用系统;另一类是数据信息,主要是由阿拉伯数字及少量特殊符号组成的各种编号和统计数据,如:邮政编码、统计报表、财务报表、银行票据等等,处理这类信息的核心技术是手写数字识别。因此,手写数字的识别研究有着重大的现实意义,一旦研究成功并投入使用,将产生巨大的社会和经济效益。

在整个OCR领域中,最为困难的就是脱机自由手写字符的识别。到目前为止,尽管人们在脱机手写英文、汉字识别的研究中已取得很多可喜成就,但距离实用还有一定距离。而在手写数字识别这个方向上,经过多年研究,研究工作者已经开始把它向各种实际使用推广,为手写数据的高速自动输入提供了一种解决方案。

本文首先介绍了自由手写体数字识别的基本原理,包括数字图像预处

理、特征提取和模式识别的基本原理和方法;其次介绍了;最后通过基于MATLAB的实验结果,对本系统的性能进行了分析。

2 手写体数字识别的基本原理 本系统主要由手写体数字识别的训练过程和识别过程组成,训练过程和识别过程均包括预处理、特征提取和模式识别三部分。系统构成如图2.1所示。

图2.1 系统流程图下面分别介绍各部分工作的基本原理。

2.1 预处理

预处理主要由二值化,平滑去噪,规范化,细化等组成。

本文采用了基于阈值的二值化算法,通过最大类间方差法即OTSU方法,统计图像的灰度直方图选取全局阈值,然后进行二值化处理。

其次,在二值化后利用均值滤波的方法消除孤立点、线的噪声,这样图中就只剩下手写体数字。在滤波中本文采用的是3*3大小的模板。

平滑去噪后,对图像进行规范化处理。找出图像中数字的边界,然后提取出数字把它居中放置在正方形方框中,再对此正方形图像进行线性插值缩放,使它变为统一规格大小的图像,本文中归一化图像的大小是36*36。

在提取特征之前,要对手写体数字进行细化。本文是采用的基于数学形态学的细化算法。细化可用两步腐蚀来实现:第一步是正常的腐蚀,但它是有条件的,也就是说,那些被标为可除去的像素点并不立即消去;在第二步中,只将那些消除后并不破坏连通性的点消除,否则保留。以上每一步都是一个3*3邻域运算。细化是将一个曲线性数字细化为一条单像素宽的线,从而图形化地显示出其拓扑性质。

数字图像预处理前后效果比较如下图所示。图2.2为数字“5”的原始图像,图2.3为对图2.2预处理后的结果图。类似地,图2.4为数字“6”的原始图像,图2.5为对图2.4预处理后的结果图。

图2.2 原始图像 识别过程

训练过程 数据采集,

预处理 特征提取

和选择 分类识别

数据采集,

预处理 分类识别

改进数据采集,

预处理 改进分类识别 待识对象

训练样本

人工干预 特征提取

和选择

改进特征提取和选择 正确率

测试

图2.3 预处理后图像

图2.4 原始图像

图2.5 预处理后图像

2.2 特征提取

特征提取的目的是从原始数据中抽取出用于区分不同类型的本质特征。无论是识别过程还是学习过程,都要对研究对象固有的、本质的重要特征或属性进行量测并将结果数值化,形成特征矢量。

通常能描述对象的元素很多,为了节约资源,节省计算机存储空间、处理时间、特征提取的费用,有时更是为了可行性,在保证满足分类识别正确率要求的条件下,按某种准则尽量选用对正确分类识别作用较大的特征,使得用较少的特征就能完成分类识别任务。这项工作表现为减少特征矢量的维数或符号字符数。在本系统中采用对待识别数字图像进行行列扫描和数字起点结合的方法提取特征。

2.2.1 结构特征的提取

首先对经预处理后的图像进行分割,如图2.6所示。

图2.6 图像分割

对图像分割后,结构特征提取的算法如下:

(1) 对细化后的数字图像取竖直的三条直线,分别取在5/12,1/2,7/12处,记下这三条竖直直线和数字笔段的交点数。

(2) 再取水平三条直线,分别取在1/3,1/2,2/3处, 分别记下这三条水平直线和数字笔段的交点数。

(3) 再取对角两条直线, 分别记下这两条对角直线和数字笔段的交点数。

2.2.2 笔划特征的提取

经细化后的数字图像其特征较为

稳定,且笔划简单,因此对其抽取的基本结构组件能反映数字的本质特征,从而可快速有效地识别数字符,并达到较好的分类效果。数字端点如图2.7所示。

提取笔划特征的算法如下:

(1) 按从上到下,从左到右的顺序扫描预处理后图像并选择黑像素点P;

(2) 计算像素P的8-邻域之和N;

(3) 若N=1,则像素P为端点,端点计数器加一;

(4) 重复步骤(1)-(3),直到遍历整个图像。

图2.7 数字端点 2.2.3 数字的特征向量说明

依据上述特征提取方法,本系统中的特征矢量由9个分量组成,其排列如下所示:

DATA=[ 竖直中线交点数,

竖直5/12处,

竖直7/12处,

水平中线交点数 ,

水平1/3处交点数,

水平2/3处交点数,

左对角线交点数,

右对角线交点数,

端点数 ];

2.3 知识库的建立

由于本文采用的是基于模式知识库的识别方法,所以对字符的结构特征的分析以及字符模型的构造是一个十分重要的环节,图2.8就是对识别数字的标准形态进行具体分析而构造的模板。

图2.8 规范手写体数字形态DATA01=[2,2,2,2,2,2,2,2,0];

DATA11=[1,0,0,1,1,1,1,1,2];

DATA21=[3,3,3,1,1,1,1,1,3];

DATA31=[3,2,3,1,1,1,2,2,3];

DATA41=[1,1,1,2,2,1,3,2,4];

DATA51=[3,3,3,1,1,1,2,2,4];

DATA61=[3,3,2,1,1,2,3,2,1]; DATA71=[2,2,2,1,1,1,1,1,2];

DATA81=[4,4,4,2,2,2,2,2,0];

DATA91=[3,3,3,1,2,1,3,1,1]。

由于本系统是对自由手写体进行识别, 因而要考虑数字书写体的多变性。通过对图2.9所示数字变体的分析来对知识库进行补充。

图2.9 手写体数字变体DATA02=[1,1,2,2,2,2,1,2,2];

DATA22=[3,2,2,1,1,1,1,3,2];

DATA32=[3,1,4,2,1,1,2,2,3];

DATA42=[1,2,2,3,3,1,2,2,2];

DATA52=[3,3,3,1,1,1,2,2,4];

DATA62=[3,1,3,1,1,2,2,2,2];

DATA82=[4,4,4,2,1,2,1,2,2];

DATA92=[3,2,3,2,1,1,3,1,3]。

最后得到知识库由上述两套模板所组成。

2.4 本系统的模式识别方法

在本次设计过程中,我们选择了模板匹配的识别方法。通过计算欧氏距离来衡量匹配程度。本系统中的特征矢量有9个分量,其计算距离公式如下:

12291iiidxy 公式(2.1)

但在本次设计中我们计算距离时对上述公式进行了改进,对于可靠性较高的端点数即最后一维特征值加大了权重,改进后的距离计算公式如下:

182229913iiidxyxy

公式(2.2)

在识别过程,分别计算待识别图像的特征值和知识库中两个模板的距离,和10个数字逐个比较,距离最小的对应的数字就是最后识别结果。该算法具有特征提取和模板建立都比较直观,时间复杂度低,易于实现等优点。其缺点是在建立知识库时需要进行大量的训练,当知识库中的模板增多时,特征矢量间的距离会减小。

3 MATLAB程序设计

本次设计使用MATLAB语言实现该系统,其用户界面分别介绍如下。

(1) 读入图像:

读入图像的用户界面如图3.1所示。

图3.1 读入图像

(2) 对图像进行各种处理:

选择对图像的各种操作的用户界面如图3.2所示,对图像取反的用户界面如图3.3所示,对图像平滑去噪的用户界面如图3.4所示,对图像进行二值化操作的用户界面如图3.5所示,对图像进行规范化处理的用户界面如图3.6所示,对图像进行细化操作的用户界面如图3.7所示,

相关主题