基于改进YOLOv5的绝缘子掉串缺陷识别研究

2023-09-04 14:54乔钰彬肖云波
计算机仿真 2023年7期
关键词:池化绝缘子精度

乔钰彬,范 菁,张 宜,肖云波

(云南民族大学电气信息工程学院,云南 昆明 650531)

1 引言

根据国家各地区能源需求量不同,国家提出了“西电东送、南北互供、全国联网”的三大策略。输电线路在策略中占据极其重要的位置。由于输电线路所处环境复杂,长期裸露在户外,且对于高压输电线路距离长[1]、易受恶劣天气的影响。因此,定期的电力巡检对电网的安全稳定性十分重要。目前巡检的方式有人工巡检[2]、直升机或者无人机巡检[3],其中无人机在电力巡检中已成为主流。无人机巡检时拍摄到的图片数量较大,通过人为筛选巡检图像中存在缺陷的设备信息工作量大,效率低,存在漏检和误检的可能性较大。近些年随着计算机视觉的不断发展,通过智能检测方法对图像进行识别成为目前的主流。

绝缘子作为输电线路的关键设备,对它的掉串检测极其重要。绝缘子所处环境复杂且缺陷绝缘子在整个航拍图像上所占比例较小等问题导致绝缘子的掉串缺陷检测难度较大。随着深度学习的发展,运用深度学习对绝缘子掉串缺陷进行检测成为当前趋势。

在绝缘子检测中,传统的特征检测方法如文献[4]中把绝缘子轮廓的局部纹理分布的内外差异最大化,建立了一个新的轮廓模型以此来提取绝缘子。文献[5]中提出绝缘子图像二值化,根据绝缘子的特征定位绝缘子的位置。文献[6]通过把玻璃和陶瓷的颜色特征与空间特征结合来识别绝缘子的位置。但这些传统的检测方法训练时间长,泛化能力较差,其结果依赖特征提取方式,较难应用于复杂背景下的绝缘子检测。随着R-CNN[7]系列、YOLO[8]系列和SSD[9]检测算法的出现,目标检测和识别技术有了巨大的突破[1]。文献[10]中利用Faster RCNN算法对绝缘子进行定位和缺陷检测,但是检测时间较长,检测实时性不高。文献[11]通过对SSD算法和深度残差网络(DenseNet)的结合对输电线路上设备的缺陷进行检测,检测精度为89%,测试一张图片时间为0.1s。文献[12]中通过SRCNN对模糊图像进行重构,然后利用YOLOv3算法对绝缘子缺陷进行检测,检测精度达93.6%且检测时间较短。文献[13]在基于YOLOv4的基础上对绝缘子进行爆裂检测,检测精度达91.78%,每秒处理帧数为46f/s。可见,YOLO系列较Faster RCNN[14]和SSD算法在检测精度和检测时间上都有提升。

综合考虑YOLO系列算法的检测精度和训练时间后,文章以YOLOv5[15]算法为基础建立绝缘子掉串缺陷识别模型,为降低模型训练中过拟合的概率将模型中SPP模块的池化层替换为SoftPool[16];更换原网络中的损失函数以提高模型的稳定性;为进一步使检测结果更准确利用PSO融合K-means[17]优化初始锚框并改变最终通道输出个数进行绝缘子掉串缺陷识别实验。

2 基于YOLOv5的目标检测网络

2.1 YOLOv5算法

基于YOLOv5的绝缘子掉串缺陷识别模型的主干网络结构如图1所示,由输入端(Input)、基准网络(Backbone)、特征融合部分(Neck)、检测头(Head)组成[19]。YOLOv5输入端嵌套了YOLOv4的 Mosaic数据增强[20]以提高网络训练精度。在基准网络部分和特征融合部分加入了FPN+PANET的结构,运用交叉结构层的连接可减少计算量,保证计算的精度。检测头包括了分类和回归的输出结果,输出层的输出包含了三个不同的特征维度。YOLOv5又根据不同的网络深度有YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x四个版本,四个网络结构深度和宽度的设置如表1所示。随着网络结构加深,模型易出现过拟合。结合绝缘子掉串缺陷数据集的特点,通过实验验证分析,文章采用模型深度较浅的YOLOv5s作为网络模型。

表1 YOLOv5四个网络结构参数

图1 YOLOv5网络结构

2.2 算法改进

YOLOv5模型从检测速度和检测时间上都有一定的提升,但由于YOLOv5模型训练是基于公开数据集,针对文章中所提及的输电线路绝缘子掉串缺陷这样的小目标数据集的特点,需要对YOLOv5模型进一步的改进,从而能更准确地识别绝缘子及掉串缺陷,提高模型的稳定性和泛化能力。

2.2.1 基于SoftPool池化结构的YOLOv5模型

池化层作为卷积神经网络中不可或缺的一部分,在深度学习网络模型中随处可见,池化的操作在一定程度上可以减少训练中过拟合现象,增大卷积的感受野,降低特征的冗余度。目前常用的池化包括平均池化和最大池化,平均池化是取特定区域的平均值作为输出,保留背景效果较好,但容易使图片模糊。最大池化则是取特定区域的最大值作为输出,适用于特征信息极为突出的部分,但又容易忽略某些细节信息。同上述两种池化不同,SoftPool通过softmax进行加权平均,反向传递中梯度每次都会更新,在保留池化层功能的同时尽可能减少池化引起的特征信息的丢失。

