基于YOLOv7的配电柜开关状态智能识别方法论文

2025-03-05 11:33:02 来源: 作者:xujingjing
摘要:
摘要:配电柜作为电力系统中的核心组成,其运行安全对电力系统的稳定有重要影响,从安全的角度出发需要实时掌握配电柜上每一个开关的状态。然而,使用人工检测设备开关状态的方法存在安全风险高、成本高、效率低等问题。针对配电柜开关状态检测的问题,基于Pytorch框架搭建了YOLOv7目标检测模型。此外,采集了实际配电柜开关状态视频,制作了配电柜开关状态数据集,用于训练和验证。由于配电柜开关较多,且存在一类多个相同形状的开关,为确保检测的准确性,在标注训练集的同时在图像上标记出一个定位框,用来根据开关与定位框的相对位置来区分相同的开关,以提高识别效果。进而,搭建了基于YOLOv7的配电柜开关检测模型。实验结果表明,所提出的方法能够有效识别配电柜开关状态,可以实现对配电柜开关的实时监测,有效降低维护成本,确保电力系统安全运行。
关键词:配电柜;开关状态;YOLOv7;目标检测与识别
0引言
随着电力系统的更新发展,电力设备的种类数量也日益增多,变得越来越复杂。在电力设备的日常运行中,难免会出现一系列故障或异常的工作状态。为了设备安全,需要对开关状态等进行实时检测,及时发现故障情况并加以应对。目前的主流检测方法仍然是依靠人工来对图像进行手动检测,但也存在一些不足,如:人工检测成本较高,效率比较低,很难在第一时间发现故障,可能会带来巨大的损失。除了人工检测外,也可以考虑对电力机房设备进行更新升级,使电力设备具有自诊断、自动报警等功能,来及时对异常状态进行监控警报,然而这一方案需要大量资金支持,且在更新升级时需要进行长时间的断电,势必影响人们的日常生产生活,故在短期内难以实现。
近年来,将机器视觉技术与自动化智能设备相结合,以确保电力系统安全运行的方法,在电气行业中得到了广泛应用,这一方法能够有效解决电力设备日益增长与巡检人员数量不足的矛盾,采用具有图像处理技术的智能机器代替人工完成繁琐的日常巡检维护任务,可以大幅提升效率、安全性和稳定性[1]。利用图像处理的远程巡查系统进行配电操作,可以提高电力系统的数字化水平,减轻了现场人工检测的负担,推进了电力系统维护向自动化和智能化的转变。
视频图像检测目前被认为是电力设备检测中最为直观且安全的方法之一。在我国大多数变电站都安装了视频监控系统用于采集图像数据,覆盖了绝大部分设备区域,但同时也带来了电力图像数据量的快速增长的问题。此外,尽管技术不断发展,当前目标检测技术对设备状态的检测能力仍十分有限,大量的视频内容最终仍需要进行人工的判断筛查,这种人工筛选的方式存在以下问题:视频保存期限有限,数据量较大,需要及时进行回放检查;设备异常状态的发现与观察者的工作状态和技术水平有很大关系,在一定程度上影响了检测的效率与准确率;长时间的视频观看可能导致注意力不集中的情况,进而出现设备状态的漏检、误检或故障发现不及时的情况[2]。
为解决配电柜中多个开关状态的识别问题,本文基于Pytorch框架搭建了YOLOv7目标检测模型,通过对视频图像的开关进行检测、识别与标注,并编写定位算法,实现了对同类开关的区分和不同开关的识别,能够在一定程度上解决上述人工监测过程中存在的问题。
1配电柜开关状态智能识别网络
YOLOv7[3]的运行速度和精度在5~160帧/s的范围内,超过了大部分的目标检测器[4]。但实际上,YOLOv7的预测方式与之前的YOLO系列十分相似,依然可以将其主体细分为3个部分,分别是主干网络(Backbone)、特征金字塔FPN(Feature Pyramid Network)以及检测头(Yolo Head)[5]。YOLOv7网络的整体工作流程为特征提取、特征加强、预测先验框对应的物体情况[6]。在YOLOv7中,通过神经网络与特征金字塔来进行一系列卷积、池化等操作,将输入图像转化为3个包含有宽、高和通道数信息的特征层。这些特征层可以看作是多个特征点的集合,每个特征点对应3个先验框,描述了先验框内目标特性和目标可能性。而检测头则起到一个分类与回归的作用,检测头会对每一个特征点上的先验框进行判断,验证这些先验框是否与图像中的实际目标相对应。通过检测头的处理,YOLOv7能够准确识别出图像中的目标,并提供关于目标类别和位置的信息。YOLOv7基于特征点和先验框的设计,使得其能够在保持高检测精度的同时实现快速检测。
1.1主干网络
主干网络是指YOLOv7的特征提取网络,它主要由多个卷积层、高效层聚合网络(Efficient LayerAggregationNetwork,ELAN)和MPConv(MaxPooling and Conv)等模块组成,用于提取图像特征[7-8]。主干网络在输入图像时通过卷积等操作提取出图像的主要特征,这些提取到的特征被称为特征层,它们实际上是了输入图片中各个区域不同比例和层次的特征集合。在主干部分,能够获得3个特征层作为特征金字塔和检测头的输入,用以进行下一步的网络构建,这3个特征层叫做有效特征层。YOLOv7所使用的主干网络有两个主要的特点。
(1)使用了多分支堆叠模块,在该模块中,最终堆叠模块由多个输入的分支模块合成,这种堆叠模块并不是简单的堆砌卷积层,其中每一个分支都有其特定的结构与功能,其中两个分支为一个卷积标准化模块和激活函数(Conv2D_ BN_ SiLU)构成,当输入(inputs)进入到这个堆叠模块后,这种简单的结构能够快速有效地提取输入数据的初步特征,为后续更为复杂的处理提供基础;右侧第二个分支是由3个卷积标准化模块构成的卷积标准化激活函数,能够进一步加深网络深度,同时,激活函数为网络引入了非线性,使得能够训练更为负责的模型;最右侧的分支则是由5个卷积标准化模块构成的卷积标准化激活函数,通过多次卷积标准化操作,提取出更加细致的特征。这4个分支在最后堆叠后会再次进行一个卷积标准化激活函数进行特征之间的整合[9]。
通过对不同尺度和层次的特征整合,能够提高检测的准确性与鲁棒性。多个相互连接的堆叠层构成了一个更加紧密高效的残差结构。其特点是使用了跳跃连接的方式[10],将输入信息直接传输到后续的层,从而有效缓解了由于速度增加时可能出现的梯度消失问题。这种连接机制使网络的优化变得更容易,并可以通过增加深度来进一步提高精度,由于残差结构跳跃连接的特性,即使在深度较大的网络,也能使网络更容易收敛到一个较优解,从而提升模型的性能。
(2)使用创新的过渡模块Transition_Block[11]来进行采样,随着网络深度的增加,梯度消失或爆炸的风险也在增加,与此同时,还会出现计算资源过度消耗的情况。为了避免这些问题,并有效控制网络的大小与特征图的分辨率,通常会引入过渡层来管理网络结构。首先进行一次步长为2×2的最大池化(MaxPool_ 2D),然后进行卷积标准化加激活函数(Conv2D_ BN_ SiLU)处理,右侧分支的处理流程略有不同,它需要先通过一个1×1的卷积标准化和激活函数,然后再进行步长为2×2的卷积标准化激活函数处理。通过这种方式,两侧分支均对输入特征层的维度进行了压缩,最后将这两个结果进行堆叠(Concat),并作为过渡模块的输出。
在卷积神经网络中,一种常见的过渡模块设计是包含一个卷积核大小为3×3、步长为2×2的卷积层,这种设计能够在保持一定感受野的同时,通过步长控制来减小特征图的尺寸。另一种常见的过渡模块则是直接采用步长为2×2的卷积层。由于步长的增加,降低了特征图的高度和宽度,减少了计算量,同时还减少了网络参数的数量,提高了网络的处理速度。这两个分支的结果会在最后输出时进行堆叠,在网络中起到了桥梁的作用,能够将不同尺度层次的特征图联系起来,且提高网络的计算效率。
1.2特征金字塔
特征金字塔是YOLOv7的加强特征提取网络,能够对多种尺度图像进行特征提取和融合,提高网络检测精度[12]。该结构对检测不同大小的目标很有帮助,但也有着可能会造成内存占用过大或推理时间增加的缺点。
在构建特征金字塔的过程中,会从主干网络的不同层提取出3个关键特征层,这些特征层包含不同尺度的特征信息,通过上采样和下采样操作,能够增加低分辨率的特征层大小,压缩高分辨率特征层的信息,从而将不同尺度形状的特征层进行融合,实现有效特征的多尺度融合,使得网络能够更好地利用不同分辨率的特征信息,不仅提高了目标检测的准确性,还增强了网络面对不同尺度目标的鲁棒性,实现更可靠的目标检测性能。
1.3检测头
构建完特征金字塔之后,需要将获得的3个特征层传递给YOLO Head进行处理。和YOLO系列之前的版本相比,YOLOv7在检测头的设计上创新性地引入了一个新的结构———RepConv结构。该结构在训练过程中引入残差结构,这个残差结构在实际的预测过程中,可以等效为一个为普通的3×3卷积,降低了网络复杂度的同时,减少了计算量,并且网络整体的预测性能并没有受到影响,保证了目标检测的精度和效率[13]。
在YOLOv7中,特征层的通道数是通过卷积操作来进行调整的,该调整是根据需要区分的种类数来确定的。通过调整特征层的通道数,可以确保每个特征点都具备足够的信息来预测与之对应的目标种类、位置和大小。
具体训练过程中,根据所选的训练集划分类别数。如果使用VOC训练集,YOLOv7会针对20种类别进行训练[14]。若使用COCO训练集,则类别数为80种[15]。根据特征层的尺度维度进行拆分,用于判断特征点是否包含物体以及所包含物体的种类。
1.4训练损失评估
训练过程第一步要计算损失函数(loss)所需的内容。损失函数作为一个关键的评估指标,在量化网络预测输出与真实数据间的差异方面起着关键作用。通过预测结果和标注数据之间对比分析计算损失函数,由Reg损失、Obj损失和Cls损失三部分组成。Reg损失评估网络对特征点回归参数的预测准确性。回归参数主要指的是预测框的中心坐标、宽度和高度等,它们是通过调整先验框(anchorboxes)来得到的,其计算公式如下:
式中:d为预测框和真实框中心点的距离;c为最小外接矩形的对角线距离;v为修正因子;α为权重参数;R IoU为预测框A和真实框B的交并比。R IoU计算公式为:
修正因子v的计算公式为:
式中:w G、h G和wP、h P分别为目标框和预测框的宽和高。Reg损失的目的是优化网络,使其预测边界框的位置尽可能接近真实的边界框位置。
Obj损失评估网络对每个特征点是否包含物体的判断准确性。每个特征点都有一个与之关联的置信度得分,这个得分表示该特征点处存在物体的可能性,其计算公式如下:
式中:p i,0为第i个预测框中的目标置信度分数;p i,IoU为第i个预测框和与之对应的目标框的IoU值。
Obj损失的目标是让网络能够准确地识别出哪些特征点对应着实际的目标物体。
Cls损失关注于特征点所包含的物体种类的预测。对于每个特征点,网络都会输出一个类别概率向量,表示该点处物体属于各个类别的可能性。Cls损失L Cls也使用二元交叉熵的方式计算得到,用y和p分别表示真实标签和预测值,N为样本数,则其计算公式为:
式中:yi为数据集中的第i个真实标签;p i为对应的预测值。
Cls损失的目标是使网络能够准确地识别出目标物体的类别。在训练目标检测网络时,网络会通过优化算法,根据损失函数的梯度信息来控制权重参数更新,减小预测结果与实际的差异,提高目标检测的准确性和效率。
将上述的Reg损失、Obj损失和Cls损失分别乘以权重0.05、0.1和0.125,然后进行相加,得到总损失L,计算公式如下:
实验环境与数据集制作本文的实验环境主要搭建在服务器工作站上,其主要配置如表1所示。
本文中实验图像数据均来自于人工拍摄的配电柜图片与配电柜视频,利用程序将视频剪辑为图片,通过人工筛选,挑选出合适的图片用labelimg程序标记制作数据集,将标记结果保存为YOLO格式的.txt文件,形成实验数据,基于Pytorch搭建目标检测平台进行训练。本文使用labelimg程序对图片进行标注,流程如下。
(1)使用cmd命令行来调取pytorch环境,使用pipinstall labelimg来安装软件,再通过命令行“active labe-limg”来调用。
(2)对筛选出来的图片数据进行标注,操作如下。首先,在classes文件中列好所需要的所有物体的标签;然后,点击“Open Dir”,打开图片数据文件夹;点击“Open Dir Save”,选择标注数据保存的文件夹;最后,标注格式选择YOLO格式进行标注,人工标注所有图片数据,并保存。
本文对给定数据集中的4种开关进行识别。由于第一个开关有4种组合状态,需要对4种组合状态均进行预测;为了后续对switch3中的14个开关进行细分,实验标记了一个cal框,框住所有的switch3,为后续的定位工作做准备;第5个和第6个开关相同,分别与周围特征物体一起标记。具体划分如表2所示。
本文选择对所有图片进行筛选,挑选出其中包含大部分开关,且角度相似(从正面拍摄)的图片。本实验使用水平翻转、随机旋转、随机裁剪的方法,得到数据集图像1460张。本数据集使用.txt版本的数据集进行测试,首先在yolov7-main文件夹下创建一个文件夹data-sets用于放数据集,再在datasets文件夹下创建images和labels两个文件夹,其中images用来存放图片,labels用来存放.txt格式的数据集。由于在train.py文件中数据集的来源就是coco.yaml文件,本文选择新建一个my_ co-co.yaml文件修改数据集来源,训练路径改为服务器上数据集所在路径,修改nc(类别个数)和names(类别名)。做好上述修改后,在与train.py同一层中创建split_ txt.py文件,该程序将数据集与标签文件按照8∶1∶1的比例随机划分为train(训练集)、val(验证集)、test(测试集),并保存在对应的文件夹之下。由于数据集图片较少,为提高检测精度,所以选择增加训练的轮次,将epochs设置为500进行多轮检测,batch_ size设置为8,img-size设置为[640,640]。
3实验结果及分析
YOLOv7训练结果保存在runs文件下的train文件夹中,该文件夹内主要是训练好的文件,有best.pt、last.pt、以及每25epoch保存一次模型和最后5个epoch的模型,后续的推理一般选用best.pt。F1分数,为查准率和召回率的调和平均数,其公式如下:
其中,R precision表示准确率,R recall表示召回率;TP(True Positive)表示正类预测为正类,正确预测;FN(False Negative)表示正类预测为负类,错误预测;FP(False Positive)表示负类预测为正类,错误预测;TN(True Negative)表示负类预测为负类,正确预测。置信度(Confidence)用于表示模型对检测到的目标的确信程度,是一个介于0和1之间的值。当置信度较高时,才会被判断为某一类别。置信度越大,检测的准确率越高,但也会造成一些置信度较低的图像的漏检。图1所示为图片标注情况,图2所示为随着置信度改变,各类别识别准确率变化。
由图可知,当置信度大于0.964时,各类别识别的准确率均达到1.0;将置信度设置为0.6以上时,各类别的平均识别准确率可达到0.9以上。在保存的训练文件中存有15列数字,其含义依次为:训练次数、GPU消耗、训练集边界框损失、训练集目标检测损失、训练集分类损失、训练集总损失、targets目标、输入图片大小、准确率、召回率、mAP .5、mAP .5:.95、验证集边界框损失、验证集目标检测损失、验证集分类损失。本次训练共给定了10种标签对开关状态进行学习预测,识别出第一个开关4种状态之一和标记框cal以及其他3种开关的开启状态(未识别即为关闭状态)。
检测结果如图3所示。从图中可以看出,训练后的模型可以检测出图像中的所有开关,且置信度都在0.9及以上,检测效果良好。
表3所示为对不同训练样本的检测结果验证评估。由表中检测结果可以看出,大部分的开关识别都比较准确,但是第一个开关4种状态的检测结果与标注结果并不完全相符。
仔细对比训练的数据集的情况后发现,用作数据集中的第一个开关的状态大部分是switch1-2(左侧开右侧关)而其中的switch1-4(两个开关均关闭)状态,在扩增前的数据集中,仅有一张图片作为数据支持,其余的switch1-1和switch1-3也只占全部数据集的小部分,而这一检测误差也可以从confusion_ matrix.png等图片中看出。因此,swithch1的识别准确率较低的主要原因是数据集的图片过少,以及对应的开关状态几乎没有,导致训练后的模型对这一开关的4种状态识别没有达到很好的效果
4结束语
针对配电柜开关的实时监测问题,本文设计了基于YOLOv7的开关状态识别系统,由目标状态识别算法、目标开关定位算法与GUI界面设计3部分组成。其中目标状态识别算法基于拍摄图像进行训练,开关定位算法根据开关与标记框之间相对位置进行定位,GUI界面基于pyqt5进行设计,实现使用检测功能的快捷方便。针对目标识别算法,采用视频抽帧,人工筛选的方式选出所需数据,使用labelimg进行标注,并通过数据扩增得到数据集。在训练时,调整训练参数以得到合适的训练权重。通过训练,模型在置信度设置为0.5时,对各类别检测的准确率平均值达到85.7%。最终对视频图像的检测结果显示,模型对开关的识别效果良好,可以0.9以上的置信度检测出大部分开关。通过该系统,可以实现对配电柜开关的实时监测,有效降低维护成本,确保电力系统安全运行。
[1]黄山,吴振升,任志刚,等.电力智能巡检机器人研究综述[J].电测与仪表,2020,57(2):26-38.
[2]郭步阳.试论人工智能技术在电力系统故障诊断中的应用[J].科技创新与应用,2015(34):206.
[3]宋吕明,刘明芹,李祥宾,等.改进YOLOv7的玻璃表面缺陷检测方法研究[J].机电工程技术,2024,53(6):209-215.
[4]郝博,谷继明,刘力维.基于ST-YOLOv7的无人机视角下行人及车辆识别[J].兵器装备工程学报,2024,45(3):293-298.
[5]戚玲珑,高建瓴.基于改进YOLOv7的小目标检测[J].计算机工程,2023,49(1):41-48.
[6]张子林,喻松林,王戈,等.基于改进YOLOv7的机载红外弱小目标检测算法[J].激光与红外,2024,54(1):84-91.
[7]陈泽世,钟小勇,李华耀,等.面向消防需求的火焰快速检测方法[J].机电工程技术,2024,53(4):95-99.
[8]童伟.一种改进的图像灰度匹配方法[J].铁路通信信号工程技术,2022,19(6):87-90.
[9]孙迟,刘晓文.基于YOLOv7-tiny改进的矿工安全帽检测[J].中国科技论文,2023,18(11):1250-1256.
[10]高路尧,胡长虹,肖树林.基于超像素分割的图注意力网络的高光谱图像分类[J].吉林大学学报(理学版),2024,62(2):357-368.
[11]崔旭.煤矿井下图像增强算法及探水杆检测算法研究[D].太原:太原科技大学,2023.
[12]冯丽丹,王闯,祁军,等.基于改进YOLOv7的管道缺陷检测技术研究[J].辽宁石油化工大学学报,2024,44(4):82-90.
[13]于翔,刘环宇,郝皓.基于深度学习的废旧动力蓄电池回收检测技术研究[J].机械管理开发,2024,39(2):271-273.
[14]孙立.基于ZYNQ的二维码识别系统设计与实现[D].南京:南京邮电大学,2023.
[15]韩文.基于深度学习的高分辨率遥感图像目标检测方法研究[D].南京:南京林业大学,2023.
