基于穿线法的计算器数字识别
2018-01-17卓磊周律杨丽红
卓磊 周律 杨丽红
摘 要:为了防止计算器数字的误读,本文采用了一种基于穿线法的识别数字装置对计算器数字进行识别。识别功能由图像预处理、二值化、形态学处理、图像分割、穿线法找出数字特征这几大步骤构成。穿线法是识别数字的关键,通过实验表明,该识别方法的识别率可以达到100%,配有该识别数字装置的计算器可以有效地提高数字的识别精度,降低误识率。
关键词:灰度化;二值化;形态学;穿线法
中图分类号:TP391.4 文献标识码:A
Abstract:In order to prevent the misreading of the calculator numbers,this paper uses a device based on OpenCV to identify the calculator numbers.The recognition function consists of image preprocessing,binarization,morphological processing,image segmentation,and threading to find the digital features,in which the threading method is the key to identifying numbers.Experiments show that the identification rate of the method can reach 100%,and the calculator equipped with the identification device can effectively increase the accuracy and reduce the rate of misreading.
Keywords:gray processing;binarization;morphology;threading method
1 引言(Introduction)
计算器是一种专用计数工具,在日常生活和一些工业领域被广泛应用。对于常用的计算器,计量方法是基于点对点的计量而来的。人工在进行数据记录,分析和判断时,极易因为读错小数位数或阴影而识别出错误的数据,这对使用人员的依赖性要求较大,因此需要一种适合计算器识别数字的改良装置和方法[1]。传统数字识别方法大多都包含二值化、去噪、规整、细化、轮廓处理、特征提取、字符分类、模板匹配等处理步骤,计算效率较低,对系统硬件要求较高,若再加入投影运算、BP神经网络等算法,将使得系统的软硬件更为复杂不适合一些实时处理系统的应用需求[2]。本文以七段数码管的计算器数字为例,进行基于穿线法的数字识别方法说明。OpenCV具有的图像处理库包括图像采集、图像储存、图像加载、图像灰度化、图像滤波、阈值分割、边缘检测等多种功能[3],改良装置通过上述功能完成数字图像的识别,改良后的模型样图如图1所示。
2 图像预处理(Image preprocessing)
由于计算器的外形不同,所以对计算器所采样的数字图像情况也有所不同,采用自动检测、自动分割的方式获取的图像有可能不能够完全分割所检测的数字区域,所以需要以人工的方式将目标区域(ROI感兴趣区域)提取出来。首先通过计算机采集到的计算器图像进行筛选,用鼠标选取被识别区域(即计算器中需要被检测到的数字区域),再对该区域进行实时信息保存,得到需要被识别的区域图片(改良装置位姿确定时可忽略人工提取的步骤,可以自动检测识别区域)。
提取的图片的尺寸可能很小,我们需要利用resize或高斯金字塔函数放大图片并将其进行灰度化处理[4]。所谓灰度化,就是将彩色图像转化为灰度图像的过程,灰度图像是R、G、B三个分量相同的一种特殊彩色图像形式,其一个像素点的变化范围有255种,这样大大减少后续图像的计算量。在这里我们采用求每个像素点R、G、B三个分量平均值的方式,然后赋予给这个像素的三个分量[5]。
下一步进行二值化处理,即图片只有两个灰度等级,即图像中只有黑白两种颜色。使用这种处理办法可以使图像计算量更小,大大简化了对后续的图像处理。接着对所识别的数字区域进行形态学处理(即膨胀腐蚀操作),这样可以尽量减少图片中的洞效应[6]。实验如图2和图3所示。
3 字符分割(Character segmentation)
经过二值化、腐蚀膨胀图后,背景为白色,数字为黑色。虽然我们能够通过利用投影法进行字符的分割,对图像分别进行水平和垂直投影,即分别统计水平方向上和垂直方向上每一行或列上黑色像素的个数。然后根据投影值获取零到非零的坐标,记录其突变点。接着根据记录的突变点进行划线求出其字样的宽度,即通过式(2)和式(3)求取宽度和高度。
但是上述方法有很大的缺陷,图片受外界的影响很大时,导致突变点过多,无法准确得到字样的宽度或高度。但是在这里我们应用的另一种方法,即cvFindCountours函数得到轮廓后,给定阈值结合cvBoundingRect得到所需的数字特征[7]。然后将数字一个个分割出来,按顺序保存到一个数字集。图4为分割出的数字图样。
4 穿线识别法(Threading method)
数字表的数字大多都是由七段数码管组合而成,只有横竖的布置方式,没有弧度,所以可以考虑用穿线法来进行特征识别[6]。相对于向量机训练(用于特征点较多的场合)进行识别检测,交线法和交点法是两种简易而快捷的方法。将上述数字集中的每一个数字按下列方法识别。
4.1 交点法
如图5所示,数码管由三条线进行分区,1号线把线条分成左右两个区域,2、3号线把数字分成上中下三个区域。根据0—9和小数点与所画的这三条线段的交点个数不同,可将它们的特征表现出来,可以简单快捷的识别出数字。如图4中的数字8,它与1号线有六个交点,与2號线有四个交点,与3号线有四个交点。
根据以上原理,可以依次类推出数字0—9和小数点与所画的三条线段1、2、3的交点数。数字、小数点与线段交点个数表如表1所示。
如表1所示,上面的特征以组号的形式区分开,与线1相交的交点数不同可分为3组,即4、7和小数点为[11]组,0、1为[12]组,其余的为[13]组(其中括号中的第一个数字代表线号,第二个数字代表组号)。同理,与线2,相交的也可分为3组,即小数点为[21]组,0、4、8、9为[22]组,其余的为[23]组。与线3相交的三组,即小数点为[31]组,0、6、8为[32]组,其余为[33]组。其中的2、3、5三个数字与这三条线的交点数相同,都与线1有六个交点,与线2有两个交点,与线3有2个交点,我们可以通过交点位置的不同来判定。如图6所示,2、3、5三个数字与2、3两条线交点位置有差异,与线2相交时,数字5的x坐标小于小于2、3的x坐标,所以数字5可以根据这种原理被识别出来,而与线3相交时,数字2的x坐标小于3、5的x坐标,所以数字2能被识别,当上述两种情况未发生时,则数字3可被识别出来。
4.2 交线法或割线法
交线法,其原理较为简单,但是相对与上述基于三线的交点识别还是较为繁琐的,而且其中的小数点无法被识别。该方法是由七条线段分别与七条数码管垂直相交来判定相应的数字特征,即根据数码管相交线的位置和相交线的数量来判定是0—9中哪一个数字。如图7所示。
表2列出的是相应数字的割线情况。显示数字的数码管段被截断用(+)号表示。
如表2所示,可得到各个数字显示所对应的数码管数量和位置。从数码管的总数量来看,数字1所需的数码管数量为2,数字4、7所需的数码管数量为4,数字2、3、5的数码管数量为5,数字0、6、9的数码管数量为6,数字8所需的数码管数量为7,所以根据数量可以优先识别出数字2和数字8。接着将所需数码管数量相等的分为一组,然后进行内部筛选,根据数码管的位置不同可以直接识别数字。如数字2通过检测2、3、4、5、7号位置数码管是否与相应线段相交、数字3通过检测2、3、4、6、7号位置数码管是否与相应线段相交,同理,其他数字可按此规律进行检测识别。
5 结论(Conclusion)
上述实验步骤是基于Win7系统,处理器为i5-4200M,摄像头130W像素,得力牌计算器的硬件条件下,以及Visual Studio 2017和OpenCV3.2的软件配置下,最终实现了对计算器数字值的识别。对于处理后较为清晰且位置没有偏移的图片进行识别,由表3所示,识别率近似可以达到100%,由于上述为人工提取图片区域位置,可能出现摄像头的光源亮度不足,以及目标的倾斜程度不同,所以识别有一定误差。计算器上的改良装置可以根据实际情况给以误差补偿,进行增大或减少背景亮度,同时也提升原始图片质量,弥补了人工误差和外界条件的缺陷。该实验中的穿线法也可以推广到其他仪表器械的数字识别中。
参考文献(References)
[1] 林建萍,廖一鹏.基于OpenCV和LSSVM的数字仪表读数自动识别[J].微型机与应用,2017,36(2):37-40.
[2] 魏畅然.基于穿线法的数字识别方法[J].科技情报开发与经济,2010,20(28):137-139.
[3] 张进猛,张进秋.基于OpenCV的图像采集与处理[J].软件导航,2010,9(1):164-166.
[4] 于仕琪,刘瑞祯.学习OpenCV[M].北京:清华大学出版社,2009.
[5] 阮秋琦,阮宇智.数字图像处理(第三版)[M].北京:电子工业出版社,2017.
[6] 毛星云,冷雪飞.学习OpenCV3[M].北京:电子工业出版社,2015.
[7] 王舒憬,杜皎洁.基于OpenCV的数字万用表数字识别方法[J].自动化与仪器仪表,2014(1):62-63.
作者简介:
卓 磊(1992-),男,硕士生.研究领域:机器识别与图像处理.
周 律(1976-),男,博士,讲师.研究领域:机器视觉.
杨丽红(1973-),女,博士,副教授.研究领域:先進制造技术与结构设计.