APP下载

改进YOLOv5的绝缘子缺陷检测算法

2023-09-27齐至家何盼霞

关键词:绝缘子注意力卷积

张 梅,齐至家,何盼霞

(安徽理工大学电气与信息工程学院,安徽 淮南 232001)

绝缘子是输电线路中的重要电力设备之一,其主要作用是负责机械的固定、电线与电缆的连接和输电线路的电气绝缘。架设在户外的输电线路极容易发生事故,从而引发绝缘子的爆破、破损、放电等,给国民经济带来重大的损失。为保证输电质量与电力系统正常运行,须定期对绝缘子及其缺陷部分进行巡检。

传统的电网维护很大程度上依靠人工巡检,但会受到巡检人员自身视觉和地理环境因素的影响。误检、漏检等错误屡见不鲜,极易造成巨大的人员损伤与财产损失,难以适应智能电网发展需求。无人机巡检主要利用无人机搭载高清摄像头、红外设备等,通过操作飞行获取目标检测的电力设备图像及影像,并利用图像处理和测量技术从多种角度对电力设备进行巡检。与传统巡检相比,无人机巡检不仅降低了巡检过程中的危险系数,同时也减少了因主观因素造成的错误判断,从而提高了巡检的效率。随着深度学习技术的兴起和5G技术的发展,在电力巡检方面无人机巡检逐渐替代了传统人工巡检[1-2]。目前,在绝缘子缺陷检测技术方面主要有两种方法。一种是基于图像形态特征的处理,采用传统数字图像处理与传统目标检测相结合的方式进行目标检测。另一种检测技术是基于深度学习的目标检测方式,其主要算法分为单阶段和两阶段检测算法。两阶段检测代表算法有R-CNN(Region-based Convolutional Neural Network)系列算法[3-5];单阶段检测的代表算法有SSD(Single Shot MultiBox Detector)[6]和YOLO(You Only Look Once)[7-8]系列。

采用深度学习目标检测的代表性成果有:文献[9]提出一种改进的YOLOv3算法,可以更好地采集无人机拍摄的绝缘子图像数据集的数据特征以提升算法性能;文献[10]通过改进YOLOv4的空间金字塔结构和平均交叉熵的方式提升了网络的检测精度;为了更好地提高模型的泛化能力与精度,文献[11]结合GAM(Global Attention Mechanism)注意力模块与自适应特征融合ASFF(Attentional Semantic Feature Fusion)模块改进了YOLOv5算法。虽然以上研究成果在检测精度上取得了不错的提升,但依旧存在检测目标单一,误检、漏检率高的问题,难以满足实际工程中对缺陷检测的高标准。

针对绝缘子检测时出现的复杂背景干扰以及实际运用中存在的误检、漏检问题,本文以YOLOv5 6.2版本中的YOLOv5s算法为基础算法,对绝缘子缺陷检测进行研究。首先,用全维动态卷积(Omni-Dimensional Dynamic Convolution,ODConv)来替换原网络中的部分卷积层,在提高算法模型在复杂环境下对绝缘子缺陷检测的准确率的同时保持其有效的推理速度[12];其次,将原检测头替换为YOLOX所提出的解耦检测头,以避免因头部耦合给绝缘子缺陷检测算法性能带来损失[13]2;最后,为提升算法在复杂背景下的特征提取能力来避免误检、漏检问题,引入CA(Content-based Attention)注意力机制,并通过实验对比验证后确定将CA注意力模块嵌入至算法骨干网络部分中,使其更加有效地关注目标信息[14]。本文组织结构如下:第一部分简要介绍了YOLOv5算法各层网络结构;第二部分描述了YOLOv5算法的改进方法;第三部分介绍了数据集,并进行了一系列实验来验证所提出改进方法的可行性和优越性;最后对全文进行总结。

1 YOLOv5目标检测算法

