APP下载

基于最小距离法的字符识别系统在Matlab 上的实现

2015-07-13冼学辉郭少坤

电脑知识与技术 2015年13期
关键词:字符识别特征提取

冼学辉 郭少坤

摘要:通过Matlab编程,实现了一个可以识别扫描到计算机里图片上的英文字母及阿拉伯数字的字符识别系统,以最小距离法为判决规则,系统的识别对象为不规整的印刷体。系统识别通过对样本进行处理和训练,对识别对象的识别率可达到近百分之九十。

关键词:Matlab编程;字符识别;最小距离法;图像预处理;特征提取

中图分类号:TP181 文献标识码:A 文章编号:1009-3044(2015)13-0184-03

Abstract: Through Matlab programming, the paper show the design of character recognition system, which can recognize the Letters and Arabic numbers from the scaned image that save into computer. The system sets Minimum Distance method as tis decision rule, and the object recognition of the system is printed and irregular. The ratio of identification can reach nearly eighty percent, when the object recognition trained and handled by the system.

Key words: Matlab programming; character recognition; minimum distance method; image preprocessing; feature extraction

模式识别(Pattern Recognition)是人类进行社会活动的一项基本智能。在日常生活中,人们经常通过视觉器官和听觉器官来进行“模式识别”。随着20世纪40年代计算机的出现以及50年代人工智能的兴起,人们理所当然地希望使用计算机来代替人类进行部分脑力劳动。模式识别在20世纪60年代初得到迅速发展,并成为了一门相对独立的新学科,并广泛应用于生物学、天文学、经济学、医学、工程、军事、安全等重要领域。

图像识别(Image Recognition),是模式识别的一个分支,利用计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对像的技术。图像识别一般以图像的主要特征为基础,通过对图像进行处理,排除输入的多余信息,抽出关键的信息,用图像识别模型将获得的信息整理成一个完整的计算机映象。

字符识别研究的对象是如何利用计算机自动辨识存储在计算机系统中图片上的阿拉伯数字和英文字母。字符识别前景广阔,能应用于汽车牌照的自动识别、文本字符的识别录入等实际应用,涉及到交通、教育和邮政等多个领域。实现字符的自动识别将会给人们在生活和工作上提供极大的便利,推动社会智能化的发展。

1系统实现概述

1.1基本思路

字符识别系统先对图像预处理,然后进行特征的提取与选择,最后通过分类器的判别进行识别出字符。其中,预处理包括将模拟图像进行二值化、去噪、归一化等过程;特征提取将预处理好的图片进行等大小分块,统计每小块里“1”的个数,以此作为特征值;分类器以最小距离法作为判决规则。三个步骤紧密相连,与系统的识别率都息息相关。

1.2系统模块介绍

根据字符识别的过程,字符识别系统可以划分成三个模块:图像预处理模块、特征提取模块和分类模块。其中,图像预处理模块是在对图像进行了一系列变换后,把经过处理提取到的字符提交给特征提取模块,由特征提取模块进行特征的提取与计算,最后由分类模块对特征值进行识别并给出分类的结果。

本系统总流程如下图所示:

2图像预处理

为了得到更好的识别效果,需要先对采集得到图像进行预处理,图像预处理流程如图2所示:

2.1图像输入

本系统训练识别的具体对象为“0”到“9”十个阿拉伯数字和“A”、“C”、“D”、“E”、“R”五个大写英文字母,一共15个类。每一类共有40个36×20像素的jpg格式的图片,选取每一类的前30个图片作为训练样本。使用Matlab提供的imread(file)函数对15×30个图片进行读入操作。

2.2图像二值化

图像二值化就是将图像上的像素点的灰度值设置为0或255,也就是讲整个图像呈现出明显的黑白效果。图像中的每个像素点都会有一个灰度值,灰度值决定了像素的明暗程度。为了对将来能更好地对图像进行特征值抽取,这里需要对已经得到的灰度图像进行一次二值化处理。图像二值化很很多成熟的算法,如自适应阈值法、给定阈值法等。本文采用的是给定阈值的方法,使用Matlab提供的im2bw(img,r)函数,给定参数值对图像进行二值化处理。

2.3去除孤立像点

