基于混合策略的指针式仪表刻度识别方法
2023-11-13徐红武赵海月樊玉平李雅芹
徐红武,赵海月,樊玉平,李雅芹
(国电南京自动化股份有限公司,南京 210031)
0 引言
随着电力系统变电站、发电厂等电力基础实施数字化、智能化改造的推进,一些具备通信协议的智能指针仪表已经被较好地接入了变电站和发电厂的监控系统中。然而仍然有一些指针仪表不具备软通信接口,在变电站、发电厂的日常运维中需要运维人员定期通过手动抄表的方式获取这些指针仪表的读数值。近年来,随着人工智能特别是深度学习技术的进步,基于人工智能的目标检测技术获得了空前的成功。基于深度学习的指针仪表识别技术已经被成功应用于变电站的指针仪表读数识别,该技术的运用减轻了运维人员的工作负担,提升了变电站的智能化水平。利用该技术可以比较准确地识别出指针仪表的表盘并且识别出指针仪表的指针位置,但是需要对特定的指针仪表进行大量的模型训练。由于该方法实现项目落地需要人工智能开发工程师事前进行大量的模型训练准备工作,项目实施的人力成本高,不易于在变电站和发电厂进行推广应用。
基于人工智能深度学习的目标检测算法可分为单阶段和两阶段两大类。两阶段目标检测算法主要有RCNN[1]、Fast RCNN[2]、Faster RCNN[3]、SPPNet等,该算法主要先生成候选框,然后对每个候选框进行分类回归,该算法运行时间较长,但检测精度较高。单阶段目标检测算法主要有YOLO[4]、SSD[5-7]等网络模型,该算法运行速度快,但检测精度稍差一些。文献[8]中采用Faster RCNN 实现了电力机房巡检机器人的指针式仪表识别。文献[9]所述的迁移学习技术提高了模型训练的效率,但实际应用中仍然需要对特定的指针仪表进行大量的模型训练。文献[10]对比分析了YOLOv4、Tiny-YOLOv4、Fast-RCNN 等目标检测算法,并采用Tiny-YOLOv4 网络进行指针仪表识别。
本文结合当前先进的YOLOv5 网络模型,将深度学习神经网络仅用于指针仪表盘的识别,预训练的网络模型具有通用性的特点,针对特定的现场环境,不需要对模型进行特定的再训练。基于神经网络的识别结果调整摄像机的焦距,从复杂环境中分割出指针仪表盘;在此基础上通过尺度不变特征转换算法(Scale Invariant Feature Transform,SIFT)将待检测图片与指针仪表盘模板图片进行匹配校准;采用霍夫变换算法识别出指针直线并计算出其倾角,最终通过指针刻度与指针倾角的关系计算出指针仪表读数。
1 算法总体设计
本文融合深度学习技术与尺度不变特征变换算法,充分发挥各算法的优势,达到无需针对具体环境进行模型再训练,只需在预训练模型的基础上即可准确识别出各种仪表表盘的目的。该算法能克服光照、视角变化等因素的影响,较准确地读出指针仪表盘的读数。采用深度学习技术,在仅进行预训练的情况下,就可以准确定位表盘,以适应不同形状、大小的表盘,无需根据现场的具体仪表盘进行模型的再训练,实现一次训练,多次应用的目的。采用SFIT 算法,可以在定位表盘的基础上,与指针仪表标准模板库进行比较,自动校准表盘方位和角度,并识别出表盘的指针,计算出指针的角度,最终计算出指针的刻度值。具体算法流程如图1所示。
图1 文中所提算法流程
2 基于YOLO网络的指针仪表盘检测
YOLO 网络主要由CSP-Darknet53、CSP-PAN、SPPF等网络模块组成,是一种端到端的单阶段深度学习卷积神经网络,该网络在保证目标检测精度的前提下具有运行速度快的特点。基于YOLO 的网络模型被广泛应用于目标快速检测领域,已经取得了较好的实际效果[11-15]。
2.1 YOLO网络模型
YOLO 深度学习网络是一种单阶段目标检测算法,其基本网络结构由Backbone主干网络、Neck网络、Head网络3 个部分组成。其中,Backbone 主干网络负责目标检测物体特征信息的提取;Neck 网络对特征信息进行多维度融合,提升检测网络的鲁棒性;Head 网络用来输出待检测的目标物体信息。本文在CSP-Darknet53 主干网络的C3网络单元中增加注意力机制,使其对指针仪表盘特征更敏感,有利于及时检测出指针仪表盘。改进后的CSP-Darknet53 网络具体由P1、P2、C3SE、C3’等模块组成。其中,P1 是一个通道为64,填充为2,步长为2,卷积核为6 的卷积层;P2 是一个通道为128,填充为1,步长为2,卷积核为3 的卷积层;P1、P2 主要作用是实现特征的初步提取,并将采样值调整到合适的通道大小及特征尺寸,为输入C3SE 模块准备好数据;C3SE、C3’是对特征信息进一步处理的主要模块,其主要区别为瓶颈层是否增加了输入端与输出端的直连相加操作并且是否具备通道注意力机制,C3SE网络的瓶颈层增加了输入端与输出端的直连相加操作,并具有通道注意力机制;而C3’网络的瓶颈层输入端与输出端不直接相连,且不具备通道注意力机制。Neck网络由SPPF空间金字塔池化网络、CSP-PAN网络组成。SPPF空间金字塔池化模块,将任意大小的特征图转换成固定大小的特征向量,实现局部特征和全局特征的融合;CSP-PAN 主要由C3’模块、上采样模块、卷积模块等构成,实现了对小目标、中目标、大目标物体的融合检测。具体网络结构如图2所示。
图2 网络结构
2.2 通道注意力模块
为提高卷积神经网络识别物体的能力,近年来注意力机制已经被越来越多地应用于计算机视觉领域。文献[16-17]通过在卷积神经网络中加入CBMA[18]注意力模块,获得了较好的识别效果。CBMA 注意力机制同时对通道注意力和空间注意力进行评分,模块结构稍显复杂。由于本文仅需要识别表盘,且识别物体一般都比较大,不会像吸烟检测这样检测很小的物体,采用更简洁的只关注通道注意力评分的SEnet[19]模块。
SEnet 注意力模块的网络结构如图3 所示,主要由压缩操作、激发操作、缩放操作等步骤构成。将SEnet 加在Backbone 主干网络中,用于学习通道间的相关性,筛选出针对通道的注意力。它通过对卷积后的特征图进行全局平均池化处理,得到一个和通道数一样的一维向量作为每个通道的评价分数,然后将该分数分别施加到对应的通道上。压缩操作如式(1)所示、激发操作如式(2)所示、缩放操作如式(3)所示。
图3 SEnet网络结构
式中:H、W分别为特征信息的高、宽;un为第n个通道的特征。
式中:Z为输入特定描述符;W为通道权重;δ为ReLU激活函数;σ为Sigmoid激活函数。
式中:U为所有通道的特征。
2.3 网络训练结果
本文分别对改进前和改进后的网络,采用大样本和小样本两种方法进行相同次数的训练。结果表明:在大样本情况下,未增加通道注意力机制的网络模型过早发生了过拟合情况,其验证对象损失函数过早出现了到达最低点后缓慢上升的情况;增加通道注意力机制的网络模型显示在同样的训练次数下,网络模型还未出现过拟合情况,其训练精度可随训练次数的增加而继续获得提升。大样本训练情况下,YOLOv5、YOLOv5-C3SE 对象损失函数训练结果如图4所示。
图4 网络训练结果
3 指针仪表读数识别
3.1 SIFT特征提取算法
本文选用SIFT[20]作为特征提取方法,SIFT 广泛应用于物体辨别、机器人地图感知与导航、影像拼接、3D 模型建立、手势识别、影像追踪等技术领域。该算法对旋转、尺度缩放、亮度变化保持不变性,对视角变化、噪声等也存在一定程度的稳定性;该算法信息量丰富,适用于在海量特征数据中进行快速、准确的特征匹配;该算法具有多量性特点,即使少数几个物体也可以产生大量的SIFT 特征向量。该方法首先构建高斯金字塔,以表示连续尺度空间。高斯金字塔由多组金字塔组成,每组金字塔的尺度不同,每组金字塔内有多层构成,每层的平滑程度不同。高斯金字塔的组数n与原图像分辨率(M,N)和顶层图像分辨率(Mt,Nt)有关:
根据高斯金字塔,进行高斯模糊,建立连续尺度空间L(x,y,σ):
式中:σ为尺度空间因子,是高斯正态分布的标准差,其值反映了图像被模糊的程度,其值越大图像越模糊,对应的尺度也就越大;I(x,y)为图形坐标(x,y)处的灰度值;G(x,y,σ)为高斯函数:
式中:(x0,y0)为高斯函数的中心点坐标,对于m×n尺度的二维模板,则x0=m∕2,y0=n∕2。
计算同一组中相邻层图形的高斯差分空间D(x,y,σ):
根据高斯差分空间D(x,y,σ)寻找极值点作为SIFT 特征提取算法的特征点,以该特征点为中心,计算区域内像素点的梯度向量幅度m(x,y)和方向θ(x,y):
在完成关键点的梯度计算后,通过幅值m(x,y)和相角θ(x,y)并使用梯度直方图统计邻域内像素的梯度和方向。获取128 维的关键点特征向量,对其进行归一化处理。设得到的描述子向量为H(h1,h2,…,h128),归一化的特征向量为L(l1,l2,…,l128),则归一化向量li:
得到归一化特征向量后,采用余弦相识度计算方法,与标准模板的特征向量进行比较:
式中:x、y为需要比对的特征向量
采用SIFT 特征提取算法,可以把现场摄像机拍摄到的任意角度、方位的仪表表盘图与表盘模板库中的标准表盘进行特征匹配,并根据标准表盘对摄像机拍摄到的角度、方位不正的表盘进行校准,方便进行表盘指针读数计算。图5 所示为目标检测算法检测分割出的表盘与表盘模板库中的标准表盘进行SIFT 特征点匹配的实验结果。由图可知,即便摄像机拍摄到的目标表盘方位、角度不对,但只要在表盘模板库中有该种表盘型号的标准模板,根据SIFT 算法,仍然可以将表盘的特征点识别出来,并对其进行正视校准。
图5 特征点匹配结果
3.2 基于霍夫变换提取指针直线
霍夫变换指明了笛卡尔坐标系中的一条直线,对应于霍夫空间中的一个点。为了便于描述垂直于X轴的直线,本文采用极坐标的形式来描述笛卡尔坐标系的直线:
式中:ρ为坐标原点垂直于直线的距离;θ为该距离与x轴的夹角。假设一个图像大小为m×n,则对这个m×n大小的图像的每个像素点,根据式(12)计算其0~180°的ρ,统计哪个θ下ρ值相同的数量最多,记录并寻找出(ρ,θ)值,代入式(12)即可找出指针所在的直线。由于现场摄像机拍摄到的图片质量参差不齐,实际应用霍夫变换原理提取指针的过程往往会出现如图6(a)所示的只能提取到指针的某一部分多段线段长度,并且指针两侧边缘都有可能提取到直线。遇到这种情况,为了提高可靠性,避免误判,一般选择提取到的线段多的那侧的线段构成的直线作为指针的指向。对于提取到的指针指向的线段可用L(x1,y1,x2,y2)表示,其中(x1,y1)表示线段的起点坐标值,(x2,y2)表示线段的终点坐标值。首先通过计算其斜率k=可以把指针边缘两侧的线段区分开,然后再通过比较线段数多的那侧的线段起始点的横坐标x值大小,可以取出x值最小和x值最大的坐标点,将找到的两个点作为拟合提取到的直线的两个端点,即可提取到比较完整的指针直线,如图6(b)所示。
图6 霍夫变换提取指针直线
3.3 指针仪表读数计算方法
指针仪表读数的计算方法,归根到底就是要计算指针的角度与表盘刻度的关系。文献[21]中利用差影法提取指针信息,根据指针倾斜角度与表盘刻度的关系计算出指针刻度值。本文把表盘分成4个象限,根据每个象限和指针刻度的关系,分别根据式(12)~(15)计算出指针的刻度值。
假设指针刻度范围为G,指针刻度范围对应的角度范围为θ0,以表盘中心点为圆点,把表盘与X轴相交的左刻度值x0作为配置参数供工程配置人员输入。
当识别的指针在第一象限时,指针表盘刻度计算方法为:
当识别的指针在第二象限时,指针表盘刻度计算方法为:
当识别出指针在第三象限时,指针表盘刻度计算方法为:
当识别的指针在第四象限时,指针表盘刻度计算方法为:
如图7所示指针仪表读数,程序检测出指针在第一象限,并且计算出其倾角为为35°,则根据式(12),指针刻度为4.3。
4 实验结果与分析
本课题研究的硬件环境:联想电脑QiTianM530-A051,无GPU,主机主频3.6 GHz,内存24 GB;软件环境:Windows 64位操作系统,Python版本为3.7.13。
4.1 实验情况说明
为验证注意力机制对YOLOv5网络的影响,准备了大样本和小样本两套数据。大样本训练集6 000张图片,验证集500张图片。小样本训练集800张图片,验证集40张图片。大小样本均采用LabelImg软件对检测目标进行标注。实验结果表明经过大样本数据训练后获得的预训练模型,对指针式仪表的表盘的识别具有普遍的适应性,可以准确地定位出指针式仪表的表盘,在不需要识别指针式仪表指针位置的情况下,无需针对特定场合对模型进行再训练。
4.2 仪表盘检测灵敏度对比
实验结果表明在图片质量较好的情况下,采用传统的OpenCV 方法和采用基于深度学习技术的卷积神经网络的方法均能准确地识别出指针式仪表的表盘。在图片质量不好和有遮挡的情况下,采用深度学习神经网络的方法比传统的OpenCV 方法更容易检测出指针仪表的表盘。在图片清晰、有遮挡情况下,分别利用传统方法和基于深度学习技术的方法识别表盘结果如图8~9所示。
图7 指针仪表读数
图8 图片清晰情况下识别表盘
图9 有遮挡情况下识别表盘
4.3 推理时间对比
增加注意力机制后,YOLOv5-C3SE 的推理时间为1.181 4 s,比没有增加注意力机制的YOLOV5 推理时间1.432 7 s更短,单张图片的推理时间可以节约251.3 ms。
4.4 指针刻度读数识别精度统计
针对本文中的指针仪表刻度识别方法,进行10 余种型号指针表盘指针读数识别实验,结果如表1 所示,读数平均精度约0.93,基本符合发电厂对指针仪表读数图像识别精度的要求。
表1 检测结果
本文融合了传统的图像分析方法和人工智能深度学习技术,既发挥了人工智能深度学习技术识别表盘更灵敏的优点,又采用传统的方法来识别仪表的指针,使得算法的适应性获得了显著的提升。但本文中采用的SIFT算法在图片质量不好的情况下存在待测图片与指针仪表标准模板库中的图片匹配不成功的情况,后期将继续进行相关研究,提升模型匹配效果。
5 结束语
针对近年来广泛采用深度学习技术进行指针式仪表刻度识别需要对每个项目单独进行模型的再训练,项目的工程实施成本高,不易于大批量推广应用的问题,提出了基于混合策略的指针式仪表刻度识别方法。该算法仅采用深度学习技术识别指针式仪表的表盘,在检测出指针式仪表表盘后采用尺度不变特征转换和霍夫变换算法来识别指针式仪表的指针。算法在精度上可以满足发电厂的实际使用需要,且在卷积神经网络仅进行预训练的基础上,就可以准确识别出仪表的表盘,无需针对具体的项目再进行卷积神经网络模型的再训练,克服了每个工程现场需要进行特定模型训练和部署的麻烦,简化了深度学习卷积神经网络模型训练,该方法具有普遍通用性,提高了项目的工程化水平。