基于协同深度学习的二阶段绝缘子故障检测方法

2021-09-16 10:01王玉静王庆岩康守强Mikulovich
电工技术学报 2021年17期
关键词:锚点航拍绝缘子

王 卓 王玉静 王庆岩 康守强 V. I. Mikulovich

(1. 哈尔滨理工大学电气与电子工程学院 哈尔滨 150080 2. 白俄罗斯国立大学 明斯克 220030)

0 引言

绝缘子作为电力系统中关键的绝缘器件,在架空输电线路中起着机械支撑和防止电流回地的重要作用[1]。作为易出现故障器件之一,受灾害、温度、潮湿等自然因素的影响,绝缘子很容易出现爆缸、金属护具脱落等物理故障,直接威胁着整个电力系统的输电稳定性。

对绝缘器件的故障检测一直是巡检工作中的重要组成部分。放电检测法是较为成熟的一种检测手段。传统的放电检测法可以分为电检测法和非电量检测法。常见的电检测法有电压分布法、敏感电阻法、电场分布法等,虽然应用效果好,但需要登塔;非电量检测法主要以红外图像法和紫外图像法为发展方向,具有可远距离、大面积快速检测的优点,体现了绝缘子检测精确、高效的发展方向。放电检测法虽然技术成熟,但易受环境等诸多因素的影响,同时工作量巨大的定期断网巡检给人们的生活和工业生产带来了诸多不便[2]。

近年来,随着无人机技术和计算机技术的飞速发展,基于航拍图像的输电线路中关键电气设备的故障巡检方式,已经成为线路巡检的主要发展方向。目前国内外在电力设备检测方面的研究已经取得了一定的进展[3-4]。

在传统图像处理领域,文献[5]在划分绝缘子区域的基础上,计算各部分的方差和纹理信息,并加权求和,有效提高了对绝缘子单一故障的检测精度。文献[6]提出一种基于频率调谐的绝缘子识别与定位算法,通过三通道阈值分割与轮廓识别,实现了从复杂背景的巡检图像中准确识别、定位绝缘子。文献[7]提出一种基于Harris角点匹配与谱聚类的绝缘子故障检测方法,可有效改善伞裙交错情况对绝缘子轮廓提取的影响。文献[8]提出一种基于可见光图像颜色特征与支持向量机相结合的识别方法,为绝缘子污秽等级识别提供新思路。上述方法基本实现了绝缘子检测,但是传统的人工提取特征的方法存在局限性,且计算量大,检测的精度和速度远远达不到实际应用的要求[9]。

随着神经网络算法的发展,深度学习取得了突破性进展,由于其强大的表征和建模能力,使得在目标检测领域显现出了巨大优越性[10-11]。基于深度学习的目标检测算法可分为两类:基于区域建议和基于回归的算法。基于区域建议的标志性算法有R-CNN(region-convolutional neutral networks)[12]和Fast R-CNN[13],核心思想是先获得建议区域,然后在当前区域内进行分类,所以也称为two-stage目标检测算法[14]。文献[15]提出Faster R-CNN算法,为了减少选择性搜索的时间,使用区域建议网络来提取建议框,在提高检测精度的同时将检测时间减少到原来的1/10。文献[16]使用Faster RCNN算法进行输电线路检测,通过正则化优化模型结构以提高检测速度,对巡检图像的多目标检测获得了较高的精度和较快速度。基于区域建议的目标检测算法均需要独立训练两个复杂的网络,虽然检测准确率高,但是训练和测试速度仍然缓慢,无法满足实际应用要求。