二值化后的图像中,图像的边角区域所出现的像点与字符信息无关,应予统一去除。另外,字符主体以外的孤立像点、一些小枝条也应该先进行处理,以提高后续图像处理步骤的效果。在Matlab编程中,先把图像的四个小块边角区域置0,然后使用bwmorph(img,'clean')去掉其余孤立像点,最后使用bwmorph(img,'spur',Inf)去掉小短枝像点。

2.4中值滤波

图像在转换或传输的过程中可能回夹杂了噪声,去噪声是图像处理中常用的手段。本系统采用中值滤波法进行去噪声。中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻近域窗口内的所有像素点灰度值的中值。本文使用Matlab中的medfilt2(img,[3 3])进行中值滤波的操作。

2.5归一化调整

图像标准化就是要把原来各不相同的字符图像统一到同一尺寸。因为通过扫描得到的图像中字符大小会存在较大差异,需要对图像大尺寸大小进行归一化处理,使用统一尺寸的字符图像进识别,标准性更强、识别率自然也就更高。本系统中,在去噪后的图像中把字符主体以外的空值的行、列给去掉,根据统一的大小进行放大,然后再做一次去除孤立像点和中值滤波,实行二次去噪。Matlab使用imresize(img,[36,20],method)进行图像的放大与缩小。其中,参数method有几种可选值:'nearest'(默认值)最近邻插值,bilinear'双线性插值,'bicubic'(本系统使用)双三次插值。

2.6腐蚀与膨胀

进行腐蚀操作是为了去除图像中离散的像点,而膨胀操作与腐蚀操作正好相反,是为了填补图像中的裂缝。本系统采取先腐蚀后膨胀的方法对图像进行处理。Matlab中腐蚀函数和膨胀函数分别为bwmorph(img,'erode')、bwmorph(img,'dilate')。

2.7图像细化

图像细化是指把具有一定宽度的线条状的黑区域消减到一个象素点的宽度每个象素点8近邻性。细化在模式识别的前期处理中起着重要的作用,它能从图象中抽取出字符的特征信息,保存字符的基本结构和特征。本系统使用骨架化函数对图像进行细化。Matlab中骨架化的函数为bwmorph(img,'skel',Inf)。

3特征值提取

特征值提取是一项极为重要的工作。所选择的特征合适与否,直接决定着最终识别结果的好坏。

3.1特征提取分类

1) 模板匹配法

模板匹配法工作原理:对每一个字符图像指定一个模板,逐一和待识别的字符的点阵图像距离进行比较,距离最小的模板所对应的字符就判定为待识别的字符。模板匹配法的重点在于如何对模板进行设计。这种方法的优点是可以将分割和识别一起完成,缺点对每一个模型反复变形的过程进行的计算复杂、检测的速度慢。

2) 统计特征

基于原始点阵,直接求出能够反映图像点阵分布的特征,统计总体情况。字符统计特征主要有两种:

(1) 基于像素数量特征;(2) 基于笔画方向的特征。

(3) 结构特征

结构特征能精确地反映字符的组成结构,该方法充分利用字符的结构信息和组成规律,减少了字符形态变化与字符笔画来带的影响。因此,结构法在分辨相似字这种情况下能力较强。

(1) 基于骨架的结构特征:这种方法对噪声比较敏感,尤其是当字符发生粘连或断笔的情况下,效果很差;

(2) 基于轮廓的结构特征:与基于骨架的结构特征不同,这种结构特征的提取不需要经过对字符的细化,而是直接在字符轮廓的上提取字符基元结构特征。

(4) 变换特征

变换特征可以分为一维的变换特征和二维的变换特征。一维变换特征是将字符图像向X轴方向和Y轴方向进行投影,将二维点阵变成一维数据,然后再作变换。二维变换特征是在二维图像的基础上进行相应的变换,再提取变换特征。

3.2 特征提取

本系统使用模板匹配法中的粗网格方法进行特征的提取。在图像预处理完毕以后,字符图片已经都被归一化成36×20的矩阵,需要将矩阵等分为固定数量的小网格,然后依次统计每一个网格内“1” (即黑像素点)的个数,作为这一组网格特征,最后对其进行归一化处理。

本系统将采用多组划分方式进行特征提取,并观察在一定大小的图像中特征数(即等分的数量)的不同对识别率产生的影响。四种等分划分方式:3×2(共6个特征)、4×4(共16个特征)、9×5(共45个特征)、12×10(共120个特征)。

