基于深度学习的配电柜指针仪表示值识读研究

2023-09-27 08:23周燕菲张运楚刘一铭张欣毅
计算机测量与控制 2023年9期
关键词:指针刻度仪表

周燕菲,张运楚,2,刘一铭,张欣毅

(1.山东建筑大学 信息与电气工程学院,济南 250101;2.山东省智能建筑技术重点实验室,济南 250101)

0 引言

采用机器人代替人工进行任务繁重、条件恶劣的巡检工作,可以大幅提升巡检效率、安全以及稳定性。近年来,智能巡检机器人正逐步取代人工完成供配电场所的常规巡检工作,实现无人值守[1]。巡检机器人携带可见光和红外成像系统,对配电柜上安装的仪表、指示灯及开关按钮等设备的示值和状态进行判读,继而做出相应决策。指针式仪表具有构造简单、可靠性高等特点,被广泛应用于配电设备上。因此,实现指针式仪表的位置检测和示值判读,是巡检机器人完成自主巡检任务的关键。

指针仪表示值的自动判读主要包括表盘区域检测和示值识别两个阶段。

现场巡检机器人的相机视场中,除指针仪表外,还包括其他类型的仪表,如数显仪表、指示灯等电力仪表。因此,需首先对指针仪表表盘区域进行检测定位。表盘区域检测的方法有预先标定、区域生长算法[2]、神经网络[3]、特征点匹配[4]等。这类传统计算机视觉方法虽然可以保证特定场景中表盘区域检测速度较快,但需预先准备大量模板,应用场景的适用性较差。随着深度学习和目标检测技术的不断发展,学者们将当前主流目标检测算法,如加速区域卷积神经网络(Faster R-CNN)[5]、全卷积神经网络(FCN,fully convolutional networks)[6]、掩膜区域神经网络(Mask-RCNN)[7]、YOLOv4[8]等,用于仪表表盘区域检测,检测速度和精度都有所提升。但上述目标检测模型参数规模较大,现场部署时对硬件环境要求较高,不适合运用在实际的工业现场。

指针仪表示值识别阶段的关键在于准确识别指针及表盘刻度。对于表盘信息清晰及刻度均匀的指针仪表,可以通过霍夫变换(Hough)[9]直接对表盘指针进行检测,并通过指针偏转角度及刻度的相对位置进行示值判读。对于表盘信息模糊且刻度分布不均匀的指针仪表,直接利用霍夫变换检测指针会产生很大的误差,且无法准确提取仪表的刻度位置及量程,进而导致示值判读失败。采用U-Net语义分割算法[10]将指针和刻度区域从仪表盘中分割提取,降低了指针检测误差给仪表示值判读带来的影响,但该语义分割模型的网络参数量较多,在一定程度上会降低算法的运算速度。

针对配电柜上电力仪表类型多样、表盘特征差异较大的特点,本文采用改进的YOLOv5模型检测仪表表盘区域,结合改进的PSPNet语义分割模型提取指针及表盘刻度,完成指针式仪表示值的智能识读。实验结果表明,本文算法对刻度均匀和刻度不均匀的指针仪表示值判读都具有较高的准确度,示值识读结果在误差允许的范围内最大为6.5%,满足实际工程应用的需求。

本文的主要贡献为:

1)提出结合YOLOv5和PSPNet模型的指针仪表示值识读方法,并在自建数据集上分别使用YOLOv5s和改进的YOLOv5s算法进行表盘位置检测的训练学习,同时采用改进的PSPNet进行表盘刻度及指针分割提取的训练学习,有效的提升了实际工程应用中指针仪表示值判读的准确性和鲁棒性。

2)对网络模型进行改进,将YOLOv5s的主干网络CSPDarknet和PSPNet的提取网络ResNet分别替换为轻量化模型Mobilenetv3和Mobilenetv2,减少网络参数量,有效提升实际应用中仪表示值识读的速度。

1 系统构成及工作流程

1.1 系统构成

