基于深度学习的巡检机器人指针式仪表识别方法
2024-03-29冯文奇
冯文奇
河北省天然气有限责任公司
在燃气、石油化工、电力等传统工业中,需要使用各种类型的仪表来随时监测数据,保障每个设备的正常运行。其中,指针式仪表由于构造简单、不易受环境影响和成本低等优点,被广泛应用于上述场景中。但是指针式仪表通常不具备电子通讯接口,因此目前大多采用人工读取的方式进行记录、统计与监测。人工读取的方法存在着诸多问题,首先,工作量大且工人容易疲劳,导致检测效率低、误差大或漏检;其次,难以及时发现仪表异常,而且人工作业成本也较高。此外,英国BP 公司等国外公司已经在站场数字化转型中,通过无线智能终端来实现设备、仪表位置标记与识别[1]。国内油气站场也正在探索数智化转型,通过数据自动采集技术以及对信息系统整合升级,实现生产数据的融合与共享[2]。为了加速长输站场数字化转型,保障站场设备正常运行,有必要利用机器视觉、图像处理等手段研发一种快速自动识别仪表示数的算法,以此实现对指针仪表的不间断定期巡检。
目前,针对仪表示数识别问题,国内外研究人员根据不同研究方向提出了不同的解决路线。传统仪表识别算法首先通过圆形检测实现仪表定位,然后通过骨架提取算法、canny 边缘检测、Hough 变换算法以及区域生长算法等一系列的图像处理算法检测到表盘中指针、圆心、刻度线等关键信息,最后利用距离法、角度法进行示数计算[3-5]。而工业场景中常伴随光照、噪声等干扰,传统算法仪表示数识别率较低。KHAN W等针对仪表光照变化、模糊等干扰,提出了一种基于卷积操作的指针检测方法,对动态环境变化的鲁棒性有所提升[6]。KUCHERUK V等提出了一种基于指针旋转中心位置,并结合ORB 特征提取来进行仪表示数读取的算法[7]。DAI等提出了将卷积神经网络用于温度表的实时识别,但仍然局限于特定种类的温度仪表[8]。徐发兵等提出利用优化的YOLO9000网络模型进行仪表定位,然后通过改进EAST(Efficient and Accuracy Scene Text 高效准确的场景文本)算法提高表盘文字的提取能力,最后根据数字的位置信息,确定指针直线和仪表圆盘的圆心[9]。李金红等提出了一种基于Faster R-CNN 检测仪表圆盘和指针的算法,根据指针目标框的位置信息裁剪得到指针图像,在指针图像的基础上进行二值化、细化、霍夫变换检测直线、最小二乘法拟合直线等步骤识别仪表最终读数[10]。董云龙等提出了一种基于细节注意力机制的卷积神经网络MSN 算法以提高刻度线提取能力,通过设计的细节注意力(detail-attention,DA)模块有效地提升预测热图的空间平滑性、减少对非刻度线区域的响应[11]。
综上所述,基于传统图像处理的仪表识别方法无法适应复杂多变的工业生产环境。基于深度学习的指针式仪表自动读数应用,一般采用Faster-RCNN算法[12]、全卷积网络FCN[13]以及YOLO算法[14]等实现仪表表盘定位,然后利用U-Net[15]、Deeplab[16]等图像分割算法提取仪表指针,并通过DB[17](Differentiable Binarization 可微分二值化)、EAST[18]等算法进行表盘数字检测,CRNN[19](Convolutional Recurrent Neural Network 卷积递归神经网络)等算法进行文字识别。然而单纯利用深度学习进行识别需要多个模型,从而导致识别速度慢,而且当表盘出现遮挡、污渍、逆光等情况时容易产生误识别。
针对现有算法识别精度不高,场景适应的鲁棒性不强,算法复杂度高,无法实时处理的缺点,提出一种传统方法与深度学习方法相结合的方法(区域分割+YOLOv5算法),使得指针仪表自动读数算法趋于稳定,对环境的适应性变强。该方法具有以下特点:提出一种基于YOLOv5 的仪表检测算法,用于工业场景中表盘定位;通过基于区域分割的算法将指针分割,并通过颜色信息、区域分割、旋转矩形等步骤来识别示数。
1 基于目标检测的指针式仪表识别
燃气、石油化工系统中指针仪表识别主要存在以下难点:现场环境复杂,容易受到光照影响导致难以准确定位表盘区域,并进行分类;仪表表盘经常会出现各种缺陷,例如模糊、遮挡、污渍、指针阴影等现象,导致无法准确进行表盘定位、指针提取、刻度识别等(图1);表盘种类多,且包含双指针或警示条等,影响指针定位。
图1 仪表表盘缺陷Fig.1 Defect of instrument dial
针对以上问题,提出首先使用YOLOv5进行仪表定位,然后利用区域分割算法实现指针和刻度提取,最后根据先验刻度值和指针角度实现示数读取。算法流程如图2所示。
图2 自动仪表识别流程Fig.2 Flow of automatic instrument recognition
YOLOv5 算法损失函数分为三部分,其中分类损失和置信度损失采用二元交叉熵损失,采用GIoU 作为边界框回归的损失函数。GIoU 方法在克服了IoU 缺点的同时又充分利用IoU 的优点。GIoU的公式如下:
式中:IoU为预测框与真实框的相交区域面积与并集面积的比值,即交并比;Ac为预测框与真实框最小闭包的区域面积,cm2;U为预测框与真实框的并集面积,cm2。
2 基于YOLOv5的仪表定位算法
2.1 YOLOv5网络结构
YOLO 系列算法是典型的单阶段目标检测算法,经过不断更新迭代,已经发展到YOLOv5,由于其能一次性完成目标定位与目标分类两个任务,因此选择YOLOv5作为机器人仪表检测网络,如图3所示。YOLOv5 输入端使用Mosaic 数据增强、自适应初始锚框计算、图片缩放等对图像进行预处理;采用Focus 下采样、改进CSP(Cross Stage Partial Network跨阶段局部网络)结构、SPP(Spatial Pyramid Pooling 空间金字塔池化)池化金字塔结构,从输入图像中提取丰富的信息特征;使用PANet作为检测项来聚合特征,Conv 卷积模块的激活函数采用SiLU 函数,实现了不同尺寸目标特征信息的传递,解决了多尺度问题;Head 采用三种损失函数分别计算分类、定位和置信度损失,并通过NMS(Non-Maximum Suppression 非极大值抑制)提高网络预测的准确度。
图3 YOLOv5网络结构Fig.3 YOLOv5 network structure
2.2 仪表检测
数据集全部来自于现实工业场景中的指针式仪表,并通过机器人进行采集,图片分辨率为1 920×1 080,共5 000 张图片,这些数据图片包含部分表盘缺陷数据(图4),例如表盘遮挡、污渍、仪表不完整等。将采集到的数据通过Labelimg软件进行标注,在标注过程中选取出图片中所有的仪表,自动生成xml文件,并制作成VOC数据集用于训练。
图4 部分仪表数据Fig.4 Partial instrument data
实验环境使用Ubuntu20.04 操作系统,使用4 块Nvidia TITAN X 显卡进行训练,采用YOLOv5目标检测模型。经过目标检测模型检测后如图5所示。
图5 部分仪表检测图Fig.5 Partial instrument detection diagram
3 基于区域分割指针仪表识别
3.1 表盘区域预处理
对YOLOv5检测到的指针式仪表表盘区域依次进行图像平滑、颜色校正、彩色增强处理。其中图像平滑是为了去除图像中产生的噪声,减少噪点对识别示数的干扰。然后进行颜色校正,以减少图像中的颜色与真实世界的颜色误差。最后采用对比度受限的自适应直方图均衡算法进行增强,该算法在局部区域利用极限值对图像直方图进行裁剪,使图像不会出现过分增强。
采用均值滤波进行平滑处理,其中滤波器的大小为3;使用灰度世界算法进行颜色校正,灰度世界算法通过R、G、B 每个通道的颜色均值与三通道均值的增益更新RGB颜色的值,如公式(3)所示;采用伽马变换进行彩色增强,伽马值取2,伽马变换如公式(4)所示。
式中:kr为红通道增益;kg为绿通道增益;kb为蓝通道增益;meanrgb为红、绿、蓝三个通道的平均值;meanr为红通道平均值;meang为绿通道平均值;meanb为蓝通道平均值。
式中:s为线性变换后的输出;c为灰度缩放系数;r为图像的每个像素点;γ为调节常数。
3.2 指针及刻度线分割
3.2.1 指针区域提取
表盘区域经过预处理后,需要将RGB 空间图像转换成为HSV 颜色空间,以方便分离彩色和亮度信息,并且能够保留彩色信息不变,为后续指针和刻度分离提供帮助。HSV 颜色空间由H(hue)、S(saturation)、V(intensity value)三个分量组成,更符合人眼视觉系统,HSV颜色空间模型如图6所示。
图6 HSV颜色空间模型Fig.6 HSV color space model
获得HSV 颜色空间后,进行指针和刻度线提取。由于表记指针和刻度通常为了便于读取,颜色常呈黑色,HSV 空间中黑色分量的范围是H∈[0,180]、S∈[0,255]、V∈[0,46],为了进一步扩大提取黑色的范围,V的取值范围设置为[0,60]。设此时颜色提取的结果为mask1。由于指针通常位于表盘中心附近,为了进一步将指针区域提取出来,在图像中心点附近利用分水岭分割算法对mask1进行区域分割,经区域分割后即得到指针区域。获得完整指针区域后,对连通分量进行矩形框包围,此时连通分量的长半轴与指针方向平行,且旋转角度也相同,如图7所示。
图7 指针提取路线Fig.7 Pointer extraction route
3.2.2 指针角度确定
经过上节得到旋转角度后,指针还无法确定具体的转向角度,需要根据指针头的指向确定正确的角度。采用的方法是计算旋转矩形的中心,建立与表记图像大小等价的笛卡尔坐标系(图8),然后根据中心点落在笛卡尔坐标系的象限位置来确定指针方位。按逆时针方向计算,每个象限的角度范围是:Ⅰ∈[0°,90°)、Ⅱ∈[90°,180)、Ⅲ∈[180°,270°)、Ⅳ∈[270°,359°],例如中心点在第二象限,那么角度范围应该是[90°,180)。
图8 笛卡尔坐标Fig.8 Cartesian coordinate
3.2.3 刻度线区域提取
设旋转矩形的中心点为圆心,计算旋转矩形的长半轴的长度,取长半轴长度的0.7 倍作为半径r。在mask1上,以mask1圆心为原点,r为半径的内接圆区域填充。在mask1 计算最大轮廓外接圆,并进行形态学腐蚀,消除表盘区域,此时区域即为刻度线区域(图9)。
图9 最大轮廓外接圆与内接圆、刻度线区域Fig.9 Maximum contour circumcircle and incircle,tick mark area
3.3 仪表示数计算
通过计算每个刻度线坐标到图像左下角和右下角坐标的欧式距离,确定刻度线量程的坐标,即离图像左下角和右下角最近点的坐标。计算两点到旋转矩形中心的角度得到刻度量程的最大角度(Amax)与最小角度(Amin)。设此时指针的旋转角度为Ar,量程范围A与起始刻度值B已知,最终示数C如公式(5)得出。
4 实验结果分析
4.1 仪表检测结果
为了对比YOLOv5算法和其他算法,选择相同的数据集进行不同模型的训练,并在不同光照、不同角度和不同背景下的仪表图片进行测试,图片分辨率为1 920×1 080,共100 张图片,其中部分图片包含多个表,总共含有130 块仪表。经过测试,基于Hough圆检测的传统图像算法检测率和速度都非常低,难以满足工业识别要求;基于图像分割的U-Net、FCN 模型由于需要逐像素分析导致速度很慢;YOLOv3 和YOLOv4 模型[20]虽然优于前者,但仍然未达到测试要求;而YOLOv5模型检测仪表的误检率和漏检率都低于其他目标检测算法,且识别速度快。但对于图片十分模糊,或者仪表极度缺失的情况下,所有算法都容易出现漏检。测试结果见表1。
表1 仪表目标检测测试结果Tab.1 Test results of instrument target detection
4.2 仪表示数结果
常规的指针式仪表识别方法通常是从图像、灰度图、二值图、细化与形态学处理、Hough检测直线,连通分量提取等过程。王东灿等在此基础上增加了仪表指针通过圆盘圆心这个条件(Hough变换指针角度识别方法),选用该方法作为对比算法之一[21]。此外,分别选择YOLOv5 检测模型和Deeplabv3+[22]分割模型进行对比实验;为了减少识别的偶然性,分别选用黑色单指针、黑色单指针单红线条和黑色指针双红线条三种表型各100 张进行测试,且将识别误差在2%以内的仪表看作正确识别,如图10所示。
图10 测试图(黑色单指针、黑色单指针单红线条、黑色指针双红线条)Fig.10 Test charts(black single pointer,black single pointer with single red line,black single pointer with double red lines)
使用Hough变换指针角度识别方法测试时发现对于带红线条的表记,因红线对指针的影响,该方法无法正确得到指针,所以对该方法加入去除红色线条步骤来进行对比。使用2 000 张不同类型表记分别进行指针检测和分割标注工作,并完成Deeplabv3+和YOLOv5模型训练,测试结果见表2~表4。
表2 黑色单指针测试结果Tab.2 Test results of black single pointer
表3 黑色单指针单红线条测试结果Tab.3 Test results of black single pointer with single red line
表4 黑色单指针双红线条测试结果Tab.4 Test results of black single pointer with double red lines
从三组对比数据可以看出,基于Deeplabv3+的指针提取的方法耗时最长,随着红色线条的增加识别率有所下降;基于YOLOv5指针提取的方法耗时与区域分割+YOLOv5 算法相当,但易受红色线条影响导致识别率低;Hough变换指针角度识别方法耗时较长,识别结果也较差。区域分割+YOLOv5算法因算法结构简单,算法复杂度低,处理时间很短,且识别精度高于其他方法。在测试时还发现如果指针仪表有红色线条干扰时,基于常规的方法会直接失败,基于深度学习的方法鲁棒性较差,而区域分割+YOLOv5 算法不会受到任何影响,所以适应环境的鲁棒性更好。
5 结论
本文提出了基于深度学习目标检测与传统图像处理相结合的方法进行指针仪表自动识别,包括仪表表盘定位、指针区域提取、刻度线区域提取和表记示数计算四个部分。由于现实场景中指针仪表经常受到遮挡、模糊、红线警示条等影响,难以准确进行表盘定位和指针提取,提出利用YOLOv5进行表盘定位,能够适应环境准确地定位到目标区域,对于工作生产环境中的光照干扰,进行了图像平滑、颜色校正、彩色增强处理,以减弱现场光线的影响,通过现场实验中图像预处理过程可以将逆光状态下的表计图片处理至深度学习算法可识别的状态,这种处理方式可以有效减弱逆光对表盘带来的影响。用区域分割的方法进行指针区域提取和刻度线区域提取,通过图像预处理和HSV 颜色空间变换等算法增强指针提取能力,并在指定范围内分割刻度线。最后通过计算指针角度和刻度线最大、最小角度计算仪表最终示数。与其他方法相比,区域分割+YOLOv5 误检、漏检率低,仪表示数识别相对误差小,准确率高,且整体识别速度快,满足工程要求,实用性更强。