为解决目标检测算法训练和检测速度缓慢的问题,基于回归的目标检测算法被提出,标志性算法有SSD(single shot multibox detection)算法[17]和YOLO(you only look once)算法[18],核心思想是用单一的卷积神经网络(Convolutional Neural Networks,CNN),直接基于整幅图像预测包围边框的位置及所属类性,也称为one-stage目标检测算法。文献[19]使用SSD算法,将超深度卷积神经网络(Visual Geometry Group, VGG)替换为MobileNets结构,并删掉池化层和全连接层,实现了红外图像下电力设备异常发热的快速检测。文献[20]提出YOLOv3算法,采用残差网络优化网络结构,最大程度地平衡了检测精度与速度,对COCO数据集检测的平均准确率(Mean AVERAGE Precision, MAP)值达到55.3%,检测时间为29ms。文献[21]将YOLOv3算法用于绝缘子串的定位与异常识别,用Focal Loss和均衡交叉熵函数改进损失函数,采用多阶段迁移学习策略训练网络,获得了91.8%的诊断精度。以上基于回归的目标检测算法虽然满足了实际应用中的速度要求,但是航拍图像中绝缘子背景复杂,受附近线路、杆塔等多因素干扰,导致模型对绝缘子故障区域的定位及检测精度受到影响。

为了排除航拍图像中线路、杆塔等复杂因素对故障区域定位准确性的干扰,提高模型的定位及检测精度,本文提出一种协同全卷积网络(Fully Convolutional Networks, FCN)与YOLOv3算法的二阶段绝缘子故障检测方法。第一阶段,利用FCN网络预处理图像,初步分割出滤除背景的绝缘子区域,排除图像中无关区域的干扰;第二阶段,建立基于YOLOv3算法的绝缘子故障检测模型,实现绝缘子故障的准确检测。采用K-means++聚类算法对数据集中的目标重新聚类分析,优化网络锚点框参数,进一步提高检测精度。

1 基于协同深度学习的二阶段绝缘子故障检测方法

本文提出一种基于协同深度学习的方法,即FCN和YOLOv3算法相协作,实现二阶段绝缘子故障检测的方法,其流程如图1所示。

图1 绝缘子故障检测方法流程Fig.1 Flow chart of insulator fault detection method

一阶段绝缘子数据集包含绝缘子无故障正样本和故障负样本;二阶段训练集2为滤除背景的绝缘子图像,测试/实际诊断数据为新获取的航拍绝缘子图像。

训练和测试的具体流程为:

(1)将训练集1输入VGG16特征提取网络,通过三次上采样得到原图相同尺寸的特征图,建立FCN权重模型。

(2)图像分割:将待分割图像输入到同一网络,调用FCN权重模型对一阶段测试集中的绝缘子图像进行分割,输出绝缘子分割结果。

(3)逻辑运算:将一阶段测试集图像与测试集分割图进行逻辑与运算,得到去除背景区域的绝缘子图像,逻辑运算示意图如图2所示。

图2 逻辑运算示意图Fig.2 Schematic diagram of logic operation

(4)将步骤(3)的输出作为训练集2输入到Darknet-53特征提取网络,采用级联的方式得到三种尺度的特征图,建立YOLOv3权重模型。

(5)故障检测:将测试/实际检测数据输入同一YOLOv3网络,调用YOLOv3权重模型对图像进行绝缘子故障检测,输出故障检测结果。

2 图像预处理

由于目前还没有绝缘子图像的公开数据集,为了验证本文绝缘子故障检测方法,自主建立了航拍绝缘子故障数据库。以无人机航拍的方式获取了大量绝缘子图像数据,并用labelimg工具对绝缘子故障进行人工标记,定义I-1为均压环脱落故障,I-2为玻璃绝缘子爆缸故障。

2.1 数据增强

由于绝缘子为非易损器件且电力部门发现后会及时维修,故障数据较难采集,导致完好的正样本与故障的负样本在数量上严重不均衡,实际拍摄包含四季中晴天、阴雨天等多条线路样本,且正样本数量远大于负样本数量,数据集见表1。

表1 航拍绝缘子数据集Tab.1 Aerial insulator data set