由于绝缘子掉串缺陷在航拍图像上所占比例较小且掉串在图像上不是很突出,利用平均池化和最大池化可能会丢失掉串缺陷这样的重要信息。通过对比分析,文章中在SPP模块中将原网络中的MaxPool替换为SoftPool,以降低模型出现过拟合的可能性,同时确保绝缘子掉串信息尽可能完整的保留。SoftPool在YOLOv5中的位置如图2所示。

图2 SoftPool在YOLOv5网络的位置

SoftPool对候选区域的特征权重

(1)

其中:wi表示权重,ai表示激活值。前向传递得到的权重信息能保证图像中重要信息向后传递,在特征信息的反向传递过程中又会预设最小梯度。得到wi后,加权特征值的输出为

(2)

2.2.2 改进的损失函数

损失函数是作为评价模型稳定性的重要指标。原始YOLOv5模型中对位置损失函数的设置是GIoU_loss,对于绝缘子数据集在训练中可能会出现预测框和目标框未重叠的目标检测框,使得GIoU退化到IoU[21]。DIoU则对于绝缘子数据集在训练中预测框中心点位置相同的情况,不同形状的预测框使得DIoU回归值相同,在模型训练中会影响对目标区域检测的准确性。CIoU_loss结合GIoU_loss和DIoU_loss未考虑到的部分,使得预测框回归精度更高。因此,文章在考虑绝缘子数据集各方面因素后选择CIoU_loss作为位置损失函数。

(3)

其中:α为权重,v衡量长宽比的相似度,b,bgt分别表示预测框和目标框的中心点,两者之间距离采用欧式距离ρ。c表示能同时包含预测框和目标框的最小包围框的斜距。

传统的NMS对于数据集中绝缘子图像重叠部分的检测会存在错误筛选信息。抑制冗余的预测框不仅要考虑图像重叠部分,也要考虑预测框和目标框的中心点距离。在YOLOv4里针对目标框的筛选同时考虑到上述两个问题,选用的是DIoU_NMS。因此,文章中借鉴YOLOv4中DIoU_NMS,将原网络的NMS更改为DIoU_NMS,公式如下所示。

(4)

(5)

(6)

其中:IoU表示预测框与目标框的交并比,ε为NMS阈值,N表示预测框信息,Bi表示目标框信息,ki为每个不同类别分类得分值[22]。

2.2.3 优化初始锚框及最终输出通道

原始YOLOv5模型在训练和测试中采用公开数据集,这些数据集类别多,形态与绝缘子掉串缺陷也存在差异,默认的锚框设置不太适用于绝缘子掉串缺陷识别检测。因此文章利用PSO融合K-means算法优化初始锚框参数。

优化锚框过程如下:首先通过读取每张图像标注的xml信息得到每张图像上所有标注框的坐标信息,根据每个标注框坐标信息计算长宽的平均值作为PSO的输入,PSO通过全局搜索最优锚框长宽值作为K-means初始聚类中心并进行聚类。通过聚类得到的锚框信息替换原始YOLOv5s模型中的锚框信息,以此用与模型训练。

YOLOv5模型的Head层为输出层,它生成最终的检测框并预测类别。原始的YOLOv5最终输出channels为255(80个类别+1个置信度+4个坐标参数),而文章中检测的类别只有绝缘子和掉串缺陷两类。为了适用于文章中检测类别,减少输出通道数过大造成的冗余,使输出检测框更准确,则设置N=2,即改变最终输出channels为21。

3 实验结果分析

3.1 数据集及实验环境

本实验环境配置情况:Intel(R) Xeon(R) Gold 5218R CPU,软件平台Ubuntu,深度学习模型采用 Pytorch 搭建。

实验所需数据集通过结合河南、云南某市电网公司提供的有关绝缘子的图像以及选取部分Github 上公开的数据集[23],共获得910张原始数据集图像,为了提高模型的泛化能力,通过随机镜像、旋转、随机亮度变换、随机颜色通道变换对数据集进行扩充。扩充后的实验数据集共2000张绝缘子图像,包括陶瓷、玻璃、复合材料三种不同材料的绝缘子图像。实验数据集中掉串缺陷绝缘子图像有800张,完好的绝缘子图像有1200张。采用 VOC2007 格式进行标注,图像标注工具采用labelimg,其中绝缘子标注为insulator,缺陷标注为defect。数据集按照8:2划分为训练集和测试集。

训练过程中,对训练集的随机几张图片通过Mosaic数据增强方式,由随机缩放、随机裁剪、随机排列拼接,构成新的数据图像用于定位及检测绝缘子和缺陷。训练中参数设置如表2所示,模型训练中使用Adam优化参数。

表2 实验参数设置

3.2 实验模型评价指标

文章中使用准确率、召回率及平均检测精度作为实验评价指标。

1)准确率(Precision,P)

(7)

