多参数数显仪表的自动识别方法研究

2019-01-07 05:10郭永彩王攀峰
中国测试 2018年12期
关键词:穿线字符识别小数点

曾 科,高 潮,扶 新,郭永彩,秦 琨,王攀峰

(1.重庆大学 光电技术及系统教育部重点实验室,重庆 400044;2.重庆长安工业(集团)有限责任公司计量测试中心,重庆 400023)

0 引 言

随着现代工业及焊接技术的迅猛发展,焊接设备已成为汽车制造、机械加工、化学工业、航空航天、造船以及首饰修复等众多领域不可缺少的工业设备[1]。目前大多数电焊机属于数字式,具有读数简单、易于显示等优点。电焊机的显示参数主要包括电流和电压,这两个参数与产品焊接质量直接相关,所以需定期对其进行校准。传统的人工记录电焊机电流、电压的校准方式由于操作麻烦、效率低、易出错、误差大等缺点,已不能满足现代化的生产需求,而用机器视觉代替人体视觉的方式实现数显仪表的快速自动识别成为可能。采用机器视觉的方式不但可以减少繁琐的人工操作过程,还可以减少人为出错几率,更可为数显仪器的自动化测试奠定基础。

目前用于字符识别的方法主要包括模板匹配法、穿线法、神经网络。模板匹配法对每个模式类都定义一个标准的模式,这种方法适用于印刷体数字的识别[2]。模板匹配由于其算法的原理[3],每个被切分的字符需要和建立好的模板库中的20个模板(0~9和含有小数点的0~9字符)进行查找匹配,直到匹配成功才结束,导致该匹配过程比较耗时,不满足快速变化的数显表识别。穿线法识别是基于七段数显表字符的每一段特征建立码表[2,4-5],根据每个字符的码表进行查找匹配识别,该方法具有识别简单、速度快等优点,但是对显示的字符信息要求比较完整。申小阳等[6]提出穿线识别的方法,其识别率为95%;童文超等[7]关于穿线识别方法研究的识别率为95%,平均识别时间为1.3 s。神经网络[8-10]法需要设计大量训练样本,经过设计的神经网络结构,对训练样本形成决策分类,该方法过分依赖特征向量的选取。文献[11]使用神经网络的方法用于数显表识别,其识别率为95%,识别时间400 ms。

对比上述识别方法,本文选择穿线法进行数显表识别研究。上述基于穿线法识别的准确率在95%,平均识别时间较长,不满足快速变化的电焊机数显表。为了提高识别的精度以及算法的实时性,本文构建了改进的穿线识别方法以及新的小数点定位识别框架,实验测试该算法识别率与识别时间,为自动化实时校准系统提供基础。

1 算法识别流程图

算法识别过程主要由3部分组成:图像预处理、图像分割、字符识别,如图1所示。

图1 算法识别流程图

1.1 图像预处理

受数显表面的清洁度、环境的光照强度以及反光等因素影响,图像传感器获取的彩色图像存在模糊、噪声等缺陷,严重影响图像的识别率及效率,因此需要图像预处理减少上述因素对图像质量的影响。图像预处理对于后期的图像分割、字符识别以及实时系统构建起着至关重要的作用。

对数显仪表上的数据区域进行分析,可以得到感兴趣区域具有以下3个特征:

1)在一个区域内密集包含多个字符;

2)发光显示的数显仪表,在图像中较亮,其所在的灰度等级较高;

3)小数点在字符的右下边界位置,高度和数码管字符的段宽度相近。

根据上述3个特征设计算法,不但能快速定位数据区域还能提高字符的识别率。

1.1.1 亮度特征提取

颜色特征是字符识别的一个重要特征。发光的数码管和背景的亮度灰度级偏差较大,因此本文中提取HSV颜色空间中亮度(Value,V)特征作为颜色特征,在保证精度的前提下,通过降低识别目标的特征维度提高识别的速度。如图2所示,经过颜色空间转换,可以有效地解决各种发光(红色、绿色、黄色等)显示的数显。RGB到HSV的V通道转化为