由表1可知,I-1和I-2故障负样本一共280张,完好正样本数量远超故障负样本数量,而某一类样本少会导致算法难以充分学习该类别的信息[22]。为了避免部分正样本图像重复拍摄及故障样本不足导致无法获取充足特征信息的问题,一方面删除了部分不可用正样本数据,从中筛选1 500张;另一方面对I-1和I-2故障负样本进行了数据增强处理,分别做亮度调整、旋转和翻转的形态学操作,模拟不同拍摄角度,不同光线等情形,增强后的故障负样本数量共计1 400张,I-1和I-2故障分别为935张、465张,进一步提高模型的泛化能力,数据增强结果如图3所示。

图3 数据增强Fig.3 Data enhancement

2.2 一阶段绝缘子分割的全卷积网络结构

航拍绝缘子图像中通常包含复杂的环境背景,为了避免背景区域对绝缘子故障检测的干扰,一阶段,训练一个FCN语义分割模型用于初步分割绝缘子。

FCN算法为了实现对图像像素级的分类,以CNN分类网络为基础,首先,通过五次卷积、池化操作提取特征,得到含有深层语义信息的特征图;然后,采用反卷积代替CNN最后的全连接层,对最后一个卷积层的特征图进行上采样,以恢复图像的尺寸,从而预测每一个像素,同时保留了输入图像的空间信息;最后,利用Softmax分类器获得各个像素点的二分类结果,实现像素级预测。绝缘子的分割流程如图4a所示。

图4 绝缘子图像分割的全卷积网络结构Fig.4 Full convolution network structure for insulator image segmentation

本文以VGG16为基础网络,C1~C5卷积层提取浅层图像特征,如边缘、纹理等,C6~C8卷积层提取深层语义特征,得到1/32尺寸的热图。直接32倍上采样得到FCN-32s模型,由于只使用了深层特征,无法充分利用浅层的空间位置信息,导致分割结果粗糙、分割边界不连续。为了解决上述问题,充分利用浅层图像信息,补充特征细节,本文设计了两种跳跃结构:①将C8特征2倍上采样和P4特征融合,对融合结果16倍上采样得到FCN-16s模型。②将以上所得2倍上采样和P3特征融合,对融合结果8倍上采样得到FCN-8s模型,跳跃结构如图4b所示。

图4 中C1和C2分别表示连续的两个卷积层,C3、C4、C5分别表示连续的三个卷积层,C6、C7、C8分别表示一个卷积层,P1、…、P5表示池化层,“2×”表示二倍上采样,H和W分别表示长和宽。

2.3 图像归一化

由于计算资源的限制,且航拍设备拍摄获得的图像样本尺寸不一,大大增加了绝缘子定位难度。根据图像短边长度,等比例对所有图像的分辨率统一归一化处理,调整为500×500大小。

3 YOLOv3算法

3.1 Darknet-53特征提取网络

第二阶段故障检测以YOLOv3算法为主体,其特征提取网络由Darknet-53修改所得,网络结构如图5所示。

图5 Darknet-53网络结构Fig.5 Darknet-53 network structure

相比二代算法采用的Darknet-19,网络深度大大加深,网络的表达能力加强,但这也产生了梯度消失、梯度爆炸和性能退化的问题,为解决以上问题,Darknet-53采用了以下措施:

(1)采用批量归一化(Batch Normalization, BN)和激活函数(LeakyReLU)。

(2)采用步长为2的卷积代替池化层进行降采样操作。

(3)借鉴残差网络ResNet的思想,使用5组重复的残差单元(Residual),在卷积层之间以跳跃连接的形式,将单元的输入与输出相加,构造一个恒等映射,防止信息丢失。

通过以上方式,解决了梯度消失、梯度爆炸和性能退化的问题。梯度BN还可以使训练更加稳定和加快网络收敛速度,其计算公式为

式中,x为BN输入;y为输出;γ和β为可学习参数。