4分类器

本系统采用的是基于聚类中心的最小距离法。一般情况下,要先通过聚类的方法来确定各个识别类别的代表点(一般取中心点为代表点),然后计算这个代表点与各待测样本域各代表点距离,并把它归入与它距离最近的点所属的类别中。这里的距离一般取马氏距离、明氏距离或欧式距离等,这种分类器方法简单而且直观的特点。如果将各个类别中的全部样本都作为“代表点”,最小距离法则变成了近邻法。如果取与待测样本点最近的一个点作为分类的依据,则为最近邻法。最近邻法的优点是不用对样本进行训练,因为要比较待识别样本点与每个已知样本点的距离,计算量偏大,当样本总数较多的时候,识别速度低。

系统实际实现中,我们采用类中心分类器,通过对每个文件夹中前30张图片的英文字母、数字样本的学习,得到代表各类英文字母、数字的平均特征向量。进行识别时,先计算待识别字符与各类字符的平均特征向量之间的距离,然后根据计算出来的距离值来决定待识别点属于哪一类。

5实验结果及分析

实验样本集为0~15,共十个数字和五个英文字母,在MATLAB中编写字符识别程序,训练样本为450个,测试样本为150个。

5.1 特征数实验

对矩阵的四种等分划分方式,3×2(共6个特征)、4×4(共16个特征)、9×5(共45个特征)、12×10(共120个特征),分别训练,然后进行识别,并计算识别正确率。

图像矩阵划分的特征数并不是越多也好。不但不能提高正确率,而且还会减低。在一定大小的图像里,特征数越多,每个特征里能包含“1”的容量就越小,此时也就不再具备特征的作用。因此,在实际操作中应根据图像的实际情况对图像进行处理。

5.2 图像预处理实验

选取5.1中4×4(共16个特征)和9×5(共45个特征)两种矩阵划分方式,测试这两种方式进行图像预处理无不进行图像预处理的识别正确率。这里所指的图像预处理包括归一化调整、腐蚀与膨胀和图像细化三部分。

实验结果出乎预料,不经过归一化调整、腐蚀与膨胀和图像细化的正确率,竟然比执行这三个操作的正确率要高。这说明了本系统在图像预处理这一模块上还存在着缺陷,图像预处理没有达到既定的目的,往后本系统应该对分类器进行优化。

6结论

本文在前人研究成果的基础上,在Matlab上实现了基于最小距离法的字符识别系统,并进行了两个对比实验。实验结果表明,本系统对字符的识别能达到预期的效果,识别成功率能达到90%,经过改进以后能应用于实际。当然,本系统存在一些缺点和不足,对图像预处理存在缺陷,没有达到提高系统的识别率的目的。另外,分类器所采用的判决方法也比较简单,只使用了直观的最小距离法。可以采用多种方法实现分类器,如神经网络等。总之,字符识别算法的性能关键在于分类器上,如何实现零误识率和低拒识率的高速识别算法是今后的研究目标,这样才能使符识别系统在各行业领域得到进一步的发展和应用。

参考文献:

[1] 冈萨雷斯.数字图像处理[M]. 北京:电子工业出版社,2006.

[2] 钟珞,潘昊等.模式识别[M]. 武汉:武汉大学出版社,2006.

[3] 乔宝明,张晓莉,高志才.基于MATLAB识别0-9数字图像的新方法[J].技术应用与研究,2009,30(2):229-233.

[4] 桂林, 周林, 张家祥. Matlab小波分析高级技术 [M].西安:西安电子科技大学出版社,2006.

[5] 柳回春,马树元,吴平东,等.手写体数字识别技术的研究[J].计算机工程.2003,29(4):24-61.

[6] 壬新成,高级图像处理技术[M].北京:中国科学技术出版社,2001.

猜你喜欢

字符识别特征提取
基于Gazebo仿真环境的ORB特征提取与比对的研究
基于Daubechies(dbN)的飞行器音频特征提取
一种改进深度学习网络结构的英文字符识别
一种基于LBP 特征提取和稀疏表示的肝病识别算法
基于自动智能分类器的图书馆乱架图书检测
仪表字符识别中的图像处理算法研究
基于DSP的直线特征提取算法
基于CUDA和深度置信网络的手写字符识别
基于MED和循环域解调的多故障特征提取
机加工件点阵字符识别研究