韩睿,戴哲仁,蒋鹏,李晨,姜雄伟
(1.国网浙江省电力有限公司电力科学研究院,杭州 310014;2.国网浙江省电力有限公司,杭州 310007)
随着国家经济水平日益提高,居民及生产的用电需求日益加大,电网设备数量增多,电网安全稳定运行的重要性日渐凸显。为保障电网的可靠运行,电网的巡检技术已从传统人工巡检过渡到以视频图像数据为媒介的自动化巡检,提升了电网巡检的自动化、信息化水平[1]。为提升多场景、多类别的电力缺陷检测的综合性能,基于视频图像分析的深度学习目标检测算法获得了越来越广泛的关注[2]。文献[3-4]在双阶段目标检测网络Faster R-CNN(改进的快速区域卷积神经网络)的基础上,实现了无人值守变电站视频监控系统对动态小尺寸入侵目标体的识别与定位。文献[5-7]通过改进单阶段目标检测网络YOLOv3,实现了绝缘子异物检测。
随着基于视频图像检测的智能巡检技术推广,数据的采集与处理迎来了新的挑战。现行的巡检系统多采用集中式数据处理,先将各采集点数据回传至数据中心,随后再统一进行数据处理与分析。随着数据采集装置时空分布更加分散,部分采集装置可能存在数据传输信号弱,回传速度慢甚至丢失回传数据的情形;面对山火等突发式缺陷场景可能引起漏检,错过最佳处理时机。此外,由于数据流量增大,数据采集点流量费用增加,提高了总的运行成本。文献[8-12]指出,电力设备与控制中心、电力用户与电力企业间的数据流大量增加,亟需在边缘侧架设边缘终端设备对源头数据进行实时处理。文献[13-14]指出,部分电力缺陷需要快速做出响应,而传统的检测手段在实时性上有所不足,需要开发一种实时性、轻量化的检测模型。
现有检测模型依据物体定位与物体分类,可以分为双阶段(two-stage)检测模型与单阶段(one-stage)检测模型。相较于双阶段模型,单阶段模型具有轻量化、实时性等特点,但在检测精度上不如双阶段模型,典型代表为YOLO 系列模型。本文选择YOLOv8 作为检测模型,以实现轻量化、实时性的电力缺陷检测,并通过一系列改进措施提升其检测精度。此外,当前电力领域缺陷检测网络[9,15-17]主要聚焦于单个缺陷,缺少一种通用的缺陷检测模型。这种定制化开发不适用于模型的通用化部署,增加了前期投入成本与后期维护成本。为此,本文在第1章通过算法和模块对YOLOv8 做了多种改进,以提升其在电力场景的检测精度;第2 章在14 个电力缺陷场景下对改进YOLOv8 进行测试与验证,取得了不错的实验效果。
目标检测任务的模型效果与训练阶段的数据集规模、分布、图像质量有关。数据集分布涵盖了数据集类别的分布、待检测物体大小的分布以及数据集图像场景的分布多个维度。其中,数据集图像场景包括天气环境、摄像机清晰度、背景环境多个影响因素。如果数据集图像场景较为单一,则会降低模型的泛化性能,对于来自数据集外场景的测试数据效果较差。同时,如果丰富数据集图像场景,则会对模型的识别精度有所提升。电力缺陷数据集包含多种类别的缺陷数据,不同类别缺陷所处环境具有一定差异。然而,现有的缺陷图像数据集往往在同一缺陷类别上的图像场景分布较为单一,降低了模型的性能,并且不利于模型的泛化,因此无法满足实际电力安全生产的需求。本章提出一种适用于电力场景的改进型Mosaic 算法,来丰富数据集中同一类别的场景,以提升模型的精度以及泛化性能。
Mosaic 算法最早在YOLOv4[18]中提出,用于通用场景下的目标检测数据集增强。其主要思想是先将4张来自多种类别的图像进行随机裁剪、随机翻转、随机缩放、随机色调变换等前置数据预处理,再对处理后的图像数据进行随机拼合,得到一张新的数据集图像,如图1虚线路径所示。新的数据集图像包含了多个类别的待检测对象,同时对于其中一个检测对象而言,其检测场景融合了多个场景的特征,因而变得更加复杂多样。Mosaic算法除了提升场景的多样性外,还为数据集提供了更多的小目标物体,解决了目标检测任务固有的对小目标识别能力差的问题,在原始任务中对模型的性能有所提升。
图1 改进型Mosaic数据增强算法示意图Fig.1 Schematic diagram of the improved Mosaic data augmentation algorithm
然而,电力场景的缺陷识别与通用场景下的物体识别存在不同,部分类别对于随机裁剪、随机色调变换较为敏感。如图1右上所示,在绝缘子破损的缺陷识别中,如果破损位置被裁剪掉,那么从外观上看是有遮挡的绝缘子,无法判别是否有破损,不应当被识别。相应检测框从正样本变为负样本,引起数据标注错误。又如图1 左下所示,呼吸器硅胶变色缺陷,往往通过硅胶筒的颜色来判断是否出现异常。如果对图像使用随机色调变换,则颜色特征不再对模型的识别起效,从而大大降低了模型的识别能力。
为保留Mosaic 数据增强算法在目标检测任务上的各项优势,同时不破坏电力场景数据集的图像特征,本文对Mosaic 算法进行了改进。考虑提升数据多样性对模型训练的价值,本文不再限定只取4张图像进行合成,而是从多个类别中随机选取2~6 张图进行组合。本文定义产生负面影响的变换与相应类别构成一组冲突关系,例如随机裁剪与绝缘子破损为一组。通过分析所有缺陷类别与图像变换的关系,整理出冲突关系表,在代码中通过字典进行表达,其中部分冲突关系见表1。依据冲突关系表,对各类别数据选取合适的前置数据处理,以保留图像的关键信息。最后,随机打乱图像次序,进行图像拼合,如图1 右下所示。改进保留了Mosaic 数据增强算法的优势,同时也使其更适应电力场景的缺陷检测,从而提升轻量化检测模型的精度。
表1 冲突关系(部分)Table 1 Conflict relationships(part)
Bottleneck模块是当前轻量化网络中的常用模块,最早在ResNet[19]中提出。Bottleneck模块具有多个变种,YOLOv8中的Bottleneck结构见图2(a)。Bottleneck 模块将输入先经过一个卷积核大小为3的卷积层,压缩特征维度;再通过一个卷积核大小为3的卷积层恢复特征维度,最后使用残差连接得到完整输出。Bottleneck模块主要功能是减少模型的复杂性和计算负担,同时保持或提高模型的性能。
图2 Bottleneck模块与Res2Net模块对比Fig.2 Comparison between the Bottleneck module and the Res2Net module
为进一步提升模型对电力场景下多尺度特征的识别能力,本文使用Res2Net模块[20]代 替Bottleneck模块,在增加多尺度信息的同时保持模型的轻量化与推理速度。Res2Net的具体结构见图2(b)。输入首先通过卷积核为1的卷积层,随后将特征分成4 部分,分别为x1、x2、x3、x4。其中x1不经过卷积直接获得y1;x2经过一次卷积层后获得y2;同时将x2卷积后的特征与x3合并后再经过卷积层获得y3;类似的,x3 经过卷积层的特征与x4合并后,再经过一次卷积层得到y4。从总体来看,y1、y2、y3、y4 可以视作输入的部分特征分别经过卷积核为1、3、5、7 的卷积层,从而拥有多尺度感受野;进一步提升了轻量化模型的检测精度以及在多尺度目标上的泛化能力。
目标检测模型会根据输入图像输出一系列候选框,具体包括候选框的坐标以及候选框的置信度大小。然而,这些候选框会出现交叉、重叠现象,即一个物体可能会被多个检测框识别,需要算法对候选框进行去重。NMS(非极大值抑制)算法[21]是一种常见的检测框聚类去重算法。该算法首先按照置信度大小对候选框排序,将置信度最高的框b1作为初始选定的框;随后计算置信度第二高的框b2与b1的IoU(重叠度)值,将两个候选框相交面积S1除以两个候选框并集面积S2,得:
其中S1,S2参数可视化见图3。如果IoU值大于设定阈值(一般取0.5)则保留,否则舍弃。后续框依次与前过程中保留的候选框计算IoU 值,同样依据是否达到阈值来决定保留与舍弃,最终实现去重。
图3 IoU与CIoU参数可视化Fig.3 IoU and CIoU parameter visualization
然而,利用IoU值作为NMS算法的去重依据具有多种弊端。这是因为IoU 只考虑了候选框的形状重叠程度,而未考虑候选框之间的距离。意味着即使两个候选框之间的重叠面积较小,但如果它们之间的距离很近,可能会表示为两个不同的目标。传统基于IoU的NMS算法会将其中一个目标框剔除,导致召回率下降。此外,基于IoU的NMS 算法在处理高密度目标时容易出现问题。当多个目标框密集堆叠在一起时,它们之间的重叠面积可能非常大,导致基于IoU的传统NMS算法无法准确区分目标框,从而选择性地保留其中一部分目标框,而其他目标框则被抑制。这也会导致召回率下降。而对于电力场景的识别任务,召回率是一个相当重要的评价指标,关系到缺陷设备与隐患的漏检比例,与电力的安全生产及稳定运行有重要关联。
CIoU[22]最早用于检测任务训练阶段的损失函数,代替传统基于IoU 的损失函数,综合考量了目标框的尺寸、距离、重叠面积,提升目标框的定位精度。基于此,本节使用CIoU代替IoU作为NMS 算法的计算依据。假设待计算CIoU 值的候选框分别为b1和b2,令d为b1、b2中心点之间的欧式距离,c为b1、b2最小外接矩形的对角线长度,w1、w2分别为b1、b2的宽度,h1、h2分别为b1、b2的高度。相关参数可视化见图3。则b1、b2的CIoU计算公式如下:
其中,CIoU 通过引入参数v,进一步解决了IoU对候选框的长宽不敏感的问题;α为惩罚系数,决定了v在多大程度上影响CIoU的值。CIoU提升了检测模型在聚类去重阶段的召回率与精度,进而提升了轻量化模型的综合性能。
YOLO系列模型作为单阶段检测模型的代表,具有参数规模小,检测速度快、泛化性好等优点。本文模型整体框架参考YOLOv8中的YOLOv8m,并根据1.1—1.3 节对其进行改进,在保留YOLOv8轻量化、实时性等优点的同时,进一步提升了模型在电力场景下的检测精度与召回率,使其更符合电力生产的实际需求。模型在训练阶段的结构如图4所示。输入的图像数据首先经过数据增强,随后送入特征提取网络提取多尺度特征;提取的多尺度特征通过上采样、拼接融合多尺度特征,随后进入C2f网络,进一步增强模型对不同大小物体的识别能力。随后特征经过几次卷积层,获得分类和定位的损失值,完成一次训练过程,经过多轮训练后得到最终模型。
图4 模型整体结构Fig.4 The overall structure of the model
本文从变电站采集了14 种类别的缺陷数据,并对数据进行去重、筛选等工作,随后进行人工打标。每类缺陷数据按照7∶3随机划分为训练集与测试集,再将各类别的训练集、测试集数据分别进行合并。最终得到了图片总量为50 177 张的实验数据集。实验数据集中各类别的名称、训练集与测试集样本数量如表2所示。部分数据具有多类别的缺陷,例如呼吸器硅胶筒破损与呼吸器油封异常可能出现在同一图像中,因此在表2中会被重复统计;但实际在划分训练集与测试集时仍会视为同一个训练样本。从数据分布角度看,各类别数据集均在2 000~5 000张内,训练与测试的数据充分,且数据分布较为均匀,避免了样本不足以及数据长尾的问题。
表2 实验数据集配置Table 2 Experimental dataset configuration
训练使用的软硬件中:GPU 为8 张NVIDIA RTX3090,CPU 为Intel(R)Xeon(R)Gold 6242R,系统环境为Ubuntu16.04,深度学习框架为Pytorch。模型训练优化器采用SGD(随机梯度下降),初始学习率为0.01,动量值为0.94,权值衰减为0.000 5,采用线性的学习率策略,batch(批)设为128,EMA(指数移动平均)衰减设为0.999。从训练epoch(轮次)分别为50,100,150,200 的模型中选择在测试集上表现最优的一个作为结果。
2.2.1 评价指标
目标检测通常用AP(平均精度)去衡量模型在某个类别上的检测效果,并对各类别的AP值做平均,得到模型在多类别场景下的性能指标mAP。AP综合考量了precision(准确率)和recall(召回率)这两个指标,反映了模型在漏检与误检方面的性能。AP计算时,根据模型输出检测框与真实框的IoU值是否达到设定阈值,将检测框判定为预测正确或错误。因此根据阈值的不同,AP也分为好几种不同的小类,例如AP50,AP75,AP@0.5∶0.95。其中AP50 和AP75 分别代表IoU 阈值设置为50%和75%,而AP@0.5∶0.95 代表以IoU 从50%到95%的阈值范围内每隔5%计算一次AP,最后取平均值得到最终AP 值。因而AP 指标本身反映了模型漏检与误检方面的数值,不同的AP指标对于检测框的定位精度提出了不同的要求。
对于实际电力场景下的缺陷检测任务,相比过高的检测框精度,漏检率和误检率更具有价值。这是因为检测算法主要用于缺陷的判别,后续缺陷处理主要基于人工手段,而AP50对于人工而言已经足以定位缺陷位置。因此本文选取AP50作为评价标准,并相应地选择各类别的AP50 平均值mAP50作为模型在多类别时的评价指标。
2.2.2 缺陷检测结果
考虑电力场景的实际需求,本文选取平均精度AP50 作为模型的评价指标。利用改进的YOLOv8 模型在14 个场景下进行了实验。为更好比较本文改进模型的检测效果,本文分别选取了在速度上占优的YOLO 系列模型YOLOv8,以及在精度上占优的Mask R-CNN[23]作为基准,并用相同数据集、相同设备进行训练和测试。各缺陷类别的实验结果对比如图5所示。可以看出本文改进的YOLOv8模型在所有14个场景上均比YOLOv8模型和Mask R-CNN 有更好的检测精度,并在9个场景上取得了超过90%的检测精度。仅在挂空悬浮物、金属锈蚀、山火3个场景上检测精度低于80%,主要原因是这些场景数据较难标注,训练效果不佳;且金属锈蚀类本身与环境区分度小,检测难度大。尽管如此,本文提出的模型在这3个场景下较原有方法均有显著提升。
图5 改进YOLOv8与YOLOv8、Mask R-CNN在14个场景下的实验结果对比Fig.5 Comparison of experimental results using the improved YOLOv8,YOLOv8,and Mask R-CNN in 14 scenarios
为进一步比较电力缺陷场景下本文改进的YOLOv8 模型与现有模型在参数量、推理速度等指标上的优劣,本文在相同的硬件设施上对这些模型的指标进行考察,结果如表3 所示。改进型YOLOv8 在YOLOv8 基础上简化了参数量,提升了速度,并在mAP50上仍有所提升,可见本文提出的改进YOLOv8 模型在现有模型中具有速度和参数量上的优势。进一步证明了本文模型在14 个电力场景下均提升了模型精度的同时,仍保留了单阶段模型轻量化、实时性的特性。
表3 改进YOLOv8在电力缺陷场景下与YOLOv8,Mask R-CNN指标对比结果Table 3 Comparison of indices using the improved YOLOv8,YOLOv8,and Mask R-CNN in power defect scenarios
2.2.3 消融实验
为验证本文引入的改进Mosaic算法、Res2Net模块、CIoU-NMS 算法的有效性,进行多组消融实验。首先将Mosaic 数据增强算法、IoU-NMS的YOLOv8 作为基准;然后在基准上仅替换Mosaic 数据增强算法为本文算法以验证改进Mosaic数据增强对模型的影响;接着在基准上仅改变NMS的计算依据为CIoU以验证CIoU对模型的影响。最后验证上述多种改进一起加入对模型的提升作用。实验结果如表4所示。
表4 消融实验结果Table 4 Ablation Experiment Results
由表4可见,在电力场景下本文提出的各项改进方法均对模型有一定提升。其中,改进Mosaic算法和CIoU-NMS算法对模型的精度提升最为显著,验证了本文提出的各项改进方法的有效性。
本文对适用于通用场景下的YOLOv8 模型进行若干改进,在保留其轻量化、实时性的同时,提升其在电力场景下的检测精度。利用冲突关系表来改善Mosaic 数据增强算法在电力数据上的局限性,使用Res2Net 模块优化了YOLOv8 模型的轻量化与多尺度特性,结合CIoU NMS 进一步提升了YOLOv8 模型的检测精度。通过实验验证了改进后的YOLOv8 模型仍具有轻量化、实时性等特点,同时在14 个缺陷场景下具有更高的检测精度,对电力安全生产具有重要意义。长远来看,本文为基于边缘计算等分布式、轻量化技术的电力智能检测系统提供了理论模型,为保障电力领域安全生产提供了新的思路。