APP下载

家用水表字符的识别算法研究

2018-09-12陈英李磊汪文源徐嘉伯杨丰玉

现代电子技术 2018年18期
关键词:自动识别

陈英 李磊 汪文源 徐嘉伯 杨丰玉

摘 要: 针对基于水表图像的自动抄表,提出满足实时性要求的水表字符自动识别算法。首先,将真彩色图像灰度化和标准化处理;然后,通过字符分割得到独立的单个字符;接着,采用自适应阈值的二值化方法将灰度图像转换为二值图像,再对图像进行去噪和两次位置调整操作,将字符图像裁剪为模板大小并将字符提取到图像中央;最后,对图像进行细化、特征提取和字符识别。基于三类图像样本的实验结果表明,该算法整体的字符分割率可达97.33%,整体识别率达到94.00%,平均每幅图像的处理时间为0.15 s,能满足实时性要求。

关键词: 水表字符识别; 字符分割; 自适应二值化; 位置调整; 自动抄表; 自动识别

中图分类号: TN911?34; TP391.41 文献标识码: A 文章编号: 1004?373X(2018)18?0099?05

Research on character recognition algorithm for domestic water meter

CHEN Ying, LI Lei, WANG Wenyuan, XU Jiabo, YANG Fengyu

(School of Software, Nanchang Hangkong University, Nanchang 330063, China)

Abstract: A water meter character automatic recognition algorithm that can meet the real?time requirement is proposed for automatic meter reading based on the water meter image. The true color image is grayed and normalized, and then the independent single character is obtained by means of character segmentation. The binarization method based on the adaptive threshold is adopted to convert the gray image into the binary image. Denoising and two times of position adjustment operations are performed for images. Character images are cut into the template size, and characters are extracted into the center of images. Image detailing, feature extraction, and character recognition are conducted. The results of the experiment based on three types of image samples show that the algorithm has an overall character segmentation rate of 97.33%, an overall recognition rate of 94.00%, and an average processing time of 0.15 s for each image, which can meet the real?time requirement.

Keywords: water meter character recognition; character segmentation; adaptive binarization; position adjustment; automatic meter reading; automatic recognition

0 引 言

我国水表查表方式经历了单元总表查表、进户查表、户外查表和智能查表[1?2]。随着移动互联网及移动设备的发展,尤其是智能手机普及率的增加,利用智能手机对水表拍照及对水表字符进行自动识别的抄表技术将极大提高工作效率[3?4]。但是家用水表多安装在光线不好的狭小场景中,所以水表字符的自动识别仍然存在一定的难点。文献[5]采用基于神经网络的水表字符识别系统,该方法具有较强的分类能力,但识别系统的运行时间较长,同时对先验知识过分依赖。文献[6]实现了水表指针表盘图像的提取、定位及示值的确定。文献[7]实现了效果比较好的仪表字符分割算法,但鲁棒性不够。文献[8]只针对特定的一种表型,不具有水表读数识别的多样性,且识别速度不高。文献[9]在识别半字的过程中提出了滑动模板匹配的方法,解决了半字模板不唯一的问题,但整体算法的运行效率有待提高。徐平等提出了改进的双半字识别算法[10],从完整双字符模板中截取双半字符模板,利用改进的Hausdorff距离模板匹配进行匹配识别,最后通过比较上下半字符的比例确定字符读数。林阳等首先利用霍夫变换和放射变换定位水表的字符区域,然后用投票策略对字符进行分割,最后使用改进的Tesseract OCR识别引擎对字符进行识别[11]。

针对上述文献存在图像迭代次数过多,整体效率不太理想的情况,本文提出时间复杂度较低,整体运行效率较高,能符合实时性要求的识别算法。

1 水表图像的预处理

1.1 字符区域定位

本文获取的图像为24位真彩色图像,如图1a)所示,通过预处理之前,将图像进行灰度化操作变换为8位的灰度图像。同时,因为数字区域有比较锐利的边缘,这些边缘有水平的,也有垂直的,使用Sobel函数进行水平方向的投影,再进行自适应的阈值化,得到水平投影后的效果如图1b)所示。如图1c)所示,数字区域被投影,但整个表盘也被投影,所以会出现一些干扰,如:表盘的边缘,这些弧形的轮廓非常大,本文通过第一轮筛选去除这些较大的轮廓,根据轮廓的外界矩形的面积进行筛选,将面积大于500和小于10的筛选掉,得到结果如图1d)所示。

