基于YOLO检测器的指针式表盘测量系统

2021-11-01 06:29戴斐甘成愿
微型电脑应用 2021年10期
关键词:霍夫读数指针

戴斐, 甘成愿

(中国民用航空中南地区管理局 空管设备应用技术开放实验室, 广东 广州 510405)

0 引言

老式的表盘设备仍大量存在于工业设备中,这些设备并不能向服务器设备输出电子数据信号,而只能依靠人工去读数,这对于人工成本日渐增长的社会明显不适用。这些设备价值高昂,有时候也存在技术壁垒,导致不能轻易更换。并且,这类设备在生产环境中是24小时在工作的,要求人工24小时关注表盘的移动明显不可行,而且人工读数会受到工人的疲劳程度、视角的影响,可能导致读数错误,从而产生重大的事故。由于我国是工业大国,大部分贵重的工业设备还是上世纪遗留下来的,因此建立一套能够对表盘检测和识别的智能化的视频监控平台,对减少工业生产事故,保障生产安全,提高工业信息化和智能化水平有着深远的意义和广阔的前景。

1 研究概况

在表盘读数研究上面也引起学术界的关注。目前也有相应的研究[1-3]成果发表,昆明理工大学[4]同样采用了霍夫变化的方式对表盘设备进行读数,同样是对直线的检测,但他们对图像的要求比较严格,且采用的是人工切割的方式对表盘进行截取,这对实际应用并没有帮助。上海工程技术大学[5]依赖Labview SDK对表盘进行读数,缺少对生产环境的适应性,且没有专门的数据库支撑。广东工业大学机电工程学院[6]提出了利用特征匹配的方式来定位表盘指针,并利用最小二乘的方法去拟合指针的角度分布,然而仍存在特征提取速度过慢、特征干扰程度较高等问题。张文杰等[7]提出基于视觉显著性区域检测的仪表读数算法,根据视觉显著性原理的先验知识检测表盘指针的存在区域,然后对图像进行旋转来找到横坐标投影的最大值,但显著性区域范围较广,误差较大。

2 指针式表盘测量

在本章,介绍表盘测量系统硬件设备要求及算法执行的整个流程。其流程如图1所示。

图1 表盘测量流程图

首先采用目标检测器将表盘目标检测出来,然后使用图片处理方法将表盘ROI区域从图片中抠出来,再对表盘图片应用霍夫直线检测算法将表盘中的指针检测出来,获取指针的角度,从而计算出表盘的刻度Rarc,计算式如式(1)、式(2)。

(1)

(2)

其中,Darc表示算法算出来的角度值;Dmax表示算法理论上的最大计算角度,为90度;而Rmax则表示表盘上的最大刻度值,这个数值因表盘而异。

3 基于深度学习的表盘目标检测模型

目标检测任务是指在给定的图片中找出特点的物件。在本文中采用YOLOv3[8]检测器,YOLOv3精度上和速度上都有很好的效果,具备很强的实时性,满足工业对速度的要求。

YOLOv3网络:区别于二阶段目标检测器,YOLOv3检测器主要追求检测的速度,但同时其检测精度上也并没有下降太多。YOLOv3主要由3个部分组成,如图2所示。

图2 YOLOv3流程图

图像预处理过程:包括将图像数值归一化、图像增广过程、图像张量化、图像区域划分这几个过程。其中图像区域划分使得YOLOv3能快速对整个图像处理。

图像卷积及分类预测:是深度神经网络的一个经典过程,利用卷积核对图像高层语义特征进行提取,提取出区分性较高的目标特征,再输入到定义的分类器中,让分类器对特征进行分类及回归坐标。

预测融合:是对网络做出的预测进行后处理的一项工程,做了融合后的结果数据更加符合人的查看方式,而且也能消除掉一些噪声,得到更加对齐的目标框。

4 霍夫直线检测

在获取到表盘图像后,考虑到表盘处于工业环境下,表面可能会受到不同程度的污染,如果继续采用目标检测的方式检测刻度,会有不可知的噪声分布影响。而基本表盘的指针是可以看清的,在固定的环境下,配合良好的光线,采用图像处理的方式就能很好地得到指针的位置,从而得到表盘读数。综合上述考虑,我们利用霍夫直线检测方法去检测表针。下面介绍霍夫直线检测的原理及在本文中的使用方法。

4.1 霍夫直线检测原理

一般地,在图像空间中使用笛卡尔直角坐标系,在图像空间描述一条直线为y=ax+b, 即可以使用点对(a,b)来表示图像空间中的一条直线方程。可以得到(a,b)组成的参数空间,参数空间中任意一个点表示图像空间中的一条直线。试想,图像空间中任意两点相连,确定一条直线,在参数空间中记为A(a0,b0),那么在图像空间中确定为一条直线中的任意两点组成的直线都为同一条直线,则在参数空间中都用同一个点A(ap,bp)表示。如此,可以利用统计特性来求解直线。即参数空间中的峰值点可以确定为图像空间中的直线。示意图如图3所示。