为了有效提高网络的表达能力,该算法采用非饱和的LeakyReLU激活函数,当输入为负时,给其一个很小的坡度ai,可以减少静默单元的出现,使神经元保持学习,其计算公式为

3.2 YOLOv3损失函数

损失函数作为判定深度神经网络预测效果的重要参数之一,很大程度上决定模型的收敛效果,损失收敛越快、数值越小说明模型性能越好。YOLOv3采用误差的二次方和作为损失函数,整合了目标定位偏移量损失、目标置信度损失及目标分类损失,其计算公式为

3.3 二阶段YOLOv3算法的绝缘子故障检测方法

在一阶段得到去除背景的分割绝缘子图像的基础上,二阶段YOLOv3算法的故障检测网络结构如图6所示,输入RGB三通道图像,经Darknet-53特征提取网络,采用步长为2的卷积核进行5次下采样,分别在3~5次下采样后输出尺寸为52×52、26×26、13×13的特征图。为了充分利用特征信息,对于大小为13×13、26×26的特征图,执行2倍上采样,并借鉴特征金字塔的思想进行不同尺寸特征图的张量拼接,最终在三个尺度的特征图上独立执行回归预测目标类别与形状。

图6 YOLOv3算法网络结构Fig.6 YOLOv3 algorithmic network structure

在检测阶段,对于输入的航拍绝缘子图像,预测一个三维张量,包括目标、目标边界框和目标类别。YOLO层将特征图划分成S×S的网格(不同尺度的特征图,S值不同),为每个网格预测三个不同的边界框,并且张量大小可以表示为S×S×[3×(5+C)],5包含目标框的坐标信息(x,y,w,h)和置信度,C表示预测类别数,所以对于每个维度输出结果为S×S×[3×(5+2)],最终通过阈值设定及非极大值抑制,输出最高置信度的边界框。

3.4 锚点框参数优化

YOLO二代算法开始引入了Faster R-CNN中所使用的锚点框(anchor boxes)的思想,它是一组固定尺寸的候选框,往往根据训练集目标框尺寸事先设定。YOLOv3的默认锚点框参数是根据COCO数据集聚类得到的9个固定参数,不一定适合特定场景下的数据集。本文根据航拍绝缘子数据自身特点,设计出更适合绝缘子数据的锚点框参数,分别使用K-means和K-means++聚类算法对数据进行聚类分析,计算样本框与锚点框之间的平均交并比(avg IOU),以聚类值与样本真实值之间的平均损失为目标函数,目标函数值越小,表明结果越准确,其目标函数D为

式中,B为样本目标真实框;P为聚类中心;n为样本总数;k为聚类中心个数;nk为第k个聚类中心中样本的个数;IIOU(B,P)为目标真实框和中心框的交并比。分别在设备骤类中心个数值K=1~20间对航拍绝缘子数据聚类分析,目标函数D的变化曲线如图7所示。

由图7可以看出,随着K值的增加,两种聚类算法损失函数Loss值逐渐减小,且K-means++聚类算法相比K-means算法,Loss值更小。然而,锚点框数量的增加会大大降低网络计算速度,增加计算成本,且当K=9时曲线趋于平稳,故选取K=9时的聚类结果优化网络的锚点框参数。

图7 目标函数变化曲线Fig.7 Change curve of objective function

根据K-means++算法得到的9个锚点框参数,得到航拍绝缘子故障数据目标真实框和锚点框参数的分布如图8所示。

图8 目标真实框与锚点框的分布Fig.8 Distribution of target real box and anchor box

图8 中横纵坐标分别表示宽度和高度,“●”表示绝缘子目标真实框分布,“■”表示YOLOv3默认的9个锚点框分布,不能完全拟合真实的数据分布,“★”表示K-means++算法得到的锚点框分布。可以看出,“★”数据分布距离真实框分布更近,更能拟合真实的数据分布,进一步降低了锚点框与真实框的偏差。