本文以安装在某医院配电室的吊轨式智能巡检机器人为研究背景,如图1所示。巡检机器人的硬件系统主要由水平导轨、垂直导轨、滑行轮组、升降缆绳、主控器、可见光摄像头和红外摄像头等部件组成[11],机器人可以在水平和垂直两个方向运行并采集仪表图像。机器人的软件系统主要由导航系统和仪表分析子系统两个部分组成。导航子系统负责驱动机器人到达相应位置,通过扫描配电柜上的二维码使得自动变焦摄像头采集对应仪表的图像;仪表分析子系统负责从采集到的仪表图像中分析出各个仪表的状态,并形成日志报告或告警。各系统之间相互配合,完成自动巡检任务。

图1 吊轨式智能巡检机器人

1.2 工作流程

指针仪表示值的自动判读,由数据集构建、表盘区域检测、指针和刻度区域分割以及仪表示值判读等四个部分组成。机器人接收到巡检任务时可快速调用识别算法,完成仪表示值判读,并对异常情况作出警告,工作流程如图2所示。

图2 指针仪表识别工作流程

首先将巡检机器人采集的指针仪表图像,经数据增强与标注后构建实验数据集;基于此数据集,使用YOLOv5模型和改进后的YOLOv5模型分别进行训练,检测复杂背景下的指针仪表,同时根据位置信息将单个指针仪表从诸多电力设备中提取出来。其次,选取语义分割模型PSPNet对各个仪表的指针和刻度线进行分割提取,并通过霍夫直线检测方法得到指针相对于水平方向的偏转角度;采用最小二乘法对所有刻度线中心点进行圆拟合,进而得到指针回转中心。然后,通过轮廓查找进行主刻度值的字符定位,将每个主刻度值的最小外接矩形中心与回转中心的连线相对水平方向的偏转角度,作为判断指针偏转角度的上下限范围;同时利用 Google OCR工具 pytesseract进行字符识别,得到主刻度对应的具体数值。最后,将指针偏转角度、上下相邻主刻度数值和上下相邻主刻度与回转中心连线的偏转角度,代入角度法公式得出指针仪表示值的对应读数。

2 算法模型

2.1 表盘检测与定位

配电室环境复杂,仪表类型、数量众多,若想完成指针仪表的示值识别,首先要对指针仪表进行准确检测与定位。对于复杂环境下的仪表检测,基于深度学习[12]的检测算法效果优异,同时考虑到工业现场的系统部署要求,本文选择模型规模较小且具有较高精确度与检测速度的YOLOv5模型。

YOLOv5算法推理速度更快,模型采用Pytorch框架,更适合工程部署。根据主干网络Backbone的深度和宽度,YOLOv5共划分为四个量级的模型,分别记为YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x。模型参数依次增加,模型框架逐渐增大,目标检测能力逐渐提升。

针对配电柜各种电力仪表分布相对均匀的特点,规模较小的YOLOv5s模型对于检测表盘区域便可达到较好的效果。YOLOv5s网络由输入端Input、主干网络Backbone、Neck网络、输出端Prediction四部分组成,如图3所示。YOLOv5s在输入端采用Mosaic数据增强、自适应锚框计算、自适应图片调整等方法处理输入图像,起到丰富数据集、减少模型推理速度的作用。在主干网络Backbone部分,YOLOv5s模型加入Focus模块进行下采样,可以减少信息缺失;此外,YOLOv5s还在主干网络设计了CSP1_X结构,可以获得更细致的特征信息,但也因此在一定程度上增加了模型参数。Neck网络中通过采用CSP2_X结构,增强网络的特征融合能力,降低网络训练过程的计算瓶颈及所占内存空间;特征金字塔池化和路径聚合网络结构则起到了有效传递语义信息及定位信息的作用[13]。输出端Prediction中边界锚框的损失函数选择使用GIOU_Loss,同时针对多个目标锚框的筛选采用加权NMS运算操作,以提高对目标识别的准确度。

图3 YOLOv5s网络结构