YOLOv5是一种单阶段目标检测算法,吸取了很多检测算法的优点,自2020年发布以来一直在活跃更新迭代中。根据网络的深度和宽度将YOLOv5依次递增分为YOLOv5n、YOLOv5s、YOLOv5m等体量不同的版本。YOLOv5s在保证了较高的检测精度与速度的同时又拥有较小的参数量,更加容易在嵌入式端口部署,所以本文选择YOLOv5s为基础进行相关的改进。YOLOv5s算法主要由Input、Backbone、Neck、Output组成,其主要网络结构如图1所示。

图1 YOLOv5s的网络结构图

在输入端采用了Mosaic和Mixup等相结合的数据增强方式对数据集进行预处理,同时对不同数据集采用自适应锚框技术与自适应图片缩放。在主干网络(Backbone)中,通过CBS(Constraint-Based Search)、C3和SPPF(Shared Packed Parse Forest)模块对数据的特征进行提取,进行下采样操作,生成不同尺度的3种不同的特征图并输入到下一层。算法的Neck部主要是由FPN(Feature Pyramid Network)和PAN(Path Aggregation Network)相互结合的结构,这两种结构分别采用自上而下与自下而上两种互补的采样方式来传递上层的语义特征与下层的强定位特征。从不同的主干层对检测层的参数进行聚合来增强特征图的层次结构,从而增强网络的特征融合能力。输出层为预测大、中、小的特征图,采用CIOU(Complete IoU)函数作为边界框的损失函数,并且采用非极大值抑制(Non-Maximum Suppression,NMS)来筛选多目标框,避免检测目标相互遮挡问题。

2 改进的YOLOv5目标检测算法

针对在复杂背景下绝缘子缺陷检测存在的误检、漏检与精度较低等问题,本文在YOLOv5s网络中加入了以下改进,具体改进后的算法网络结构图如图2所示。首先,在原算法的Neck部分引用全维动态卷积ODConv替换一部分传统卷积;然后,在检测头处将原算法的耦合检测头替换为解耦检测头,并在算法网络中融合CA注意力机制;最后,将3种改进方法融合,并得到最终的绝缘子目标检测算法YOLOv5s-ODC(ODConv+Decoupling head+Coordinate Attention)。下面将逐一介绍改进内容。

图2 YOLOv5s-ODC的网络结构图

2.1 全维动态卷积ODConv

在传统卷积中,为了提高模型性能,大多数是采用堆叠或增加卷积层的方法,这种方式不仅会使算法计算成本增加,还会影响绝缘子缺陷检测的检测效率。为了在提升性能的同时不增加过多的参数量和计算成本,本文向算法中引入了全维动态卷积ODConv。与传统的动态卷积只关注在卷积核维度上的注意力不同,ODConv在卷积中以并行的方式加入了多个维度的互补注意力,因此被称为全维动态卷积。ODConv结构如图3所示。

图3 ODConv结构图

ODConv利用一种新的多维注意力机制,以并行的方式计算了4种类型的注意力,其中ODConv对动态卷积的定义为

y=(αw1⊙αf1⊙αc1⊙αs1⊙W1+…+αwn⊙αfn⊙αcn⊙αsn⊙Wn)*x

(1)

式中,αw1为对卷积核Wi维度的注意力,αs1为沿卷积核空间维度的注意力,αc1为沿输入通道维度的注意力,αf1为沿输出通道维度的注意力。 ⊙表示沿核空间不同维度的乘法操作。x表示与一个多头注意力模块进行计算。这4类不同的注意力是相辅相成的,按照位置、通道、滤波器和核等维度依次乘以卷积核Wi并且累加,使卷积运算相对于输入x的所有空间位置、输入信道、滤波器和内核存在差异性,保证捕获丰富的上下文线索。由于卷积的特征提取能力得到了增强,与拥有多个内核的动态卷积对比,ODConv仍然拥有竞争力甚至更有优势,并且减少了额外的参数。

2.2 头部解耦

