数字电表图像的检测与识别

2022-08-15 04:51沈美丽
现代电子技术 2022年16期
关键词:矩形框电表轮廓

沈美丽

(青岛理工大学 理学院,山东 青岛 266520)

0 引 言

传统的机械式电表通过电子屏显示数据,无法将数据导出,主要依靠人为观察数据、记录、分析和判断,不仅费时而且人工成本较高。随着社会的进步和电子技术的发展,传统的机械电表正逐步被电子式电表和智能电表取代。智能电表利用图像处理方法设计的自动化检测系统,自动对数据进行记录和判断,减少了出错率,节省了人力成本的投入,增强了数据记录的可靠性并加快了检测速度。

1 检测与识别总体流程

本文设计了一种基于数字图像处理的根据实际电表中数字轮廓特征进行数字检测与识别的方法,整体算法流程如图1 所示。数字检测部分利用边缘检测进行特征区域定位,确定数字位置然后进行框选,针对实际场景对框选数字进行修正,确定整体数字长度后计算数字个数并对轴和轴进行绘制,实现对电表图像的数字分割。数字识别是将分割后单独的数字图像送入K 最近邻算法(KNN)进行训练,通过调用训练后的模型寻找最近邻结果,从而有效识别分割后的数字。这样就完成了对数字电表的检测和识别。

图1 电表识别整体算法流程

2 数字检测

数字检测部分主要包括提取感兴趣区域、框选数字、框选修正和数字切割,算法流程如图2 所示。实际电表情况中,数字格式统一且大小相近,每位数字占据一个小矩形,略微的倾斜对数字切割影响较小。针对以上特点,利用轮廓特征对图像中识别出的矩形框进行筛选和修正,解决首末位数字的检测问题。再通过修正后的矩形框信息对数字进行切割,并送入数字识别部分。

图2 数字检测部分算法流程

2.1 ROI 提取

通过摄像头拍摄获取彩色的电表图像,由得到的样本图像可知,图像获取视窗基本涵盖全部电子屏幕,读数位于屏幕右侧,屏幕区域边框明显,亮度与背景有明显区别。图3 为所选取的几幅有代表性的电表图像。

图3 老式电表样本图片

为实现对数字的准确切割,将电表屏幕作为感兴趣区域(Region of Interest,ROI)提取是首要步骤。因为采集到的图像是彩色图像,首先对图像进行灰度化、二值化处理;随后检测图像外部矩形框,选择面积最大的外部矩形框作为屏幕区域,对该区域的宽、高进行统一化处理,适当缩小至数字区域以方便后续步骤,相同的宽高可保证数字具有相似的尺寸。ROI 区域提取过程如图4 所示。

图4 ROI 区域提取过程

2.2 框选数字及框选修正

框选数字及框选修正是数字检测部分的关键步骤,其效果直接关系到数字提取和数字识别的成败。对提取出的ROI 区域进行灰度化后作边缘检测,可更加清晰地观察到数字位置。边缘检测后线段较乱且不连续,比如数字0 中间断开,进行轮廓检测时会检测为2 个小矩形,因此在检测外部轮廓前需对边缘检测结果进行膨胀处理,使数字融为一体,检测外部轮廓完成初步框选。数字框选过程如图5 所示。

图5 数字框选过程

初步框选结果主要存在的普遍问题如下:

1)由于电表屏幕中除待检测数字之外的其他字符存在,轮廓中包含其他字符干扰。

2)电子屏幕的倾斜使得ROI 提取裁剪后仍可观察到屏幕边缘,导致检测出较大的轮廓。

3)数字之间距离由于点的存在将两个数字连在一起,即多数字检测为单一矩形框。

4)数字最后一位与屏幕右侧字符相连,检测出的数字轮廓较大,对普遍问题进行框选修正。

2.2.1 排除非数字框

观察轮廓检测结果,单独字符检测出的矩形框面积较小,而包含屏幕边缘的矩形框则面积过大。数字面积介于两者之间,所有图片在提取ROI 区域后数字大小相近,可通过面积粗略排除部分非数字框。经检测,单个数字(1除外)所占面积大约为1 200,数字1由于比较窄,面积约为500。考虑到数字相连的情况,两数字相连面积在2 500~2 900,且不排除3 个数字相连的情况。在本文中设置的筛选区间为(470,4 000),不在该区间内的矩形框全部排除。经此粗略排除后,发现依然存在面积符合但不包含数字的轮廓框,如图6所示。

图6 误检轮廓框举例

图6 误检的情况是在其他样本检测过程中实际发生的,即面积符合筛选要求,但过于细长或位置明显错误。待检测数字的宽、高及位置具有明显特征,通过限制矩形框的宽、高及坐标的位置做进一步筛选,保证剩余矩形框均为数字。在该样本集中,数字高度大约为55,设置选择区间为(0,55),数字宽度由于相连变化较大,两位数字宽度在55 左右,设置筛选区间为(0,65)。为排除紧贴上边缘及图像下半部分的轮廓框,设置轮廓框的纵坐标筛选区间为(5,37)。至此,基本可排除所有非数字框的情况。

2.2.2 数字相连情况