然而,为了解决存在着竖线斜率为正无穷的情况,一般情况下会采用极坐标转换的方法,用极坐标系来表示参数空间。即在图像空间中采用r=xcosθ+ycosθ来表示一条直线,则在参数空间中是点(r,θ),在图像空间中经过点(x,y)的直线簇在参数空间中是一条正弦曲线。在极坐标系的参数空间表示方法中,对于图像空间的直线统计方法与笛卡尔直角坐标系一致,这里就不再赘述。

4.2 指针检测及角度

在知道霍夫直线检测原理后,可以知道指针一般都符合常规的直线定义。在这样的一个理论基础下,可以对表盘图像进行预处理,从而得到1张能明显观察出表盘指针的二值图像,如图4(a)所示。而后利用形态学操作,将指针略微放小一些,如图4(b)所示,这个可以根据现场生产环境操作。再通过二值图像进行霍夫变换操作,可以得到霍夫空间的三维图像,如图4(c)所示。

取霍夫空间的极值点,过滤掉一些异常的极值点,如90度的,0度的(因为考虑到表盘如果是正方形的话也可能存在极值)。实际到这时候已经获取到指针的角度了,因为极值点本身就有角度的信息了,当然可以再利用极值点在霍夫空间的信息反向得到在正常的笛卡尔空间的线。

5 实验及结果

在这一章节,将提出的方法对在工业设备上收集到的指针式表盘数据集进行了相应的对比实验和消融实验。通过实验,验证了霍夫直线检测方法比基准方法效果要更优。

5.1 数据集

为了验证这个方式的可行性,采集了相应表盘数据集。整体的数据集总共有1 000张表盘图片,将其划分为2个部分,分别是训练集和测试集,比例为5:5。训练集主要用来训练YOLO目标检测器,使得检测器能正确检测到表盘目标所在的位置。测试集用来测试方法的有效性。表盘样本数据如图5所示。

5.2 基准方法

由于目前尚无符合我们数据库的指针式表盘读数方法,故自行设定了以下两种基准对比方法。 通过与基准对比方法进行比较,验证算法的性能。

1) 图像信号方式:这个方法基于传统图像信号处理,是用边缘检测、轮廓检测和最小外接矩形。方法首先检测出表盘所在的位置,再采用读数模块进行读数。

2) 指针检测方式:这个方法是直接训练一个指针检测的目标检测器(而不是表盘检测),再通过返回的指针目标相对于水平的角度计算出相应的刻度计数。

5.3 度量方式

表盘读数问题实质上是一个数值回归问题,故而不能用简单的分类准确率来度量。在本文中,采用平均平方百分比误差来度量算法的优劣。平均平方百分比误差式如式(3)。

(3)

5.4 对比结果

提出的方法和对比的基准方法的实验结果,如表1所示。

表1 实验对比结果

从表中得知,本文方法明显优于其他的对比方法。比如,在测试集上的平均平方百分比误差为0.002 45,明显优于图像信号方式的0.153。通过测试样本实验结果分析,在表盘检测定位上,图像信号方式存在漏检现象,从而导致该算法在平均平方百分比误差上急剧下降。而相对于指针检测方式,其平均平方百分比误差为0.004 64,主要是由于指针检测方法存在计算误差的情况,在获取的指针检测返回的检测框时,再计算到检测框的中位线当成指针刻度,这个计算过程受到检测框存在微小偏移的影响,导致误差增大。同时,用3种方法检测mAP,发现图像信号方式在检测上的效果要低于其他两者。这是由于传统的图像处理方法依赖于边缘,轮廓等具象信息,受图片光照影响较大,使得检测出的目标误差也会较大,而采用目标检测网络的方法能从高层语义上检测表盘目标,对环境的噪声影响具有很强的适合性。

5.5 可视化结果

可视化指针检测方式的检测结果和本文所提方法直线检测过程图,如图6所示。

图6 两种方法对比结果

由图6可以看到,指针检测方式在指针检测上,存在微小的偏移误差,导致该算法在精度上小于本文所提方法。

这里比较直接用指针检测和使用本文方法的目标检测+直线检测的方法。可以发现,直接采用指针目标检测,可能会在转换计算角度时存在较大的误差(左下角图),而本文所提方法,最后计算出来的直线完美贴合指针(中下图)。

6 总结

提出了一种结合深度目标检测网络和图像信号处理直线检测的方式去检测指针式表盘的读数。通过深度目标检测网络,可以有效地、准确地定位到表盘的位置,而很少会受到工业环境的噪声影响。在获取到表盘图像后,霍夫直线检测方法获取到相应指针的位置,从而获取指针的角度读取刻度。在构建的数据集上,本文的方法明显优于其他基准方法,可以达到应用级别。

猜你喜欢
霍夫读数指针
冰山与气候变化
世界之巅的花园——库肯霍夫
垂悬指针检测与防御方法*
读数
读数
为什么表的指针都按照顺时针方向转动
读数
读数
当之无愧的“冰人”
浅析C语言指针