4 结果与分析

4.1 实验环境

实验平台的硬件配备Inter(R) E5-2620 V4核心处理器,双Nvidia GeForce GTX 1080Ti显卡,32G内存。在Ubuntu 16.04操作系统、Darknet深度学习框架下进行实验。

4.2 FCN分割算法对绝缘子区域的分割精度对比

为验证跳跃结构对分割性能的提升效果,本文分别以FCN-32s、FCN-16s、FCN-8s模型对绝缘子数据集进行训练,得到针对绝缘子区域的分割模型,以像素准确率(PA)、平均像素准确率(MPA)、平均交并比(MIoU)和频权交并比(FWIoU),作为评价指标,评价模型性能,结果见表2。

表2 不同分割方法的性能对比Tab.2 Performance comparison of different segmentation methods

从表2可以看出,相比于FCN-32s方法,由于FCN-16s方法融合了浅层P4卷积特征,各项指标均有显著提高;相比于FCN-16s方法,本文使用的FCN-8s方法进一步融合了浅层P3卷积特征,其像素准确率、平均交并比、频权交并比分别为99.91%、96.73%、98.26%,三项参数均高于FCN-32s和FCN-16s方法,平均像素准确率略微下降,说明本文方法能有效提高分割性能。

各指标计算公式为

式中,pii为正确预测;pij为原本为i类被预测为j类;k+1为类别数。

4.3 YOLOv3模型训练

使用K-means++算法聚类绝缘子故障数据所得参数训练YOLOv3网络,网络的默认最大迭代次数为50 200次,学习率决定着权值更新的速度,过大会导致振荡,过小会使下降速度过慢,所以深度学习一般根据训练迭代次数设置动态变化的学习率,通常设置较大的初始学习率,使模型前期快速学习,到达一定迭代次数后,模型无法进一步收敛,此时应该降低学习率。本文在多次训练过程中,通过观察平均交并比的变化趋势,发现训练到20 000次附近时,曲线无法继续收敛,所以分别在迭代到20 000次和25 000次时,设置衰减学习率,进一步拟合。最终,平均交并比函数的变化趋势如图9所示,可以看出,随着迭代次数的增加,平均交并比逐渐增大,在30 000次迭代之后,比值在0.85处趋于稳定,达到理想训练效果。

图9 平均交并比曲线Fig.9 Average intersection ratio curve

4.4 绝缘子故障检测性能对比

为验证本文方法的有效性,分别从定性和定量两个方面对YOLOv3、F-YOLOv3和F-YOLOv3-K算法进行性能对比,将协同FCN和YOLOv3算法的模型命名为F-YOLOv3,同时结合K-means++算法优化锚点框参数的协同FCN和YOLOv3算法模型命名为F-YOLOv3-K。

4.4.1 定性对比

在实验1中,分别用YOLOv3、F-YOLOv3和F-YOLOv3-K算法对测试/实际检测数据集中的两类目标进行测试,分别记录检测的漏检与误检情况,以及对两类目标的检测置信度,绝缘子故障在4张图例的三种不同方法下的检测效果及其局部区域放大图如图10所示。图10中紫色矩形标签I-1表示均压环脱落故障,绿色矩形标签I-2表示玻璃绝缘子爆缸故障,红色菱形框表示漏检处,黄色圆形框表示误检处,蓝色线条表示正确检出。

由图10可以看出,检测位置分别以紫色与绿色框标记出I-1和I-2故障目标,并显示置信度,置信度结果对比见表3,表中,0表示漏检,×表示误检。

表3 置信度结果对比Tab.3 Comparison of confidence results

图10 三种方法绝缘子故障检测结果对比Fig.10 Comparison of three methods for insulator fault detection