排除非数字框后,需对单个数字的宽、高进行统一。对于高度检测低于50 的矩形框,均置50。在后续数字切割(具体见2.3 节)步骤中,所需要的矩形框信息为整个数字轮廓的边沿信息,如图7a)红色框所示,即明确左右边沿即可。首位数字只要在框中,无论是否与后位数字相连都不会影响左边沿,但末位数字的右边沿由于字符影响导致相连则需要进行处理。

在类rect 中信息包含矩形框的左上角坐标(,),矩形的宽和高。对于相连数字位,宽度一般在30 以上,单个数字(除数字1)宽度在25 左右。在不考虑数字1的情况下,对所有检测框宽度置25 即可保证相连数字位只保留靠近左边沿的部分,同时最后一位也会舍弃字符部分只保留数字。修正前后的示意图如图7 所示。

图7 普遍情况修正前后效果图

在出现数字1 的情况下,数字1 长度小于25,相当于一位正常数字的1 2,所占位置贴近该位数字的右边沿则需要进行修正,将该轮廓沿右边沿向左推25。若是数字1 位于首位且与后一位数字相连,此时矩形框宽度范围为(38,44),调整方式相同,向左推55 即可,修正效果如图8 所示。

图8 含数字1 的修正前后效果图

2.3 数字切割

完成对数字的准确框选后,需要对数字进行切割制作训练样本集,训练完成后将切割数字送入识别部分进行识别。

2.3.1 切割轴

将所有返回的修正后矩形框信息按照左上角坐标进行排序。排序后,第一个矩形框的左边沿作为整体的左边沿,最后一个矩形框的右边沿作为整体的右边沿。数字区域的整体宽度为右边沿坐标减去左边沿坐标。数字宽度为25,通过整体宽度除数字宽度计算出数字个数,根据数字个数等间隔分割整体宽度,绘制轴垂直线段将数字之间分隔开。

该步骤对框选的准确度要求较高,在测试过程中发现,检测过程中存在数字漏检的情况,问题主要存在于数字最后一位,由于字符等干扰无法准确框选出数字导致遗漏,如图9 所示。出现漏检时,在框选修正部分是无法对未检测出的矩形框进行修正的,因此需要在切割时进行调整,检测最后一个右边沿的坐标是否在最后一位的范围内,若小于该范围则令最后一个右边沿向右推进30,调整后可正常识别漏检最后一位的情况。

图9 切割调整数字漏检

2.3.2 切割轴

切割轴包括绘制上边沿及下边沿。上边沿的绘制中,对所有矩形框按照左上角坐标进行排序,排序后选择坐标最小值作为上边沿的坐标绘制即可。下边沿的绘制中,对所有矩形框按照左上角坐标与矩形框高度的和进行排序,排序后选择最大值作为下边沿的坐标绘制即可。

完成数字切割后,将每个切割后的独立的数字图片提取出来,进行下一步处理即可。

3 数字识别

K 最近邻(K⁃Nearest Neighbor,KNN)分类算法是数据挖掘分类技术中最简单的方法之一。数字识别部分包括KNN 训练和KNN 识别,具体算法流程如图10 所示。KNN 算法的核心思想是如果一个样本在特征空间中的个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上,只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。在KNN 中,通过计算对象间距离来作为各个对象之间的非相似性指标,避免了对象之间的匹配问题,距离一般使用欧氏距离或曼哈顿距离,同时,KNN 通过依据个对象中占优的类别进行决策,而不是单一的对象类别决策。欧氏距离和曼哈顿距离分别表示为:

图10 数字识别部分具体算法流程

通过数字检测步骤得到切割后的数字,保存图片制作训练集,部分样本图如图11 所示。将数字分为0~9 共计10 类,将每一类图片送入KNN 模型进行训练,生成对应模型。完成训练后,在实际识别过程中,只需调用训练好的模型对输入的数字图片寻找最近邻结果,输出结果即可。

图11 训练集部分样本

4 实验结果

电表图片数量有限,训练集样本数目较少,部分识别结果展示如图12 所示。由于测试图片数量不够丰富,检测精度估计在92%以上。

图12 部分电表识别结果展示

检测错误主要为两类情况:第一,最后一位为数字1时,与后字母连接导致识别位置出错,切割出现问题;第二,图片倾斜,切割出现问题。检测错误情况如图13所示。

图13 检测错误情况

5 结 语

本文主要利用电表数字轮廓特征在提取出ROI 区域后实现对数字的检测,通过逻辑判断对数字检测结果进行修正,完成对数字的准确切割;再制作训练集并送入KNN 得到数字识别模型,可实现对电表数字的有效识别,达到了较高的识别率,具有较高的应用价值。但由结果可知,对于几类特殊情况检测上仍存在识别错误,有待进一步改进。

猜你喜欢
矩形框电表轮廓
巧判电表测量对象
电表“对”与“错”归类巧掌握
OPENCV轮廓识别研究与实践
基于实时轮廓误差估算的数控系统轮廓控制
多模态卷积神经网络的物体抓取检测
一种汽车式起重机防倾翻方法的研究
共享单车有了“家”
看电表
在线学习机制下的Snake轮廓跟踪
一种电表模拟软件的应用研究