在目标检测中,分类与回归任务的冲突问题受到了关注。随着YOLO系列目标检测算法的不断更新,其检测头依旧是耦合的。根据文献[13]2可知,算法的性能会因检测头的耦合导致损坏,将YOLO的检测头替换成解耦头可以提高收敛速度,且在端到端的YOLO版本中,使用解耦头进行训练时,其精度下降要远远低于使用耦合头的版本。

为了避免分类与回归任务的冲突,提高算法模型的性能,本文将解耦检测头引入到YOLOv5s来代替原有的耦合检测头(见图4)。

图4 解耦检测头结构图

解耦头首先采用1×1卷积层将输入特征中的每一层特征通道减少到256个,然后增加了两个平行的3×3卷积层分支,分别负责分类和回归任务,最后再经过1×1卷积层将通道数调整为预测目标类别数。其中,Cls分支完成分类任务,Reg负责输出预测框的回归参数,Obj负责判断预测框中是否含有绝缘子缺陷目标。

2.3 CA注意力机制

本文引入了带注意力机制的ODConv虽然提升了算法的特征提取能力,但对较为复杂背景下的绝缘子检测仍然有误检、漏检情况。为了排除背景的干扰提高对小目标的检测效果,合理利用算法的视觉信息处理资源并且进一步提升算法的特征提取能力,本文在YOLOv5s中引入了CA注意力机制。

与传统通道注意力机制不同,CA注意力不仅关注权衡不同通道的重要性,还考虑了对空间信息进行编码。首先,CA模块对给定的输入值x分别以水平和垂直坐标方向进行编码。第C个通道在高度H和宽度W处的输出可以表示为:

(2)

(3)

这两种转换可以在高度和宽度方向上都得到两个特征图。其次,将两种聚合特征图连接起来发送到共享的1×1卷积变换函数F1中,从空间方向进行上下采样,得到特征图f,其中包含了两个坐标方向的中间特征。再次,将f分为独立的两个张量,再通过1×1卷积将两个张量变换为相同通道的张量并输入到x中。最后,将输出的gh和gw展开,作为注意力的两个权重,得出坐标注意力yc。计算公式如下:

f=δ(F1([zh,zw]))

(4)

gh=σ(Fh(fh))

(5)

gw=σ(Fw(fw))

(6)

(7)

式中,δ为非线性激活函数,[…,…]表示zh和zw是沿空间维度的拼接运算,F1、Fh和Fw为1×1卷积,fh和fw两个独立的的张量,σ表示为Sigmoid函数。CA模块结构如图5所示。

图5 CA注意力模块

由图5可知,通过式(2)~式(7)的转换,CA可以沿着一个空间方向(X)捕获到远程的相关性,同时可以在另一个方向(Y)上保留精确的位置信息,从而提高对感兴趣目标的表达能力。因此,可以在不需要过多计算开销的同时极大的减少复杂背景对检测目标的干扰。

很多学者已经通过实验证明了在卷积神经网络中嵌入CA注意力模块可以有效提升目标检测任务的性能,但是将CA嵌入到网络结构中的哪一个部分并没有统一的答案。本文基于2.1节和2.2节两种改进后的算法YOLOv5s-OD(ODConv+Decoupling head),将CA注意力模块分别嵌入到算法网络的不同部位进行验证。具体方法如图6所示,分别产生了4种新的网络模型:

图6 CA注意力模块4种嵌入方式

1)将CA注意力层嵌入至骨干部分的池化层上一层构成算法YOLOv5s-OD-A,如图6(a)所示;

2)将CA注意力层嵌入至检测头的前一层构成YOLOv5s-OD-B算法,如图6(b)所示;

3)将CA注意力层融入了C3模块的add操作之后构成算法YOLOv5s-OD-C,如图6(c)所示;

4)将CA注意力模块融入了C3模块的Concat操作之后的算法YOLOv5s-OD-D,如图6(d)所示。