由表3可以看出,原始YOLOv3算法在图1、图2中出现漏检情况,在图3、图4中出现误检情况。F-YOLOv3方法解决了图例中的漏检与误检情况,并大幅提升了检测置信度,本文最终提出的F-YOLOv3-K方法进一步提升了检测置信度。通过大量数据对比验证,该方法有效解决了漏检与误检问题,且检测的置信度有显著提升,为进一步验证所提方法的有效性,本文在定量方面补充了性能对比实验。

4.4.2 定量对比

为验证协同深度学习方法对单一模型检测性能的提升效果,本文使用FCN算法分别协同YOLOv3和YOLOv3的小型网络YOLOv3-tiny算法,对检测数据集进行测试。为了具有可比性,实验均采用相同的处理策略,使用平均交并比(IoU)、单类故障精度(AP)、平均精度(MAP)、召回率(Recall)作为评价指标,评价模型性能,结果见表4。

表4 评价指标对比Tab.4 Comparison of evaluation indexes

YOLOv3-tiny为YOLOv3算法的小型网络,协同FCN和YOLOv3-tiny算法的模型命名为FYOLOv3-t,协同FCN和YOLOv3算法的模型命名为F-YOLOv3,同时结合K-means++算法优化锚点框参数的协同FCN和YOLOv3算法模型命名为FYOLOv3-K。

从表4可以看出,相比YOLOv3的小型网络YOLOv3-tiny算法,由于YOLOv3算法特征提取网络更深,特征更加丰富,所以其检测精度及平均交并比均有所提高。与原始单一的YOLOv3-tiny3及YOLOv3模型相比,F-YOLOv3-t和F-YOLOv3采用协同FCN的方法,显著提升了模型的各项指标,说明该方法适用于绝缘子故障检测。F-YOLOv3-t比YOLOv3-tiny模型的MAP值高7%;F-YOLOv3比YOLOv3模型的MAP值高1.67%,但F-YOLOv3对I-1故障检测的AP值有下降。F-YOLOv3-K使用Kmeans++算法优化锚点框参数,进一步提升了IOU和MAP值,最终本文提出的F-YOLOV3-K方法的MAP值高达96.88%,其中I-2故障AP值为100%。

5 结论

本文提出了一种基于协同深度学习的二阶段绝缘子故障检测方法,实现了航拍图像绝缘子故障的端到端检测,通过对比实验分析,得到如下结论:

1)针对YOLOv3网络中受复杂地貌、杆塔等背景对检测准确率的干扰问题,一阶段,提出了一种基于FCN算法的绝缘子分割算法,有效完成了滤除背景的目的,并以跳跃结构构建了FCN-8s模型,提高了绝缘子分割的准确性和完整性,PA值高达99.91%。

2)根据航拍绝缘子故障目标尺寸特点,使用随机性更小的K-means++聚类算法对绝缘子数据集聚类分析,优化YOLOv3算法的初始锚点框参数,进一步提高了模型的定位及检测精度。

3)在自主建立的航拍绝缘子故障数据库上训练,构建协同FCN和YOLOv3算法的二阶段绝缘子故障检测模型,并结合K-means++优化锚点框参数。经实验对比,提出的F-YOLOV3-K方法相比原始YOLOv3算法有效降低了误检与漏检概率,所对比的各项评价指标均有显著提升,MAP值上升4.65%,达到96.88%。

本文方法仅能检测图像中绝缘子的可见故障与缺陷,下一步将深入研究对电弧烧伤、放电等不明显故障的检测方法,进一步提升模型性能。

猜你喜欢
锚点航拍绝缘子
基于NR覆盖的NSA锚点优选策略研究
5G手机无法在室分NSA站点驻留案例分析
5G NSA锚点的选择策略
航拍巴彦呼硕
5G NSA组网下锚点站的选择策略优化
航拍,苍穹下的醉美视角
难忘的航拍
《航拍中国》美得让人想哭
1000kV耐张绝缘子串单片绝缘子的带电更换技术
500kV绝缘子串含零值绝缘子时的电晕放电分析