摘要:传统的数字识别算法存在识别速度、识别准确率和识别方法复杂度三者无法兼顾的问题,为解决该问题,提出了基于特征矩阵的高效数字识别算法。该算法首先在预处理的基础上获取字符的特征矩阵,然后用特征矩阵对字符的特征横线、竖线等特征进行提取,最后利用结构语句识别的方法实现数字识别。实验结果表明,基于特征矩阵的高效数字识别算法思路简单、速度快,且识别率达97% 以上。
关键词:特征矩阵;数字识别;***像处理;识别率
中***分类号:TP312 文献标识码:A 文章编号文章编号:16727800(2014)001005903
作者简介作者简介:徐敬(1989-),女,北方民族大学电信学院硕士研究生,研究方向为嵌入式与信息处理;刘炜(1963-),男,北方民族大学电信学院副教授、硕士生导师,研究方向为智能仪器。
0 引言
数字识别技术是***像处理领域中的一个研究热点,在食品、化妆品、药品等外包装生产日期提取上具有重要的实用价值。近年来,随着人们对数字***像识别算法的不断研究,数字***像识别方法也越来越多,主要有基于神经网络数字***像识别[1]、基于最小距离法的数字***像识别,以及基于模板匹配的数字***像识别[2]。在实际应用中,人们发现数字识别算法的识别率一般较低,个别识别率较高的算法比较复杂,且收敛速度普遍较慢,缺少两方面性能皆优的方法。针对目前存在的问题,结合印刷体数字的特点,笔者提出了一种基于特征矩阵的高效数字***像识别算法。该算法首先在预处理的基础上提取字符
的特征矩阵,
利用特征矩阵对简单的特征[34](横线)进行提取,然后应用结构语句识别方法将数字中的多数识别出来。再采用排除法缩小识别数字的范围,并对其中的数字特征凹陷区域进行分析和比较,同时采用上述同样的方法对数字进行识别使算法简单,识别速度快且识别效果好。
1 数字***像预处理
***像预处理是对采集到的***像画面在进行数字识别之前所做的一些相关工作,主要包括***像灰度化、二值化、梯度锐化、中值滤波、分割、归一化、细化等步骤,具体流程如*** 1 所示。对***像进行预处理非常必要,它能够有效地去除***像噪声,减小各类干扰对***像识别的不利影响,为特征提取和识别奠定了基础。***像预处理的每一步结果如***2-***9所示。
***1 数字预处理流程
***2 原始***像 ***3 灰度化 ***4 二值化
***5 梯度锐化 ***6 中值滤波 ***7 分割
***8 归一化 ***9 细化
2 数字识别算法
经过细化之后,通过从上到下,从左到右对***像进行扫描,提取字符的特征矩阵。由于细化后矩阵的边界可能存在全为0的行或列,为了便于后续特征提取,需要将其全为0的行列全部删除,得到类似如***10所示的矩阵,记为juzhen[m][n]。设前景像素为1,背景像素为0。
对0~9这10个印刷体数字,首先可以根据是否存在横线将数字分为两个子集,其中1、2、4、5、7存在横线记H=1。0、3、6、8、9不存在横线记H=0。在H=1的集合中,因为横线存在的位置不同,可以将其再分为3个子集:1、2存在下横线;5、7存在上横线;4横线位置记为其它。这样数字识别的范围又进一步缩小了,接下来可以在小范围内进行特征比较来实现数字的识别。如5、7特征比较发现,5上半部分存在左凹陷区,下半部分存在右凹陷区。对于凹陷区域的识别可以依据矩阵在凹陷区域内像素值为0,限定区域范围统计0的行数即可,该区域范围仅针对每个特定数字而言,这样5就可以识别出来,运用排除法7自然而然也被识别出来。1、2特征比较发现,1存在竖线,2没有这个特征,4不需进行特征比较即可得出结果,为了使识别结果更加准确,可以加上竖线这个特征。在H=0的集合中,0的结构较简单,特征也较明显,把它作为一个集合来对待。它是一个封闭的圆圈,圆圈内没有像素则通过矩阵在一个较大区域内像素1的个数小于阈值的范围来提取。3、8、6、9作为另一个集合,特征比较发现,3上、下两部都存在右凹陷区,6上半部分存在左凹陷区,9下半部分存在右凹陷,除此之外就是8。这10个数字中的1较特殊,有的字体底部没有横线,有的底部存在横线,所以除了上述判断还要考虑没有横线的情况。数字识别流程如***11所示,其中上半部分左凹陷区域记为上左,上半部分右凹陷区记为上右,下半部分右凹陷区域记为下右,下半部分左凹陷区域记为下左。识别顺序按照从上到下、从左到右进行。对于易识别错误的字符进行了多处特征比较,如字符3、5等。数字特征提取条件如表1所示,特征的提取需要用到以下自定义函数:
3 实验结果与分析
在上述数字***像预处理基础上,利用上述识别算法对***像进行数字识别,结果保存在文本文件中,***像识别的结果如***12所示。
***12 数字识别结果
为了检验本文的算法对数字识别的效果,对0~9这10个印刷体数字包括不同字体在内的单个字符各100幅***像进行识别测试,测试硬件环境为 AMD Athlon 1.91 GHz、内存2 GB,采用C语言,并结合数字***像处理和计算机软件平台OpenCV,在VC6.0 集成开发环境中实现
以上算法编程。 单个字符可在6ms内完成整个识别过程,
实验结果如表2所示。识别率等于 99% 的 0、1 两个数字
本身结构比较简单,容易识别;识别率在98%的有 3、5、6、9这4个数字,只要能够限制准确数字凹陷区的起始行、起始列、结束行和结束列,数字识别率还可以提高;***像数字2、8的识别率分别建立在3、5和6、9的识别率的基础之上,所以数字2、8 的识别率比3、5和6、9的识别率要低一些;数字***像4、7在细化后容易对字符造成损害,再加上特征提取的条件较为简单,因此,很容易识别为1和8。
4 结语
本文提出了一种基于特征矩阵的高效数字识别算法,并对从0~9的每个数字字符***像进行了测试。结果表明,该算法的思路简单、速度快,且识别率达97% 以上。通过分析发现,使用该方法发生误判时,错误源可能来自于***像的不规范,比如***像本身的不完整、预处理技术的缺陷,以及特征选取的局限性。
参考文献参考文献:
[1] 张翼成,陈 欣,杨红***,等.基于组合特征的BP神经网络数字识别方法[J].计算机系统应用,2013,22(3):113116.
[2] 陈爱斌,陆丽娜.基于多特征的印刷体数字识别[J].计算技术与自动化,2011,30(3):105108.
[3] 陈***胜.组合结构特征的自由手写体数字识别算法研究[J].计算机工程与应用,2013,49(5):179184.
[4] 马斌,边树海.特征信息的新数字***像识别方法[J].沈阳建筑大学学报:自然科学版,2011,27(6):11871192.
转载请注明出处学文网 » 基于特征矩阵的高效数字识别算法