图2(b)表示对不同颜色显示的图像提取亮度特征值得到的处理效果,从二值化结果表明该特征能很好地适应各种颜色显示的数显表,但是对于泛光严重的数显表,其亮度特征会被大量噪声影响,导致使用该特征效果较差。

图2 不同颜色图像的特征处理

1.1.2 图像二值化和滤波去噪

二值化的核心问题是选择合适的灰度等级[12],使用该灰度级能有效地将目标和背景区分开。本研究是针对发光显示的数显表,由于其灰度级较高,所以用最大类间方差方法[13](Otsu)能得到较好的效果,二值化效果如图3(b)所示。

长期使用的数显表,其界面上可能会出现严重影响后期图像处理的噪点。滤波去噪可以减少噪声,提高图像质量。影响后期识别精度的噪声主要包括字符周围以及字符间的噪声,采用中值滤波可以有效地剔除部分噪声,而且还保留了目标的边缘特征信息。经过滤波去噪,字符0、1、7会出现中间断裂,基于开运算的方法可以连接中间断裂的像素提高定位准确率。

图3 图像预处理

从图3中可以看出经过滤波以及开运算处理后,减少了部分字符周围的噪声。

1.1.3 图像定位及分割

图像分割是将目标从背景中分离。文献[14]使用Sobel算子提取字符特征信息。本文基于横向扫描和纵向高度连续扫描的方法找到字符的上下边界,如图4所示。

图像分割出每个字符,数显表上的中间指示灯也被裁剪出来。后期识别的时候可以根据位置信息排除其干扰。

1.2 字符识别

穿线法识别的原理如图5所示。为了更好地表示数码管的特征,将后续的图像的灰度进行反转处理,图像中的白色表示背景,黑色表示字符信息。

图5(a)中的线A表示七段数码管高度1/4处与数码管的特征交点,线B表示与七段数码管高度3/4处的特征交点,线C表示与七段数码管宽度1/2处的特征交点,用编号①~⑦表示这7个交点的信息,如果识别字符的段与直线A、B、C有交点置为1,无交点则置为0。对数字0、2~9这9个数字进行编码可得表1。对于字符1,由于其宽度和其他字符的宽度有偏差,不能用穿线的方法,所以本文用其他方法对其进行识别。对于0、2~9这9个数字,图5(b)展示用穿线法快速识别每个字符的过程。

1.2.1 非字符1识别

对于大部分数显表,其显示的七段字符并不像图5(a)那样垂直,而是如图6(a)所示,七段字符的右侧段朝右倾斜,直线C的底部会与字符7的右下侧的段产生交点,导致用上述穿线方法对字符7、3出现错误识别。所以本文对直线C提出了改进方法,如图6(b)所示,基本思想是用一条斜线代替竖直线C,通过检测字符的右侧段倾斜角度确定斜线的斜率,从而避免错误识别字符7和3。假设斜线的方程为

图4 图像定位及分割

图5 穿线法交点特征提取

表1 字符识别分类码

图6 改进的穿线法

式中:y——图像的高度方向,单位为像素;

夏季是降水过程最为活跃的时间段,且降水具有较强不稳定性。从影响系统分析来看(表2),高空槽、低空切变和地面倒槽或低压仍然是大多数夏季暴雨系统必不可少的配置,而副高的强弱进退也成为夏季暴雨重要的制约原因,从表2可见,副高引起的暴雨过程有9次。除此以外,东北冷涡作为重要的一类降水天气系统,仍有10次暴雨过程与之有关。由于夏季各月的主要影响系统存在较大的差别,以下分月份进行分析。

在字符分割时可以确定W和H参数。对于参数k,可以依据线A和线B与字符在高度1/4以及3/4处的边界获得坐标信息,然后根据坐标信息求得斜率k。