通过实验得出,只有YOLOv5s-OD-C的改进方式可以提升算法性能。因此,本文采用图6(c)的CA注意力融合方式,得到最终优化算法YOLOv5s-ODC。

3 实验与分析

3.1 实验环境

本文实验的操作系统为Windows 10 64位,采用Pytorch1.8.2+cu111深度学习框架,python编程语言,Cuda版本为11.1,cudnn版本为8.0.5。硬件配置为:CPU为12th Gen Intel®CoreTMi9-12900K 3.20GHz,NVIDIA GeForce RTX 3080 10GB显存,32GB运行内存。改进后算法训练的超参数设置为:动量为0.937,初始学习率为0.01,迭代次数为300次,batchsize为16,权重衰减为0.000 5。

3.2 数据集

本文的数据集由两种不同的数据集融合而成,分别为:

1)CPLID是由国家电网公司提供的高压绝缘子航拍图像集,包含正常绝缘子图像600张与爆破绝缘子图像248张;

2)绝缘子缺陷图像数据集EPRI,包含绝缘子闪络故障、破损故障和良好的绝缘体外壳图片共1 684张。通过数据清洗,剔除高度相似的图像、低清晰度的图像,得到可用图像485张。

为避免数据集样本过少造成过拟合影响算法对绝缘子及其缺陷部位检测效果,并模拟复杂环境对绝缘子检测的影响,本文对融合后的数据集进行数据增强,通过旋转、随机裁剪、模糊与亮度调整等方式将图像扩充至3 996张。

本文使用LabelImage标记工具来对融合后的数据集进行标记,并将数据集图像目标分为4大类,按照8∶1∶1的比例,将标记好的数据集随机分成训练集、验证集和测试集。经过数据集处理,各类目标的名称与数量如下:insulator类5 124个,defect类714个,broken类961个,flash类1 943个。

3.3 模型算法评价指标

为了对模型算法的性能进行客观评判,实验采用准确率(precision,P)、召回率(recall,R)、多类别平均精度(mean average precision,mAP)、占用储存空间大小(单位:MB)、检测速度(单位:ms)等指标衡量算法的优越性。P、R、mAP具体计算如下:

(8)

(9)

(10)

式中,TP为正样本目标被正确检出的数量;FP为正样本目标被错误检出的数量;FN为样本未被检出的数量;n为类别数;AP为某个类别的平均精度。

3.4 实验结果与分析

为验证本文提出的3种改进方式的有效性,分别设计了融合注意力模块验证实验、消融实验、主流算法对比实验和图像检测结果对比实验。

1)融合注意力模块的实验分析 为探究注意力模块在算法不同部分对算法性能的影响,本文将CA注意力模块分别嵌入到算法网络YOLOv5s-OD(ODConv)的4个不同部分,形成了图7中提出的4种算法,将4个算法的检测结果与原算法进行对比实验。实验结果如表1所示。

表1 融合注意力模块验证实验

图7 平均精确率对比图

由表1可知,只有YOLOv5s-OD-C算法的平均检测精度相较于原模型有所提高,虽然检测速度有所降低,但是提升了0.5个百分点的平均检测精度。该实验表明在网络结构特征融合add之后嵌入注意力模块可以提升算法的检测效果,证明了方法的可行性,因此,本文采用YOLOv5s-OD-C的注意力融合方式。

2)消融实验 本文针对YOLOv5s算法提出了3种改进方法,分别为O(ODConv)、D(解耦检测头)和C(CA),在原数据集上设计了消融实验。分别验证3种模块单独加入算法时的有效性和同时采用3种改进在算法上的有效性。消融实验具体结果如表2所示。

表2 消融实验结果