为使部署模型更简洁,减少模型的计算量,加快推理时间,本文对YOLOv5s网络结构进行改进。将YOLOv5s的主干网络CSPDarknet替换为Mobilenetv3,来进行特征提取。Mobilenetv3是一种轻量级网络[14],深度可分离卷积、残差结构、注意力机制及激活函数H-Swish的引入,在提高提取特征能力的同时,减少了网络参数量,大幅度降低了对算力的需求,提升了算法性能。改进后的YOLOv5s网络结构如图4所示。

图4 改进的YOLOv5s网络结构

本文在自建数据集上对改进的YOLOv5s模型进行训练,然后将巡检机器人采集的图像输入该模型,得到各仪表表盘区域的边界框和置信度信息,进而可以裁剪出单张各类指针仪表图像。

2.2 表盘刻度与指针提取

指针仪表示值判读的关键,需要得到目标仪表的指针及刻度线区域。由于指针仪表的指针和刻度线尺寸较小,且包括无关字符及表盘边缘阴影在内的干扰信息过多,直接采用霍夫变换检测指针或使用最小二乘法拟合刻度线,会产生数值判读误差。为此,本文采用改进后的轻量PSPNet语义分割模型对带有干扰信息场景下的小目标进行分割及提取。

PSPNet模型[15]采用残差网络ResNet[16]作为主干网络提取特征,并使用PPM(pyramid pooling module,金字塔池化模块)获取图片不同尺度、不同位置的信息,一定程度上提升了算法精度,但经过深度预训练的神经网络会增加网络的总体参数量。本文将特征提取网络替换为与ResNet结构相似的轻量化模型MobileNetv2,大幅度降低网络参数量。MobileNetv2利用反向残差结构既可以提取到图像足够多的信息[17],又能够提升整体的计算速度,使得模型在保持轻量级时速度与精度也能得到保证。

PSPNet使用轻量化模型MobileNetv2作为主干网络,提取输入图像Input Image的特征图Feature Map。然后,对特征图Feature Map使用池化核不同的4个层级的PPM模块来收集语境信息,并将结果融合为全局特征,与原始特征图进行连接。最后,通过卷积层、dropout层和上采样层,生成最终的预测图Final Prediction。改进后的PSPNet模型网络结构如图5所示。

图5 改进PSPNet的网络结构

经上述PSPNet模型进行特征分割和提取后,一张单仪表图像只保留仪表的刻度线区域及指针,如图6(a)、6(b)所示,此时指针检测及刻度线拟合不受表盘其他无关信息的干扰。

图6 仪表指针与刻度线分割、检测及拟合结果

对提取结果进行二值化处理,如图6(c)所示,得到指针及刻度线的二值化图像。然后对二值化图像进行霍夫变换直线检测,找到最长直线,即为指针对应的位置,同时得到指针相对水平负方向的偏转角度,如图6(d)所示。

为实现指针仪表示值的准确读数,需要找到指针所在的回转中心。由于每条刻度线中心点所组成的点集,近似分布在一条圆弧上,因此可采用最小二乘法圆拟合,得到拟合圆的圆心,即为指针的回转中心。本文首先利用轮廓查找法,得到每条刻度线的最小外接矩形及其中心点坐标;然后,对每条刻度线的中心点所组成的点集利用最小二乘法进行圆拟合,得到指针的回转中心坐标,如图6(d)所示。

最小二乘法是通过最小化偏差的平方和来确定一组数据的最佳函数匹配[18],圆拟合的原理如下。假设已知圆方程:

R2=(x-A)2+(y-B)2

(1)

式(1)可以写为:

R2=x2+A2+y2+B2-2Ax-2By

(2)

将式(2)改写成右边为0的等式,可以转换得到:

(3)

其中:(x,y)为圆上某一点的坐标值,(A,B)为圆心的坐标,R为圆的半径。由此,求出式(3)二元二次方程的3个参数的值a,b,c,就能确定的值A,B,R,从而计算出拟合圆的半径,并给出圆心坐标。

本文中,每条刻度线的中心点所组成的样本点(Xi,Yi)到圆心的距离:

(4)

为得到精确的拟合圆实际参数,用样本点到圆心的距离平方与半径平方作差,即:

δi=di2-R2= (Xi-A)2+ (Yi-B)2-R2

(5)

进而得到:

δi=Xi2+Yi2+aXi+bYi+c

(6)

令F(a,b,c)为δi的平方和,可得到:

F(a,b,c)= ∑δi2= ∑(Xi2+Yi2+aXi+bYi+c)2

(7)

F(a,b,c)分别对a,b,c求偏导,令偏导为0,得到极值点,比较所有极值点的函数值即可得到所求参数a,b,c的极小值。各参数的偏导公式为:

(8)

通过求解上式可得到参数值a,b,c,进而求得A,B,R的值,最终可以得到所有刻度线中心点所在拟合圆的圆心坐标,即指针回转中心。

2.3 指针仪表刻度数值识别

由于部分仪表的刻度分布不均匀,若直接将检测到的指针偏转角度,作为实际指针相对表盘中0刻度的偏转角,会导致最终读数存在较大误差,因此需要准确判断任意情况下指针所在的上下主刻度线的范围及对应的主刻度值,以及每条主刻度线和回转中心的连线相对于水平方向的夹角。

本文通过轮廓查找法,得到每个主刻度值的最小外接矩形,利用Google OCR工具pytesseract对矩形内的每个字符进行识别,仪表刻度值定位识别结果如图7(a)所示。

图7 仪表刻度值定位识别结果

将上述轮廓查找法得到的每个矩形中心点的位置坐标,按照横坐标依次从左至右的顺序传入数组,并依次求出各个矩形中心点与回转中心连线相对于水平方向的夹角θTi。根据指针仪表中主刻度线必然对应一个刻度数值的特点,将每个主刻度值外接矩形的中心与指针回转中心的连接直线与水平方向的夹角,代替主刻度线相对于回转中心的偏转角度值,作为判断指针落在每对相邻刻度值的上下限范围,如图7(b)所示。

2.4 指针仪表示值判读

本文利用角度法公式计算指针仪表示值读数。角度法可以保证示值判读的准确性,指针偏转角度、主刻度值与回转中心连线的相对斜率都是相对水平方向的相对角度,不会因为表盘倾斜造成判读错误,因此本文无需对表盘进行透视变换矫正。

以仪表图像的左上角为原点,水平方向为x轴,垂直方向为y轴,建立直角坐标系。仪表示值读数示意图如图8所示。根据霍夫变换检测得到的指针所在直线相对水平负方向的偏转角度值θ,判断其对应的相邻主刻度线相对水平负方向的偏转角θTi、θTi+1,进而得到其对应得相邻主刻度值Ti、Ti+1,据此代入公式(9),得到最终指针仪表示数。

图8 仪表示值读数示意图

(9)

其中:Ti、Ti+1分别代表指针左邻、右邻刻度线的值,θTi、θTi+1分别代表左邻、右邻刻度线与回转中心连线相对于水平负方向的偏转角度值,θ代表指针相对于水平负方向的偏转角度值,T为最终实数。通过求解上式可得到指针仪表的读数。

3 实验结果及分析

3.1 数据集构建

根据某医院配电室现场场景的特点,巡检机器人拍摄的指针仪表图像有时会受到光照等环境因素的干扰,致使图像出现亮度不同或反光严重等情况。因此,对实际采集的指针仪表图像需要进行预处理,提高原始指针仪表图像的质量。

由于深度学习模型需要大量样本数据,而配电室中实际可以采集到的指针仪表图像数据有限。因此,本文借助opencv和numpy数据库进行数据增强,实现指针仪表图像数据量级上的有效提升。基于亮度变化、对比度增强、高斯噪声三种数据增强算法,对采集到的配电柜指针仪表图像进行数据增强,并构建得到配电柜指针仪表检测识别数据集,用于目标检测模型YOLOv5的训练和学习。

