张建寰,曾 亮,刘 涛,邓连钧,徐周毅,张陈涛
(1.厦门大学萨本栋微米纳米科学技术研究院,福建厦门 361102;2.国网福建省电力有限公司超高压分公司,福建厦门 361000)
指针式仪表具有结构简单、安装维护方便、不受电磁场干扰、可靠性高、价格便宜等优点,被广泛应用于电力系统、铁路系统、石油系统等领域[1]。指针式仪表数据的准确识别,直接影响到设备状态的监控。传统的人工巡检方式劳动强度大、巡检效率低、检定误差大,并且在极端天气和危险环境下无法正常开展巡检工作[2-3]。随着人工智能技术的发展,户外巡检机器人被广泛应用于变电站、石油化工厂等场所代替人工进行巡检[4-5]。在户外巡检条件下,由于环境复杂,巡检机器人捕捉到的图像容易受到光照、天气、拍摄角度以及复杂背景的影响,导致仪表识别读数精度低、鲁棒性差等问题[6]。因此,如何在户外环境下准确识别仪表读数,至今仍然是一个重要的研究课题。
近年来,有许多关于指针式仪表识别读数的研究。传统的指针式仪表识别读数方法主要基于图像处理步骤提取指针和表盘的特征,采用霍夫变换计算出仪表的圆心,根据模板匹配的方法提取仪表区域的关键点,最后通过计算指针倾角来识别仪表读数[7-9]。这类算法对于图片的质量要求较高,特征提取时容易受到光照变化、模糊、遮挡等环境因素的影响,鲁棒性和准确性较差。
随着深度学习技术的快速发展,深度学习已经广泛应用于各检测领域,包括图像分类、字符识别、目标检测等。在指针式仪表识别领域也有着广泛的应用。文献[10]通过Faster R-CNN自动检测仪表位置。文献[11]采用全卷积网络U-Net提取刻度线圆弧区域和指针针尖区域。虽然基于深度学习的方法对比传统的方法鲁棒性更强,但是在户外复杂多变的条件下,指针和刻度线区域提取仍然不够精确,这将直接影响仪表读数的精度。如何在户外环境下对指针式仪表进行精准识别读数仍然是一个挑战。本文提出了一种适用于户外巡检机器人的指针式仪表识别方法,该方法先通过YOLOv5算法检测仪表目标框,在该区域图像上通过改进PSPNet提取指针和刻度线区域,随后透视变换消除拍摄角度的影响,最后提取指针直线,再根据角度法计算仪表读数。
指针式仪表识别流程如图1所示,它包含2部分:指针和刻度线区域提取和读数计算。指针刻度线区域提取首先采用YOLOv5提取仪表区域,接着在该区域采用改进PSPNet对指针和刻度线准确提取。读数计算主要包括3部分:透视变换消除拍摄角度的影响、指针直线提取、角度法计算读数。
图1 指针式仪表识别读数流程图
由于户外环境复杂,直接在巡检机器人采集的图像上提取指针和刻度线区域不仅计算量大,准确性也会降低,因此首先通过YOLOv5对仪表进行定位,截取仪表区域[12],然后在该区域上利用改进PSPNet提取指针和刻度线区域。PSPNet采用金字塔池化模块对复杂场景进行解析,能够充分利用全局上下文信息,在像素级预测中体现了良好的性能[13]。然而由于卷积池化的原因,分割物体边缘特征提取不够充分,导致边缘分割精度较差。在本研究中,指针和刻度线的边缘分割精度直接影响读数精度。因此,本文引入扩张卷积模块对PSPNet进行改进,提高模型指针和刻度线的边缘分割精度。
改进后的PSPNet结构如图2所示。首先采用ResNet50提取图像数据特征,得到特征图。然后特征图将通过金字塔池化模块和扩张卷积模块充分获取上下文特征和底层特征。在金字塔池化模块,将特征图进行最大池化,利用2*2和6*6两个层级的池化核获取全局特征,形成2个不同的特征图。
图2 改进PSPNet结构图
在扩张卷积模块,采用1*1和3*3的空洞卷积充分获取底层特征,得到2个不同尺度的特征图。随后将这4个不同尺度的特征图进行上采样使其恢复原始特征图尺寸。最后将这4个特征图与原始特征图拼接为最终的全局特征,通过卷积层生成最终预测图。与原始PSPNet相比,改进点主要有2个:
(1)为了提高指针和刻度线的边缘分割精度,增加扩张卷积模块,减少了金字塔池化模块中的2个池化层。采用1*1和3*3两个小卷积核的扩张卷积能够提取更多的底层特征;同时,为了减少模型的计算量,减少金字塔池化模块中的2个1*1和1*3的池化层。
(2)原始的PSPNet模型使用交叉熵损失函数来反映预测结果与真实值之间的差距,损失函数公式如式(1)所示[14]:
(1)
在巡检机器人采集的实际图像中,由于刻度线边缘没有明显界限,指针区域较为细长,难以在图像中将它们准确分割,因此,本文在原有的损失函数基础上引入距离图损失函数。在该损失函数中,越接近分割边缘的像素,所占损失权重越大。距离图损失函数定义如式(2)所示:
(2)
式中:i为像素数;j为类别数;φ为距离图。
改进后的损失函数为
(3)
当巡检机器人采集指针式仪表图像时,相机与指针表之间的拍摄角度会对读数精度产生影响。因此,采用透视变换对图像进行校准。透视变换原理如图3所示。
图3 透视变换原理图
提取出刻度线区域后,对刻度线区域进行最小外接椭圆拟合和最小外接圆拟合。最小外接椭圆的4个顶点记为E1、E2、E3、E4,最小外接圆的4个顶点记为C1、C2、C3、C4。设原图像平面某点的坐标为(x,y,1),在三维投影空间的坐标为(u,v,w),透视变换校准后的坐标为(x′,y′,1),透视变换的矩阵为T,则有:
(4)
(5)
根据E1~E4与C1~C48个顶点的坐标位置对应关系,由式(4)可求得透视变换矩阵T,得到透视变换矩阵后根据式(5)可以将原图像中的所有点投射到新的平面,即可得到透视变换后图像。
提取出指针区域后,对指针区域进行直线提取才能对指针仪表准确读数。根据指针的形状特点,本文基于质心提取指针直线,原理如图4所示。
图4 指针直线提取原理图
将指针区域的最小外接三角形3个顶点分别记为T1(x1,y1)、T2(x2,y2)、T3(x3,y3),设质心坐标为O(x,y)。则根据式(6)可计算得到质心坐标。
(6)
随后,分别计算质心O与T1、T2、T3的距离,距离质心最远的点即为指针顶点。连接质心和指针顶点,即为指针直线。
指针式仪表的读数计算可分为角度法和距离法,本研究采用角度法来计算读数,原理如图5所示。以指针的质心O为原点建立坐标系。Lf表示拟合的指针直线;将第三象限和第四象限中y轴坐标最小的刻度线区域中的点分别记为P1、P2;将P1、P2与O点的连线分别记为L1、L2;将L1与L2之间的夹角记为β;将L1与Lf之间的夹角记为θ。根据先验信息可得到仪表的量程r,则指针式仪表的读数v可通过式(7)求得。
图5 角度法读数原理图
v=θ/β·r
(7)
本文的数据集由2 568张真实户外场景下采集的仪表图像构成,图像由相机以不同的拍摄角度、尺度、光照和背景拍摄,图像大小为2 560 pixel×1 440 pixel。
实验的硬件平台为NVIDIA GeForce GTX 1070 GPU,内存为8 GB;操作系统为Windows 10 64-bit;深度学习框架采用PyTorch架构;开发平台为Visual Studio 2017 和OpenCV 3.4.5。
为了验证YOLOv5模型的仪表定位精度和速度,采用精度(P)、召回率(R)和平均每秒检测帧数(FPS)衡量模型的性能。其计算公式如下:
(8)
(9)
式中:TP为实际上为正的样本被预测为正的数量;FP为实际上为负的样本被预测为正的数量;FN为实际上为正的样本被预测为负的数量。
在训练过程中,将数据集按照7∶2∶1的比例分为训练集、测试集和验证集。训练阶段初始学习率设置为0.001,权重衰减为0.000 5,每批包含16幅图像。
训练结果表明:YOLOv5在仪表定位精度和速度方面都表现优异,检测精度为100%,检测召回率为99.80%,平均每秒检测图片帧数为18.84。部分预测结果如图6所示,在不同背景、光照等条件下,YOLOv5能够准确识别出仪表目标,满足真实环境下指针式仪表识别的要求。
图6 YOLOv5部分预测结果
为了验证改进后PSPNet模型的效果,本文将该模型与原始PSPNet、Deeplabv3+、U-Net、FCN进行对比。并采用像素准确率(PA)、平均交并比(mIOU)与平均每秒检测帧数3个指标来评价指针和刻度线区域分割性能。其计算公式如下:
(10)
(11)
式中:i为真实值;j为预测值;pij为将i预测为j的像素个数。
在上述5个模型的训练过程中,初始学习率都设置为0.001,权重衰减为0.000 5。每批包含4个图像。图像分割效果对比如图7所示,分割性能的统计结果如表1所示。
图7 不同模型的指针刻度线分割效果对比
表1 不同模型分割性能对比 %
从表1可以看出,与原始PSPNet模型对比,改进后PSPNet在PA上提高了2.74%,在mIOU上提高了3.83%,在FPS上提高了2.98%。从分割效果对比图可以发现,改进后PSPNet对于指针和刻度线边缘的分割更加细致。如图7所示,原始PSPNet指针边缘分割不够细致;Deeplabv3+指针和刻度线分割不完整,存在错误分割;UNet虽然边缘分割比较细致,但是存在错误分割的情况;FCN也存在分割不完整、错误分割的问题。这说明改进后PSPNet模型在分割性能上具有一定的优势。
此外,为了验证改进后PSPNet对指针和刻度线区域分割的鲁棒性,采用在不同光照、角度等户外环境中拍摄的图像进行测试。实验结果如图8所示。可以看出,当仪表图像受到光斑、光照变化、对焦模糊等因素影响时,该模型仍然能对指针和刻度线区域进行精准分割,说明该模型的精度高、鲁棒性强,适用于户外复杂环境。
(a)光斑 (b)过暗 (c)过曝 (d)模糊图8 不同条件下改进PSPNet分割效果
由于在户外巡检条件下,有一些仪表离地面较高,巡检机器人采集仪表图像会受到拍摄角度的影响。当光照角度与拍摄角度形成镜面反射时,仪表表面会受到反射光斑的影响。巡检机器人在相机过曝光、夜间巡检或者背光巡检时,仪表图像容易过亮或过暗。同时,巡检机器人采集的仪表图像还容易受到相机对焦模糊的影响。因此,为了验证算法的读数精度和稳定性,本文分别采用4组仪表样本进行测试。4组仪表样本分别由不同角度拍摄的指针式仪表、表面受到反射光斑影响的指针式仪表、过亮过暗环境下指针式仪表和拍摄模糊条件下指针式仪表组成,每组包含4张图片。采用相对误差δ和引用误差γ来衡量本方法的读数精度。其计算公式如式(12)、(13)所示:
(12)
(13)
式中:Rtrue为人工读数结果;Rtest为检测值;M为仪表量程。
4组样本由YOLOv5截取的仪表区域如图9所示,读数结果如表2所示。
(a)不同角度拍摄下指针式仪表
(b)表面受到反射光斑影响的指针式仪表
(c)过亮过暗环境下指针式仪表
(d)拍摄模糊条件正气旨针式仪表图9 不同条件下仪表样本
表2 不同条件下仪表读数结果
由4组样本读数结果可知,最大相对误差为2.94%,这是由于仪表示数较小导致计算得到的相对误差较大。最大引用误差为1.25%,平均相对误差为1.28%,平均引用误差为0.68%,每张图片平均处理时间为1.28 s。在不同倾角条件下,平均引用误差较大,为1.01%,说明倾角对于指针式仪表精度影响较大。尽管透视变换能够减小倾角对读数精度的影响,但是仍然存在一定误差。总体而言,本文的指针式仪表识别方法在不同复杂条件下引用误差较低,读数准确性和稳定性较高,读取速度较快,为户外巡检机器人准确识别仪表读数提供了有效手段。
本文围绕户外巡检机器人指针式仪表识别方法开展研究,采用YOLOv5和改进PSPNet算法对指针和刻度线区域精确分割,随后根据透视变换、指针直线提取和角度法计算出仪表读数。实验结果表明:
(1)相较于其他方法,改进后PSPNet对于指针和刻度线边缘的分割更加细致,在仪表表面受到光斑影响、图像过曝光或过暗以及图像模糊等条件下,具有良好的鲁棒性;
(2)在4组不同户外条件下仪表样本读数实验中,本文提出的指针式仪表识别读数方法读数平均相对误差为1.28%,平均引用误差为0.68%,每张图片平均处理时间为1.28 s。读数准确性、稳定性较好,处理速度较快。本文算法对于户外环境下指针式仪表识别读数达到了较为理想的结果,接下来将继续针对下雨、雾霾天气下所引起的模糊仪表图像的复原等问题展开研究。