此时,图像上的白色区域比较分散,要定位出数字区域,需要得到的一整块的区域。本文对图像进行一次膨胀,膨胀的核选用8×3的矩形核。这种核是一种比较扁的核,可以更好地使横向的线条连接起来,为了不使干扰区域与数字区域连接起来,再用一个较小的3×3的核进行一次腐蚀,得到的效果如图2a)所示。此时数字区域已经完全连通在一起,但是图像上仍然有很多的干扰,需要根据轮廓的外界矩形的面积以及长宽比来进行第二轮筛选。映射到原始图像的区域,即得到待定位的数字区域,要识别的数字字符位于绿色线框所在的水表框内,其效果如图2b)所示。

1.2 单个字符分割

在对图像进行大小标准化后,采用基于固定规则的静态边界法对字符区域进行分割,即根据字符宽度和高度、相邻字符之间的分布距离等先验知识对字符区域进行分割。该算法需要准确指定字符的起始位置,对于水表这样固定字体的字符来说是可行的。为了防止分割出的字符图像的字符不完整,分割时区域应较大些,再通过位置调整,将字符从背景中提取出来。单个字符分割的效果图如图3所示。

1.3 自适应二值化

对于图像的二值化,关键问题是阈值的选择,本文对每个分割后的单字符采用自适应二值化操作。通过观察发现大多数单字符图像对应的灰度直方图都呈现2~3个波峰,当阈值选取第一个波峰后面的波谷时效果最好。步骤如下:

1) 定义一个长度为256的数组gray,并初始化所有数组元素为0,记录图像中每一个灰度级对应的像素点个数。

2) 读取一幅灰度图像,扫描每一个像素点,在每一个像素点的灰度级对应的数组元素位置加1。

3) 遍历整个gray数组,通过滑动窗口找出最大值。

4) 找到第一个波峰值后,找其后面的最小值即为最佳阈值。在找到每个分割字符的自适应阈值后,自适应二值化的结果如图4所示。

1.4 第一次位置调整

1.4.1 左右位置调整

对整幅图像进行扫描,记录图像白点的列数,当列数达到指定宽度,则认为是目标字符。具体可以分为三种情况进行处理:

1) 字符“0~9”:选取以上9个字符的最小宽度20作为阈值。横向扫描图像字符的宽度,当宽度大于这个阈值且小于新图像宽度时,认为是以上字符中的一个。如图5所示,图5a)中字符“3”,图5b)为扫描方式效果图。依次从左向右扫描每一列,扫描到第一条红线位置时,该列有白色像素点,计数器开始记录出现白色像素点的列数,直到扫描到第二条红线位置时,该列不再出现白色像素点,计数器和指定的宽度进行比较,此时计数器大于指定的宽度,认为两条红线内为字符,将两条红线中间的内容提取出来得到图5c)。

2) 字符“1”:其宽度比其他字符要小很多,因此当检测到字符的宽度小于阈值时视为检测到的字符为“1”。此时,只将图像两边裁剪相同大小,保证裁剪后的宽度与模板宽度一致。如图5所示,图5d)中字符“1”,图5e)为扫描方式效果图,从左向右每一列进行扫描,记录连续出现白色像素点的列数,最大的为图5e)中两条红线对应的两列之间的内容,右侧也不再有白色像素點的列,此时计数器的计数小于指定的宽度,认为是字符“1”,于是将两条红线对应的列之间的内容居中提取到新的图像中得到图5f)。

3) 字符宽度大于新图像宽度:右位置调整时还会因为噪声点的影响,扫描到的宽度大于新图像宽度,如图5所示,图5g)为原图,图5h)为当扫描到的宽度大于新图像宽度时会出现覆盖现象。图5j)为图5g)的扫描示意图,左侧图为右图的放大后的图像,从左向右扫描连续出现白色像素点的列数。扫描到第二列时,从上到下扫描该列,出现第一个白色像素点P,则横向扫描当前行,如红色横线所示,该行的白色像素点个数大于新图像宽度,则认为点P为干扰点,不记录在当前列内。依次扫描图像上剩余点,最后得到左右位置调整后的图像见图5i)。