在表盘区域检测阶段,本文利用LabelImg标注工具对数据集进行标注。根据仪表的类型不同,标注为“cos_instrument”、“pointer_instrument”和“pointer_instrument A”三种类别,并以YOLO格式保存TXT格式文件。从配电室现场获取的原始数据集共有1 432张图像,采用数据增强方式对数据集进行扩充后的最终数据达到4 296张图像。

在表盘指针及刻度线提取阶段,本文利用Labelme标注工具对数据集进行标注,将指针和刻度线分别标注为“dial”和“pointer”,并以VOC格式保存XML文件。将上述数据集经过训练好的YOLOv5s模型进行检测后,裁剪保存检测到的单个仪表图片,作为PSPNet模型训练的数据集图片。

3.2 模型训练

本实验摄像设备为巡检机器人自带的高清摄像头,实验硬件为PC,操作系统是Windows10 64位系统,PC处理器型号为Intel(R)Core(TM)i7-7700,显卡型号为NVIDIA GTX 1050Ti,深度学习框架Pytorch,编程语言为Python,GPU加速库为CUDA10.0和CUDNN7.6.0。

在模型训练之前需要设置模型的相关参数。本文中YOLOv5s模型超参数选取SGD随机梯度下降和学习速率衰减策略训练网络,初始学习率(learning rate)为0.01,批处理大小(batch size)为8,迭代轮数(epochs)为150,输入图像分辨率为640×640,学习率动量因子(SGD momentum)为0.937。将数据集按照8:1:1的比例划分为训练集、测试集和验证集,分别为3 436、430、430张,由于每张图片包含标签数不同,统计数据集中各类型标签数量如表1所示。

表1 样本类型与数量

为保证网络训练的特征提取效果明显,语义分割PSPNet模型训练时采用学习率机制,从主干网络的预训练权重开始训练,训练过程冻结主干加快训练速度。本实验PSPNet模型的主干网络选择Mobilenetv2,冻结阶段的初始轮数(Init_Epoch)为0,迭代轮数(Freeze_Epoch)为50,批处理大小(Freeze_batch_size)为4;解冻阶段的迭代轮数(UnFreeze_Epoch)为300,批处理大小(UnFreeze_batch_size)为4。模型初始学习率(Init_lr)设置为0.001,优化器使用Adam,学习率衰减方式为余弦退火(Cosine Annealing LR)。

3.3 结果分析

3.3.1 表盘区域检测结果分析

1.对于应对武装袭击的恐怖方式,首先加强自身武装安保力量构建,比如依靠当地军警和雇请武装安保人员,同时提前选好撤离路线,确保企业人员安全。2.对于应对炸弹袭击的恐怖方式,其中尤其是汽车炸弹的袭击,一定要做好路障和铁丝网;对于地面炸弹和发射型炮弹,应尽量避免外出和购置防爆服,减少人员伤亡。3.对于暗杀(枪杀)和绑架的恐怖方式,一般采取这样的袭击方式是为了谋财,因此一定要加强领导、财务人员和物资购置人员的安全,尤其是在有大量现金流动时,一定要格外注意。这些人员外出时一定要随身配备安保人员,并且随时与企业汇报自身情况,避免发生绑架和暗杀。

本研究使用mAP(mean average precision)与FPS(frames per second)作为目标检测模型的评价指标。

1)mAP:

精准率P代表被正确识别的仪表占数据集所有被识别仪表的比例,召回率R代表被正确识别仪表占所有仪表的比例,计算公式如下:

(10)

(11)

其中:TPD表示正确识别表盘区域的数量;FPD表示错误识别的表盘区域的数量;FND表示漏识别的表盘区域的数量。根据公式(10)和(11)可以绘制出P-R(precision-recall)曲线,对P-R曲线的Precision值作均值处理,可计算得单类别的平均精准度AP(average precision)。mAP是各个分类准确率AP的平均值[19],mAP的有关计算公式如下:

(12)

(13)

其中:p为精准率,r为召回率,n为类别数。

2)FPS:

FPS是目标检测模型中描述图片处理速度的评价指标,即每秒内可以处理或检测的图片数量。FPS越大,代表模型处理图片速度越快,可以满足工程实时性要求。