2)召回率(Recall,R)

(8)

3)平均精度(mean Average Precision,mAP)

(9)

(10)

以上各式中,TP(True Positive)表示预测正确样本的个数,FP(False Positive)表示非样本检测为样本的个数,FN(False Negative)表示未检测出样本的个数。

3.3 实验结果分析

3.3.1 不同模型下预训练结果分析

YOLOv5有 YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x四个训练模型,四个网络模型深度逐渐增加。为了验证文章中选用YOLOv5s权重模型进行训练的可行性,使用YOLOv5的四种权重模型分别对绝缘子数据集进行训练,训练结果如表3所示。由表3可以得出,在相同Epoch下,随着权重模型深度的不断加深,训练的时间也逐渐增加。从平均精度结果可知,YOLOv5s的平均精度略优于YOLOv5其它三种模型,达92.6%。由上述分析可知,YOLOv5s模型训练时间短,平均精度较好,适合作为文章中绝缘子及掉串缺陷检测的模型。

表3 不同模型下训练结果

3.3.2 基于DIoU_NMS下不同损失函数结果分析

为了分析文章中选择的CIoU_loss+DIoU_NMS损失函数对最终检测结果的有效性,分别改变YOLOv5中IoU_loss为GIoU_loss、DIoU_loss、CIoU_loss进行模型训练,实验结果如表4所示。原始模型中的GIoU在结合了DIoU-NMS后检测绝缘子及掉串缺陷的综合准确率在三个IoU中仅为93.7%。CIoU+DIoU-NMS对绝缘子及掉串缺陷的综合检测结果虽然召回率同前两个损失函数相比有所降低,但是从准确率和平均精度结果看,通过CIoU+DIoU-NMS训练模型对检测结果的综合性能及模型的稳定性有所提升。

表4 不同损失函数下检测结果

3.3.3 不同算法检测结果分析

将文章中算法与Faster RCNN、SSD、YOLOv3[24]及原始YOLOv5算法进行对比,检测结果如表5所示。由表可知, YOLOv5算法对绝缘子及掉串缺陷的总体检测平均精度虽较YOLOv3比略低,但是从YOLOv5算法对绝缘子掉串缺陷的检测结果来看,准确率提高了6.8%。通过这两个算法的比较分析,YOLOv5算法对绝缘子掉串缺陷的检测有较好的效果。

表5 不同检测算法的检测结果

改进的YOLOv5对绝缘子的检测准确率同原始YOLOv5、YOLOv3、Faster RCNN、SSD比分别提高了0.7%、0.3%、8.8%、7.4%。改进的YOLOv5对绝缘子掉串的检测准确率同原始YOLOv5、YOLOv3、Faster RCNN、SSD比分别提高了2.5%、9.3%、58.4%、21.4%。原始YOLOv5和改进后YOLOv5参数收敛结果如图3所示,由IoU_loss曲线可知,改进后的YOLOv5损失更低。综上,由实验结果对比分析可知,文章中提出的方法对绝缘子及掉串缺陷的综合检测性能均有所提升。

图3 参数收敛结果对比

由Mosaic数据增强进行绝缘子及掉串双目标检测结果图及改进YOLOv5算法对绝缘子及掉串双目标检测结果图分别如图4和图5所示。由图4可知,通过Mosaic数据增强随机将四张原始数据集重组成一张图片进行检测,通过模型训练检测出的绝缘子用红色方框圈出并标注insulator,检测出的掉串缺陷用粉色框圈出并标注defect。通过下图的检测结果可以看出文章中模型能准确的检测识别在复杂背景下的不同角度的绝缘子及掉串缺陷。

图4 Mosaic数据增强目标检测结果(红色方框表示检测出的绝缘子,粉色方框表示检测出的缺陷)

图5 改进YOLOv5算法目标检测结果

4 结论

针对绝缘子图像中掉串部分所占图像比例较小的问题,提出基于改进YOLOv5的输电线路绝缘子掉串缺陷识别方法。YOLOv5以YOLOv5s预训练模型为载体,通过将原网络SPP模块中池化层替换为SoftPool,设置损失函数为CIoU+DIoU_NMS,并利用PSO融合K-means聚类算法优化初始锚框等方法优化YOLOv5算法。与原始YOLOv5算法相比平均检测精度提高3.7%;与YOLOv3算法、Faster RCNN 算法和SSD 算法对比,改进的YOLOv5算法的准确率和召回率更高,模型稳定性较高,能较准确的检测出绝缘子掉串缺陷。实验表明文章中提出的方法具有一定的可行性。

猜你喜欢
池化绝缘子精度
基于Sobel算子的池化算法设计
卷积神经网络中的自适应加权池化
设施蔬菜病害识别中的CNN池化选择
基于卷积神经网络和池化算法的表情识别研究
基于DSPIC33F微处理器的采集精度的提高
GPS/GLONASS/BDS组合PPP精度分析
1000kV耐张绝缘子串单片绝缘子的带电更换技术
改进的Goldschmidt双精度浮点除法器
500kV绝缘子串含零值绝缘子时的电晕放电分析
绝缘子的常见故障及排除方法