1.4.2 上下位置调整

上下位置调整操作,首先对整幅图像进行扫描,记录图像有白点的行数,当行数达到指定宽度,则认为是目标字符,将字符居中保存在新的文件中。针对三种情况的处理过程为:

1) 如图6a)和图6b)所示,数字处于正中央时,将数字上下两部分删去,数字居中显示。

2) 如图6c)和图6d)所示,数字偏下时,扫描整幅图像,选取下方完整数字,居中保存在新文件中。

3) 如图6e)和图6f)所示,数字偏上时,扫描整幅图像,选取上方完整数字,居中保存在新文件中。

1.5 第二次位置调整

本文使用八邻域对二值化的图像进行细化处理。字符图像在经过细化后,字符不一定在图像中央,需再一次执行位置调整操作,将字符区域提取到图像中央部分。如图7所示,图7a)中字符位于图像中央,细化后生成图7b)时字符在整幅图像中偏下,需要将位置调整到图像中央,调整结果如图7c)所示;图7d)中明显左上角有一个噪声点影响,在第一次调整时无法去除噪声点,细化后如图7e)所示,噪声点范围明显缩小,而字符偏右下,因此再次位置调整,提取出字符置于新图像中央位置如图7f)所示。

2 字符特征的提取与识别

经过上述方法处理后,得到的字符模板如图8所示。

采用粗网格特征和穿越次数特征相结合作为特征。将字符图像平均分为25等份,把网格内白像素的个数作为特征,穿越次数特征是指用水平线或垂直线对字符图像进行扫描。提取的特征共33维,标记为[v={WG1,…,WG25,CYH1,…,CYH4,CYV1,…,CYV4}]。其中:WG为粗网格特征,共25个;CYH为水平方向穿越次数特征,共4个;CYV为垂直方向穿越次数特征,共4个。通过特征向量的欧氏距进行识别。

3 实验结果及分析

3.1 实验样本描述

实验样本为不同时间段采集的RGB真彩色图像,共90幅。本文把图像分为3类,分别为:

1) 较为理想的图像(第1类):光照均匀,字符清晰,没有半字的图像;

2) 有噪声的图像(第2类):光照不均导致存在不同程度噪声的图像;

3) 存在半字的图像(第3类):定义水表读数转盘出现进位不完全情况时的图像。

为了保持实验样本的均衡,每类图像均为30幅,下文中直接用第1类、第2类和第3类表示。硬件环境为Intel Core i5?3320M CPU @2.60 GHz,内存2 GB;软件为Windows XP(虚拟机)和VC 6.0。

3.2 字符分割率

字符是否被完整分割将直接影响字符识别率,总共为450个字符,而每一类图像中包含了150个字符。分割率如图9所示。其中,第1类图像的分割率最高,达到了100%;第2类图像的分割率居中,达到了97.33%,这是因为在预处理阶段本文的算法能够有效地去噪和进行位置调整;第3类图像的分割率最低,这是因为在进行横向扫描时,半字的情况存在一些干扰,但本文在分割该类图像字符时,字符分割率也达到了94%;整体字符分割率为97.33%。相对于其他两个算法的对比结果表明,本文的算法能够很好地满足水表字符分割的要求。

3.3 字符识别率

识别率如图10所示。其中,第1类图像的识别率达到了99.33%;第2类图像的识别率达到了94.67%;第3类图像的识别率为88.00%,为3类图像识别率最低;整体识别率达到了94.00%。对比图10结果表明,虽然本文的识别率相对其他文献没有明显的优势,但是,对比图11的结果可以发现,在识别率相当的情况下,本文算法的识别时间平均要快很多,平均处理一幅水表图像的时间为0.15 s,符合实时性要求。

4 结 语

本文从图像识别技术方面入手,进行水表字符识别的研究,所做的工作包括:

1) 采集到的图像。通过加权平均值法对图像进行灰度化处理,通过线性缩放将图像大小归一化并分割出字符,采用自适应算法对图像进行二值化处理,利用去噪、位置调整、细化等操作对字符进行提取。

2) 预处理的图像。通过粗网格特征和穿越次数特征相结合提取特征,再利用模板匹配进行图像识别。由实验结果可以看出,本文的算法能够满足水表字符自动识别和实时性的要求。

需要改进和下一步的研究方向包括:进一步提高“半字”现象的识别精度;对于拍摄角度不正的图像的研究和处理。

参考文献

[1] 李云栋,孙长庆.基于BP神经网络的实时水表自动识别系统的研究[J].计算机测量与控制,2013,21(5):1330?1332.

LI Yundong, SUN Changqing. Research on real?time water meter recognition system based on BP neural network [J]. Computer measurement & control, 2013, 21(5): 1330?1332.

[2] 马婷.基于图像处理技术的远程抄表系统的设计[D].南京:南京理工大学,2013.

MA Ting. Design of remote meter reading system based on image processing technology [D]. Nanjing: Nanjing University of Science and Technology, 2013.

[3] SAFAEI A, TANG H L, SANEL S, et al. Real?time search?free multiple license plate recognition via likelihood estimation of saliency [J]. Computers & electrical engineering, 2016, 56: 15?29.

[4] ASIF M R, QI C, HUSSAIN S, et al. Multinational vehicle license plate detection in complex backgrounds [J]. Journal of visual communication & image representation, 2017, 46: 176?186.

[5] 林文娅. 基于神经网络的水表字符识别[D].南京:南京理工大学,2007.

LIN Wenya. Character recognition of water meter based on neural network [D]. Nanjing: Nanjing University of Science and Technology, 2007.

[6] 高元元.图像处理技术在自动水表校验装置中的应用研究[D].南京:南京航空航天大学,2010.

GAO Yuanyuan. Application of image processing technology on automatic water meter calibration device [D]. Nanjing: Nanjing University of Aeronautics and Astronautics, 2010.

[7] 刘金清,喻丽春,刘引.仪表字符识别中的图像处理算法研究[J].湖南城市学院学报(自然科学版),2016(2):91?93.

LIU Jinqing, YU Lichun, LIU Yin. The image processing algorithms of the instrument character recognition [J]. Journal of Human City University (Natural science), 2016(2): 91?93.

[8] 张秋月.基于ANDROID平台的水表字符识别算法研究[D].杭州:杭州电子科技大学,2014.

ZHANG Qiuyue. Research on recognition algorithm of meter character based on Android platform [D]. Hangzhou: Hangzhou Dianzi University, 2014.

[9] 吴梦麟.图像式水表读数识别方法研究[D].南京:南京理工大学,2006.

WU Menglin. Research on image water meter reading recognition method [D]. Nanjing: Nanjing University of Science and Technology, 2006.

[10] 徐平,许彬,常英杰.双半字识别算法在水表字符识别系统中的应用[J].杭州电子科技大学学报(自然科学版),2016,36(1):80?85.

XU Ping, XU Bin, CHANG Yingjie. Application of improved double half?word recognition method in water character recognition system [J]. Journal of Hangzhou Dianzi University (Natural sciences), 2016, 36(1): 80?85.

[11] 林阳,郭丙轩,肖雄武,等.利用多种投票策略的水表读数字符分割与识别[J].科学技术与工程,2017,17(10):50?57.

LIN Yang, GUO Bingxuan, XIAO Xiongwu, et al. Water?meter character segmentation and recognition method by using several voting strategies [J]. Science technology and engineering, 2017, 17(10): 50?57.

猜你喜欢

自动识别
中国自动识别技术协会
船舶模拟驾驶系统障碍物自动识别方法
基于数据挖掘的船舶航迹自动识别系统
太阳黑子自动识别与特征参量自动提取
基于卫星遥感图像的收费站位置自动识别与校核
船舶自动识别系统对船舶救助的影响
基于改进Canny算法的道路标线自动识别及定位
自动识别系统
金属垃圾自动识别回收箱
基于IEC61850的配网终端自动识别技术