求解k的过程如下:对于字符 0、3、4、7、8、9,在直线A、B与字符右侧边界各取3个交点;对于字符6在直线A、B与字符左侧边界各取3个交点;而字符2和5,直接在线A处取6个交点。可以依据线A和线B的交点信息判断某个字符属于上述3种情况中的哪一种。所获得的6个交点位置信息分别用矩阵M和N顺序存储,如下所示:

根据M和N,分别计算两者的x和y的平均值,即:

通过实验表明,右侧倾斜的字符其斜率约为-6,当斜线的斜率k的绝对值大于10,近似判定字符的右侧边界竖直,此时取

1.2.2 字符1识别

本文对字符1提出一种新的识别方法。识别的基本思路是:对于宽度较小的字符,并不能确定该字符是1、7或者噪声,因此需首先根据线A和线B与字符的交点信息排除噪声干扰,并且得到字符的段宽和宽度,如图7所示。通过大量实验表明:对于字符1,其宽度和段宽比值满足而字符7满足所以根据这两个比值取一个合理的值作为字符1和其他字符的分界。本文中选取的比值为2.9。本文通过实时统计待识别字符的段宽,所以对于其他分辨率的图像也能获得较好的识别率。

图7 字符1识别原理

1.2.3 小数点识别

因小数点字符较小,故对其识别一直是字符识别的难题。本文中的小数点会和其前面的字符被分割在一起,如图8所示,表示右侧边界到字符顶部的高,H表示字符的高度。本文提出一种简单的快速识别小数点的方法,即通过统计分析每个含有小数点的字符,其右侧边界几乎都是在小数点位置处,所以可以通过检测字符右侧边界的位置判断字符是否含有小数点。对无小数点和有小数点总共8个字符统计其右侧边界信息,如表2所示。

图8 小数点识别原理

表2 小数点判断依据

根据表中的比值得出结论:对于无小数点的字符,其右侧边界满足而有小数点的字符满足在[0.6,0.9]之间取一个值,便能判断字符是否有小数点。本文选择的

1.2.4 数据分类准则

本文针对电焊机显示的电流电压作为两类数据的识别对象。两类数据处于同一行,通过统计字符间的距离信息,将距离最大的两个相邻字符作为两类数据的分隔。

2 实验结果分析

本文的算法设计程序利用C++语言实现。

静态识别测试:采集200张30°仰视、200张20°俯视(-20°)、300 张-20°~30°之间的图像进行算法验证,如表3所示。可以得到图像识别算法的平均识别准确率约为99%,拒识别率1%,错误识别率1%,平均每张图像识别时间为7.2 ms。

表3 识别算法测试

动态识别测试:在相机分辨率设置为1 008×602像素的条件下,当相机的采集速度达到118帧/s时(平均时间为8.5 ms/张),本文提出的算法可以同步识别,正确识别率为98.4%。动态识别率比静态识别率低的原因是由于数显表刷新变化过程中,出现停顿现象,导致相机采集的图像中的某些字符不属于0~9,所以识别率降低。动态识别为数显仪器的动态校准过程提供了基础。

3 结束语

本文从数显表的特征入手,建立适用于数显仪表图像的识别算法模型。针对彩色图像,提出一种利用HSV色彩空间的V通道作为特征的方法,解决各类颜色显示的数显问题。改进穿线法,用倾斜线代替竖直特征线,完成了静态和动态字符的识别。针对小数点提出了利用字符边界的位置信息快速识别方法。实验验证本文算法可以识别两类任意七段字符的数据,并且静态识别算法的识别率达到99%,平均识别时间为7.2 ms/张,动态识别算法的识别率达到98.4%,平均识别时间为8.5 ms/张。本文研究的算法可用于像电焊机这种快速变化且含有多参数的数显仪器的动态校准。

猜你喜欢
穿线字符识别小数点
羽毛球大赛的穿线是什么样的?
2019苏杯尤尼克斯穿线团队成员工作随笔
融合字符及字符排列特征的铭牌识别方法
一种基于OpenCV的车牌识别方法
基于MATLAB的图片中字符的分割与识别
简易手拉式擦窗器
简易手拉式擦窗器
小数点移到哪去了
超级小数点
小数点流行病