宋立业 刘 帅 王 凯 杨金丹
(1. 辽宁工程技术大学电气与控制工程学院 葫芦岛 125000 2. 国网辽宁省电力有限公司葫芦岛供电公司 葫芦岛 125000)
输电线路的安全稳定运行是电网可靠供电的重要保障,然而绝缘子、防震锤、均压环、屏蔽环的损坏[1-5]及附着在高压线塔上的鸟巢[6]严重危及线路安全运行。通过人工检测电网元件及缺陷的方式存在速度较低、精确度有限的缺点,因此利用计算机视觉中的目标检测算法实现无人机巡检图像的自动检测成为研究热点内容[7-8]。
目标检测算法主要包括单阶段目标检测和两阶段目标检测[9]。单阶段目标检测只需对图片处理一次就能获得目标分类和位置信息[10],检测速度较快但精度较低,代表算法有SSD(single shot multibox detector)[11]、YOLO(you only look once)[12]等。两阶段又称基于候选区域的检测方法,检测精度较高但速度较慢,代表算法有faster R-CNN(faster Region-based convolutional neutral network)[13]、SPPNet(spatial pyramid pooling networks)[14]、Mask-RCNN[15]等。
单阶段目标检测算法由于具有检测速度快的优势,在电力巡检中被广泛应用,文献[16-18]均利用Yolov3分别对绝缘子、鸟巢、防鸟刺等进行目标检测,其中文献[17-18]为了进行相应的缺陷定位,分别将直线段检测算法(Line Segment Detector, LSD)、二分类网络与YOLOv3(YOLO version 3)结合使用,模型较为复杂且无法做到实时缺陷定位。文献[19]利用双目摄像头和绿幕对绝缘子数据进行采集生成后,训练EfficientDet检测绝缘子破损等缺陷。文献[20]利用SSD目标检测网络对鸟巢进行识别后通过颜色空间(Hue Saturation Value, HSV)对子图像进行过滤,该方法用传统图像处理算法弥补SSD精度不足的问题,模型复杂。两阶段目标检测算法和传统图像处理方式也在电力巡检中有所应用,文献[21-22]均利用Faster-RCNN分别对均压环、绝缘子进行识别定位取得了较好的效果,但无法做到实时检测。文献[23]利用阈值分割和形态学处理对防震锤区域进行提取后对锈蚀区域进行识别,采取的传统图像处理方式精度较差,并会出现漏检情况。
总结以上方法,大都对单一元件及缺陷进行检测分析,在电力系统多元件应用环境下普适性较差;这些方法为了提高电力系统小目标检测精度或进一步进行缺陷定位,大都采用先进目标检测算法与传统算法或二分类算法相结合使用,模型较为复杂,难以同时满足速度和精度。在此研究背景下,亟需提出一种先进的元件识别及缺陷定位方法解决上述问题。
本文对EfficientDet目标检测算法进行改进,提高小目标的检测精度,利用不同的网络代数达到可伸缩的目标检测效果,在元件检测时降低代数以加速检测,在缺陷定位时增加代数以提高精度。此方法解决了现有的电力巡检模型中小目标识别精度低,检测的元件及缺陷类型较为单一,速度和精度无法同时满足的问题。
本文的原始数据集共1 468张,来源于国网某检修公司无人机巡检作业时拍摄的标准化照片。由于机器学习的训练中,数据集的质量对训练效果和检测效率有较大的影响,现有的原始数据集数量有限,直接用于训练得出的结果难以满足电力巡检的精度要求,所以本文利用Imgaug数据增强库[24]进行数据扩充,模拟实际巡检时拍摄模糊、噪声、天气恶劣等情况,提升训练模型抗干扰的鲁棒性。
在实际无人机巡线中,许多复杂的环境因素会引起各种图像破坏和干扰[25-26],本文总结出在电力巡检过程中可能出现的11种腐败类型,其中包括椒盐噪声、泊松噪声和高斯噪声三种噪声干扰;彩色加强、过度曝光、灰度拉伸和运动抖动四种拍摄干扰;以及雨、雪、雾和夜间四种天气干扰。由于原始数据不含以上11种腐败类型,为了提高模型抗干扰的鲁棒性,本文利用Imgaug数据增强库内的各类变换函数组合调用来实现11种腐败类型的模拟。
本文抽取一张无人机电力巡检航拍图片,变换得到11种腐败示例如图1所示。由图1可以看出,每种变换后的图像均能模拟出实际巡检时可能出现的特殊情况。
图1 数据腐败变换示例 Fig.1 Data corruption transformation example
本文对原始集进行数据增强后,筛选并删除不能用于训练的图像,共得到4 867张后原始+增强数据集,将图片按3:7的比例分为测试集和训练集,图片数量分别为1 460张和3 407张。此时,利用LabelImg进行数据分类标注:元件检测主要包括绝缘子(Insulator)、防震锤(Damper)、均压环(Grading_ring)、屏蔽环(Shielding_ring)和鸟巢(Bird_house)(鸟巢不依附于任何元件)。缺陷定位包括绝缘子缺陷(Insulator_defect)、防震锤缺陷(Damper_defect)、均压环缺陷(Grading_ring_defect)和屏蔽环缺陷(Shielding_ring_defect),得到标注框9 817个。为了尽可能地模拟真实的情况,验证模型训练的泛化能力,重新向某电网公司收集了378张元件及其缺陷的数据集作为真实集并进行标注,具体样本数量见表1。
为了验证该数据增强方法的效果,本文设计了对比实验:采用Faster-RCNN的不同主干网络(VGG16、ResNet101)对原始集1 468张、增强集3 399张、训练集3 407张分别进行训练并用测试集进行验证,得出各目标平均精度(Average Precision, AP)结果见表2,相比于原始集,增强集的各目标AP有所提升,证明了本文方法获取的增强数据的可用性;训练集的AP较原始集有显著提升,证明了该增强方法可优化深度学习训练。
表1 样本数量表 Tab.1 Sample size table
表2 不同数据集训练结果对比表 Tab.2 Comparison of training results of different data sets
针对现有的元件检测及缺陷定位模型较为复杂的问题,本文选用具有可伸缩性的EfficientDet,并对其加以改进,建立一种只用单一算法就能使精度与速度同时得以优化的电力巡检模型,解决了模型复杂问题,提高了检测效率。
Tan Mingxing等[27]此前提出了EfficientDet: Scalable and Efficient。该算法为EfficientNet[28]的扩展,从分类任务扩展到目标检测任务。可伸缩性表现在其设置了EfficientDet D0~D7八个不同的网络代数,随着代数增加,精度提高但速度降低。
EfficientDet目标检测算法由EfficientNet主干特征提取网络、不同层数的双向特征金字塔网络(Bidirectional Feature Pyramid Networks, BiFPN)加强特征提取网络和先验框分类与调整网络三部分组成。总体结构如图2所示。
图2 EfficientDet算法结构 Fig.2 EfficientDet algorithm structure diagram
为了验证无人机巡检中小目标检测任务较多,本文设置了如下计算:定义Wimg为原图宽度,Himg为原图高度;wele为标注的元件宽度,hele为标注的元件高度;wdef为标注的缺陷宽度,hdef为标注的缺陷高度。从而可列出相对尺寸占比公式为
式中,x为元件相对于整张图片的对比大小;y中的def单独指代鸟巢缺陷,故y为鸟巢缺陷相对于整张图片的对比大小;z中def单独指代元件缺陷,故z为缺陷相对于该元件的对比大小。在数据集中随机抽取500张图片,计算xavg、yavg、zavg(对比大小平均值)分别为0.292、0.043、0.141。
综上所述,元件检测及缺陷定位中小目标检测任务较多,再加之无人机航拍图像像素过大导致算力需求过高,如何改进网络以构建更适用于无人机巡检的EfficientDet成为本文研究的重点。
2.2.1 改进加强特征提取网络BiFPN
EfficientDet加强特征提取网络中的BiFPN结构主要用于充分融合不同分辨率的特征图,对比普通目标检测算法(Feature Pyramid Networks, FPN),BiFPN在以下方面提升了特征融合性能:使用跳跃连接以轻量化网络;添加注意力机制加权学习更关键的特征信息;设置上采样和下采样两条路径进行更充分的特征融合。
为了提高BiFPN的小目标检测能力,本文提出改进的BiFPN,与FPN、BiFPN结构对比如图3所示。改进BiFPN结构(图3c)的具体融合路径为:上采样时获得中间信息,以中间点P5-td为例:其加入的注意力机制融合了P6-td的上采样信息和P5本身的输入信息;下采样时获得输出信息,以输出点P4-out为例:其加入注意力机制地融合了P3-out的下采样信息、P4-td的中间信息、P5-td的小尺度信息和P4本身的输入信息;最后以此类推获取P3-out、P4-out、P5-out、P6-out、P7-out传入下一层改进BiFPN特征提取结构作为输入信息。
图3 三种特征提取结构对比 Fig.3 Comparison of three feature extraction structures
本文提出的改进BiFPN结构(图3c)在下采样特征融合时,融合上采样时小尺度一级的中间信 息,如图中虚线箭头所示。这种改进可以使网络更充分地学习小尺度信息,从而提高小目标检测的精确度。
2.2.2 改进主干特征提取网络EfficientNet
主干特征提取网络EfficientNet中的倒残差模块可以有效地复用数据流中的数据特征。Zhou Daquan等[29]提出MobileNeXt,其中的改进倒残差模块相比于EfficientNet的倒残差模块将高维度特征进行残差短连接,更能提高模型特征提取的精确度。
合理地利用注意力机制可以在训练中更高效地捕获关键信息。Hou Qibin等[30]提出一种坐标注意力机制(Coordinate Attention, CA),该机制在水平X方向和垂直Y方向上进行平均池化,对transform进行空间信息编码,把空间信息在通道上加权融合,结构如图4所示。相比于EfficientNet使用的挤压-激励(Squeeze and Excitation, SE)注意力机制,CA注意力机制不仅考虑到通道间的关系,而且考虑到X、Y两个维度的空间特征信息,优化模型训练,从而提高检测精度。
图4 CA注意力模块 Fig.4 CA attention module
本文利用一种施加CA注意力机制的改进倒残差模块提高主干特征提取网络的效率。图5为本文所用模块与传统残差模块、EfficientNet中的倒残差模块的结构对比图,箭头宽度表示通道的相对数量。
图5 三种残差模块对比 Fig.5 Comparison of three residual modules
图5a为传统残差模块,其经过1×1点卷积压缩通道后进行3×3普通卷积提取特征,最后通过1×1点卷积扩张通道,同时输入输出相加,形成“压缩—卷积—扩张”的数据流向,无注意力机制。图5b为EfficientNet中的倒残差模块,其先经过1×1点卷积通道扩张后进行3×3或5×5深度卷积提取特征,添加SE注意力机制,最后通过1×1点卷积压缩通道,同时输入输出相加,形成“扩张—卷积—压缩”的数据流向。
图5b所示的原网络倒残差模块中,残差连接的是点卷积压缩通道后的低维度特征,在此过程中可能会丢失一定的有用信息,导致结果不佳。为解决上述问题,本文利用一种施加CA注意力机制的改进倒残差模块如图5c所示,通过翻转倒残差的思想解决了上述问题。图5c相比于图5b,执行两次轻量化的深度卷积以编码更多空间信息如(红色)虚线箭头所示。图5c首先将高维度层进行3×3或5×5深度卷积提取特征,其次添加CA注意力机制,接着进行1×1通道压缩再进行1×1通道扩张,最后再进行一次3×3或5×5深度卷积,同时输入输出相加,形成“卷积—压缩—扩张—卷积”的数据流向。
式(4)、式(5)说明了改进倒残差模块可以在输出不变的情况下编码更多空间信息:设F∈RH×W×M为输入张量,G∈RH×W×M为输出张量,为了分析简单,这里假设输入、输出具有相同的通道数M和分辨率H×W,改进的倒残差模块输出为
原始EfficientNet倒残差模块输出为
式中,Φe与Φr分别表示通道扩张和压缩的逐点卷积。本文在Blockcore处提取的是调整大小和通道数后的 EfficientNet降维主干特征层,其与原始EfficientNet相比,特征层大小和通道数不变,但残差边短接的是高维通道的输入和输出,从而传递了更多F到G的信息。
在元件检测任务中,数据集中图像分辨率较高,所以本文在元件检测任务中卷积核大小(Kernel Size, KS)不变,加大步长,加速数据降维。具体网络结构参数见表3,其中Stage3/5/7及Stage7再进行两次下采样的特征层作为加强特征提取网络的输入。
表3 改进EfficientNet网络参数 Tab.3 Improving EfficientNet network parameters
2.2.3 改进EfficientDet在无人机巡检中的应用
将2.2.1和2.2.2小节改进部分与先验框分类调整网络结合在一起,组成更适用于无人机巡检的改进EfficientDet目标检测算法,将其应用于电网元件检测及缺陷定位的原理如图6所示。
图6 改进EfficientDet应用于电力巡检原理 Fig.6 Improved EfficientDet applied to power inspection principle diagram
为了使改进EfficientDet在元件检测及缺陷定位时实现速度和精度的同时优化与平衡,本文设计了如图7和图8所示的训练及预测流程,根据训练效果选择适用于元件检测及缺陷定位的网络代数。
图7 基于改进EfficientDet电力巡检训练流程 Fig.7 Flow chart of power patrol training based on improved EfficientDet
图8 基于改进EfficientDet电力巡检预测流程 Fig.8 Flow chart of power patrol prediction based on improved EfficientDet
本次实验采用PyTorch1.6.0作为深度学习框架,Ubuntu18.04系统、Python3.6、CUDA10.0、torchvision0.7.0、numpy1.16.4、OpenCV4.4.0,mmdetection工具箱。由于本次实验的算力需求急剧增加,故采用PyTorch实现四路GPU分布式训练。硬件配置见表4。
表4 硬件配置 Tab.4 Hardware configuration
第2节中设置了改进EfficientDet的训练流程(见图7),在训练中选定本文适用的网络代数,根据流程进行实验,元件检测要求精度设为0.85,缺陷定位要求精度设为0.87,起始训练的是改进的EfficientDet-D0网络,最终达到元件检测精度要求的网络代数为改进的EfficientDet-D3网络,达到缺陷定位精度要求的网络代数为改进的EfficientDet-D5网络,训练参数设置见表5。
表5 训练参数设置 Tab.5 Training parameter setting
在目标检测领域中,通常采用平均均值精度(mean Average Precision, mAP)和每秒帧率(Frames Per Second, FPS)来评价模型的准确率和检测速度。此外,本文引入模型大小和训练时间来更全面地对比各类模型的训练效果。
平均均值精度是所有类别检测结果的平均精度(AP)的均值,AP是查准率(Precision)和召回率(Recall)曲线下的面积,计算公式为
式中,TP(true positive)为正确判断目标类别的样本数量;FP(false positive)为将错误目标误判为正确目标的样本数量;FN(false negative)为将正确目标误判为错误目标的样本数量;TP+FP为模型检测的总目标数;TP+FN为真实目标的总数。以召回率为横坐标,每个召回率对应的查准率最大值为纵坐标,绘出Precision-Recall曲线,对曲线取积分求曲线下面积即为AP值。设类别数为C,i∈[1,C],平均均值精度mAP计算公式为
每秒帧率为1s内检测图片的帧数,用以反映模型的检测速度。模型的每秒帧率越高,越能满足工程应用中实时检测要求。
模型训练损失值与交并比(Intersection over Union,IoU)为0.5时mAP随训练轮次的变化曲线如图9所示。由图9可得,无论是用于元件检测的改进EfficientDet-D3网络还是用于缺陷定位的改进EfficientDet-D5网络,随着训练轮次的增加,模型的损失值不断减小,mAP不断提升,整个网络趋于收敛。此时,选定mAP最高时的训练权重作为最终的目标检测模型。
图9 损失值与mAP随训练轮次变化曲线 Fig.9 Curves of loss value and mAP with training epoch
为了更好地验证本文算法的泛化能力和真实实用性,利用上述权重进行真实集的元件检测和缺陷定位,部分检测结果如图10与图11所示。由图可见,本文提出的改进EfficientDet算法训练后不仅可以在背景简单和目标较大的情况下有效进行元件检测及缺陷定位,而且可以克服背景复杂、目标重叠、目标较小等问题,准确检测元件和定位缺陷。
图10 真实集部分元件检测测试结果 Fig.10 Test results of some components in real dataset
图11 真实集部分缺陷定位测试结果 Fig.11 Test results of some defect location in real dataset
元件检测后,读取检测结果中每个元件预测框的顶点坐标,根据不同像素点具体坐标切割出若干只包括单个元件的图片,再对这些图片进行缺陷定位。极大地减少了输入至缺陷定位模型的数据量,有效地提高了缺陷定位速度和精确度。测试结果如图12所示。
图12 切割后缺陷定位测试结果 Fig.12 Results of defect location after cutting
九种目标在不同检测阈值(IoU=0.5和IoU=0.75)下的精度测试结果见表6。在单类别方面进行分析,屏蔽环元件及绝缘子缺陷召回率及精度较高,由于训练目标较少,鸟巢及均压环缺陷的召回率及精度远小于其他目标;在平均均值精度方面进行分析,IoU=0.5时,mAP高达90.2%,有效证明本文提出方法可以精确地完成无人机电力巡检中元件检测和缺陷定位任务。
表6 九种目标测试精度结果 Tab.6 Results of five types of data validation
为了验证本文提出方法的优越性与普适性,更全面地评估此模型的性能,设计了算法对比实验。本实验使用了以下五种目标检测算法进行对比,分别为原始EfficientDet、faster R-CNN、YOLOv3、YOLOv4、SSD。为了保证对比公平性,均在同一搭建好的实验平台进行训练,并采用相同的训练集和测试集,为了进一步验证本文方法的泛化能力,除了在测试集上求mAP之外,另求出真实集上的mAP也作为对比指标。除了本文改进的EfficientDet算法之外,其他算法均有预训练模型,并在预训练模型基础上进行迁移学习训练。各模型在模型大小、训练时间、每秒帧率(FPS)、mAP(IoU=0.5)四项指标上的结果对比见表7。
表7 六种网络模型训练结果对比 Tab.7 Comparison of training results of six network models
由表7可得,本文所用的改进EfficientDet算法在总mAP上优越于其他目标检测网络,达到90.2%,可以满足电网中元件检测及缺陷定位的精度要求,证明了本文方法的适用性。相比于原始EfficientDet算法,总mAP提升了8.6%,验证了本文对算法改进的必要性。另外,在额外真实集上本文方法mAP可以达到88.4%,证明本文方法的泛化性和实用性。模型大小方面,无论是元件检测还是缺陷定位任务,均仅次于SSD目标检测网络,轻量化的网络更容易搭载至无人机嵌入式系统。在检测速度FPS方面,本文所用方法在元件检测中FPS可达到23.4f/s,缺陷定位中FPS可达到17.2f/s,虽然低于与之对比的YOLO系列算法及SSD算法,但是由于无人机巡检时飞行速度不高,本文方法也能够满足电力巡线中的速度需求。
综上所述,本文所提出的改进EfficientDet算法在电网元件检测及缺陷定位任务中的精确率较其他算法有明显优势,其余指标均能满足无人机电力巡检中的工业需求。
本文提出一种基于改进EfficientDet的电网元件及缺陷识别方法,构建了高压线路上典型的四种元件及五种缺陷的图像数据集,改进了EfficientDet中的加强特征提取网络BiFPN与主干特征提取网络EfficientNet,将数据集在改进网络中进行训练验证并与其他先进目标检测网络进行对比,可得出以下结论:
1)本文利用Imgaug数据增强方法构建的电网元件及缺陷多目标数据集可以优化深度学习训练。
2)本文的改进方法具有优越性,在元件检测及缺陷定位中改进网络mAP较原始网络mAP均有所提升,总mAP提升了8.6%。
3)改进EfficientDet在测试集上mAP达到90.2%,优于其他目标检测模型,同时元件检测及缺陷定位速度也能满足需求,证明了本文方法可以对元件进行有效检测,对缺陷进行定位,为未来电网建设中的巡检智能化带来一定的参考价值。