表2 不同检测模型对比结果

从表2可以看出,YOLOv5模型和本文改进算法检测效果相当,但本文改进算法的FPS数值更大,可以在相同时间内处理更多的图片,即算法运算速度得到提升。实验结果表明,改进的YOLOv5s算法模型规模小,检测速度较高,1秒可以处理100张图片;评价指标mAP数值较高,可达99.3%,适合进行指针仪表得表盘区域检测与定位。改进YOLOv5s算法检测表盘区域结果如图9所示。

图9 采用改进的YOLOv5对表盘区域检测结果

3.3.2 表盘指针和刻度分割结果分析

本研究使用MIoU(mean intersection over union)作为语义分割模型的评价指标。

MIoU又称平均交并比,是图像分割任务中像素的准确率高低的评价标准,其数值是衡量图像分割精度的重要指标。IoU (intersection over union,交并比)是某个类别预测结果与真实目标之间交集与并集之间的比值[20]。MIoU是模型将每一类别的IoU求和再平均的结果。IoU和MIoU计算公式如下所示:

(14)

(15)

其中:TPS表示预测和实际分割结果都正确的数量;FPS表示预测错误而实际分割结果为正确的数量;FNS表示预测和实际分割结果都错误的数量。

针对上述模型评价指标,本文以相同的实验数据集分别使用U-Net和改进的PSPNet算法模型进行训练,在相同情况下进行训练识别对比。各模型的训练结果如表3所示。

从表3可以看出,U-Net和改进的PSPNet模型的分割效果相差无几,但改进的PSPNet模型大小是U-Net的1/10倍。相较之下,改进的PSPNet模型更适合部署在实际应用场景中,可以保证算法的运算速度,适合进行仪表刻度线及指针的分割与提取。利用改进的PSPNet模型对刻度均匀与刻度不均匀的指针仪表实现分割刻度线与指针的结果如图10所示。

3.3.3 仪表示值识读结果分析

本文选取仪表类型不同、指针偏转角度不同以及量程不同的的10张仪表图像,按照每个训练好的模型进行测试。将每个仪表的指针偏转角度值、指针回转中心坐标以及每个主刻度位置相对回转中心的斜率依次传入数组,最后利用公式法计算得出每个仪表示值的读数,判读结果如表4所示。

表4 十张指针仪表图像示值识别测试结果

实验结果表明,本文方法对于刻度均匀和刻度不均匀的仪表示值判读都具有较高的准确度,在误差允许的范围(-10 A~10 A)内测试误差最大为6.5%,满足实际应用的需求,在配电室环境下的指针仪表检测与识别具有较高的准确度。

4 结束语

本文提出了一种应用于配电室环境的指针式仪表示值判读方法,使用改进的YOLOv5s算法对表盘区域检测定位,结合改进的PSPNet语义分割模型提取表盘的关键特征,完成指针仪表示值的判读。经过实验验证,本文算法可以快速地从复杂背景中检测指针仪表的位置并准确提取,检测精度可达99.3%,平均检测速度为100帧/秒;在误差允许范围内,指针仪表示值识读的相对误差最大为6.5%,满足实际应用的需求。本文算法能对刻度均匀和刻度不均匀的指针式仪表实现检测与示值识别,通过模型改进,提升了检测和识别的速度,使算法具有较高的准确度。但对于镜面反光严重的指针仪表,仍存在无法准确提取表盘关键特征的问题,今后会考虑对算法进行改进,提升因光照强度变化引起镜面反光的指针仪表智能数值判读的准确度。

猜你喜欢
指针刻度仪表
◆ 仪表
◆ 仪表
仪表
欧姆表的刻度真的不均匀吗?
——一个解释欧姆表刻度不均匀的好方法
被吃掉刻度的尺子
为什么表的指针都按照顺时针方向转动
谁大谁小
测量三字歌
基于改进Hough变换和BP网络的指针仪表识别
Microchip推出全新零漂移仪表放大器