表2中“√”代表引用该方法,“×”表示未引用该方法。由表2可知,相比于原模型,引用解耦检测头对算法的平均精度提升最为明显,平均检测精度提升了2.0个百分点,但是对模型体积影响较大(增加了14MB),检测速度增加了1.8ms。引入ODConv后平均检测精度增加了0.8个百分点,体积没有影响,检测速度也仅增加了1ms。当向网络里融合了CA注意力机制后,平均检测精度提升了0.9个百分点,体积提升了0.1MB,检测速度增加了0.9ms。由此证明了3种改进单独加入网络中的有效性。改进后算法与原算法的性能对比如图7所示。

由图7和表2可知,改进后的算法在性能上明显优于原算法,本文提出的YOLOv5s-ODC算法与原算法相比,平均检测精度提升了2.5个百分点,模型体积提升了14.2MB,检测速度增加了6.3ms。说明改进后的算法在满足实际运用的要求的基础上拥有更高的检测精度。

3)对比实验 为了证明本文算法相较于主流目标检测算法的有效性与优越性,本文将最终算法模型与主流目标检测模型和嵌入不同的注意力机制CBAM(Convolutional Block Attention Module)[15]、SE(Squeeze-and-Excitation)[16]在本文所用数据集上进行实验对比,结果如表3所示。

表3 不同算法模型在本文数据集上的性能对比

由表3可知,YOLv5s-ODC算法拥有最高的平均检测精度。在检测精度方面SSD算法虽然拥有最高的准确率,但是在平均检测精度上只有58.1%,无法在实际条件下应用。在检测速度上原算法YOLOv5s有优势,但是它的平均检测精度相较于本文所提算法相差2.5个百分点。在不同的注意力机制上,本文所引用的CA注意力机制在平均检测精度上有着明显的优势。

综上所述,与主流目标检测算法相比较,本文所提出的YOLOv5s-ODC算法拥有最高的检测精度,并拥有相对轻量的体积,有利于算法在嵌入式设备上的植入,在绝缘子缺陷目标检测领域中具备一定的竞争力。

4)图像检测结果对比实验 为了验证本文所提出的算法相对于原算法在绝缘子缺陷检测上的优势,本文将随机选取包含绝缘子缺陷的图片对两种算法进行验证实验,部分检测结果如图8所示。

图8 检测结果

由图8可知,第一组和第二组检测图片中原算法都存在着误检和漏检现象,但在改进后的算法检测中都改善了这些错误。第二组和第三组的图像比较中,改进后的算法所检测出的故障目标置信度都有所提高,其中第二组类别broken(绝缘子破损类)的检测置信度从0.64上升到了0.79,第三组类别flash(绝缘子闪络类)的检测置信度也比原算法分别高出0.08、0.08和0.13。

综上所述,改进后的算法YOLOv5s-ODC有效地解决了原算法的误检、漏检现象,并且有效地提升了算法在复杂环境下对绝缘子故障的识别精度。

4 结论与展望

本文提出了一种基于改进YOLOv5的绝缘子故障检测算法YOLOv5s-ODC,分别以在算法Neck部分引入全维动态卷积ODConv、采用解耦检测头来替换原算法的耦合检测头、融合CA注意力模块的方式对YOLOv5s模式进行改进。实验结果证明经过改进后的算法在绝缘子故障数据集上相较于原模型,检测精度提高了2.5个百分点,同时改善了误检、漏检问题。改进后算法在主流的目标检测算法的对比中有更明显的优势,更加符合实时检测的高精度、实时性的要求。

改进后的算法满足了实际工作中的需求,但在检测速度上与原算法相比还有所不足。今后工作应着重于提升算法检测速度、优化算法体积,以实现算法在边缘计算设备中的部署。

猜你喜欢

绝缘子注意力卷积
让注意力“飞”回来
基于3D-Winograd的快速卷积算法设计及FPGA实现
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
1000kV耐张绝缘子串单片绝缘子的带电更换技术
500kV绝缘子串含零值绝缘子时的电晕放电分析
绝缘子的常见故障及排除方法
一种基于卷积神经网络的性别识别方法