改进YOLOX算法的输电线路关键部件及缺陷检测
2023-02-18徐文校张银胜王东平黄文礼
徐文校,张银胜,2,王东平,黄文礼
(1. 南京信息工程大学 电子与信息工程学院,江苏 南京 210044; 2. 无锡学院 电子与信息工程学院,江苏 无锡 214105; 3. 中国人民解放军特种电子装备修造厂,安徽 合肥 230088; 4. 安徽南瑞继远电网技术有限公司,安徽 合肥 230088)
0 引言
电力系统涉及国计民生,对于社会的稳定生产和人民群众的正常生活具有重要意义[1]。我国领土广阔无垠,作为电力系统的载体,输电线路往往需要穿越山川河流、人烟稀少的地方,复杂的地理环境加大了输电线路部件损坏的可能性。工程中,为在第一时间对损坏处进行干预,常采用定期巡检的方式对输电线路进行维护,以此来保证电力系统的稳定运行。
传统的巡检方式是技术人员携带专业设备沿着输电线路行走巡视,我国输电线路总长度居世界第一,其部件损坏也存在极大的不确定性,因此人工巡检的方式有着目的性弱、耗时长、成本高以及安全隐患大等缺点。随着硬件技术的发展,无人机设备开始应用于输电线路巡检中,操控人员通过无人机对输电线路部位进行拍摄,并将图像数据传输至后台,由审核人员进行分析,这种巡检方法虽然能够避免资源浪费与安全隐患,但是对大批量的图像进行肉眼审查,会存在严重的漏检、错检,同时巡查的结果也会随着审核人员主观意向的改变而改变。
为解决输电线路巡检过程中的低效率问题,许多研究学者考虑将计算机视觉技术迁移到输电线路巡检中,通过相关图像处理算法对无人机拍摄的高清图像进行分析,Liao等[2]提出了一种基于机器学习的绝缘子检测方法,采用多尺度的描述子获得局部特征,通过匹配原则检测出绝缘子。吴华等[3]通过改进密度空间聚类算法,大幅度改善了图像中目标边界部分被当作背景处理的情况,提高了巡检图像的目标分割精度。张桂南等[4]对待测图像进行Harris角点检测和模糊聚类等,得到绝缘子边缘轮廓,然后利用谱聚类实现绝缘子的破损检测。以上几种输电线路器件或缺陷的检测方法都是基于传统的图像识别实现,识别过程需要人工参与,即通过分析图像,手动设计特征进行提取,过程较繁琐,同时这些方法大都是针对特定的环境进行设计,鲁棒性以及泛化能力等较弱。
近年来,深度学习的兴起使得计算机视觉技术有了快速发展,作为计算机视觉领域的重要分支,目标检测技术在许多工程项目中落地应用,如混泥土裂缝检测[5]、路面破损检测[6]和可见光船舰检测[7]等。基于深度学习的目标检测方法,采取端到端的训练方式,能够自适应提取特征,鲁棒性更好。目前,大多数先进的目标检测算法按照是否预先产生感兴趣区域被划分为单阶段目标检测算法和双阶段目标检测算法。单阶段目标检测算法检测速度快,能够做到实时检测,主要以YOLO系列(v1~v5)[8-12]为代表,除此之外SSD[13]和FSSD[14]等也在诸多领域中广泛应用;双阶段目标检测算法以Fast-RCNN[15]和Faster-RCNN[16]为主,检测精度相对较高。得益于这些算法的优秀表现,许多研究者已经将目标检测技术与输电线路巡检相结合,通过相关算法对无人机拍摄到的高清图像进行智能分析,其中绝缘子类的目标及缺陷被国内外学者研究较多。Zhang等[17]将绝缘子的检测划分为2段,即先通过YOLOv5算法检测出绝缘子,然后将检测到的绝缘子进行切割并送入由VGG16和SPP组成的级联网络中进行最终的缺陷检测,2段式的检测方法能够有效提升精度,但是检测速度较慢。Li等[18]将Faster-RCNN与RPN网络相结合,能够识别小型的绝缘子自爆目标,邱灵华等以Faster-RCNN网络为基础,并采用IOU阈值级联结构,对绝缘子类缺陷进行检测,mAP值达到85.1%;Liu等[19]提出一种浅层神经网络结构中的特征信息重复利用及传播的思想,并对YOLOv3算法进行针对性改进,解决了不同背景下的绝缘子检测问题。王凯等[20]提出了一种GC-SPP-YOLOv3算法,对于绝缘子类缺陷的识别率为89.8%。冉奇[21]基于Faster-RCNN算法,增加锚框类型进行改进,改进后的算法对绝缘子的识别率达到84.97%。Zhang等[22]为减少模型参数,提高运算速度,对YOLOv3模型进行精细化裁剪,裁剪后的模型推理速度虽得到较大提升,但识别率也有一定程度的下降。还有一部分学者对输电线路中其他部件及缺陷的检测进行了研究,汤踊等[23]基于神经网络,对常见的均压环的检测进行研究,但效果不佳。戚银城等[24]在Faster-RCNN的基础上嵌入了注意力机制,对于螺栓类缺陷的识别,mAP值为82.05%。邱志斌等[25]建立YOLOv4网络模型,并引入数据增强等策略,对电网涉及的20类鸟的识别精度达到92.2%。少部分学者对多类部件或缺陷的检测展开了研究,杨罡等[26]使用深度可分离卷积与多尺度特征融合方法实现了对绝缘子、悬垂线夹和防震锤3类部件的识别,mAP值达到86%。戚银城等[27]基于SSD模型,通过数据增强,改进IOU等优化方法,在均压环、重锤等目标上的平均识别率达到75.64%。Li等[28]在全卷积网络结构基础上,加入可变形卷积等组件,对绝缘子、防震锤、均压环与悬垂线夹4类对象的缺陷进行检测,识别精度达到83.3%。Zhao等[29]提出了一种特征融合的网络结构,对绝缘子、防震锤、悬垂线夹、鸟巢、绝缘子自爆等6类对象进行检测,其识别精度为83%。
上述基于深度学习的检测方法大都只针对少量类别进行检测,但当前复杂的电力场景下存在多类待检测目标,少数对多类别目标的检测方法符合当前巡检场景的复杂要求,但检测精度较低。值得注意的是,2019—2021年间国家电网有限公司《架空输电线路无人机智能巡检作业体系建设三年工作计划》中稳步推进与“十四五”规划对坚强局部电网建设的要求,对当前输变电线路关键部件识别精度有了更高的要求。因此,本文基于目标检测模型最新发展方向,开展输变电线路关键部件识别及缺陷检测研究,解决关键部件及缺陷检测精度上限不佳的问题。
输电线路关键部件及缺陷的检测是通过相关算法针对无人机巡检的图像进行检测,主要存在以下难点:① 输电线路待检测目标本身就存在多尺度特性,无人机巡检时,从不同的角度拍摄样本不仅会导致目标的局部特征消失,还会进一步放大目标间的尺度差异;② 目标的类别较多,对于均压环移位等,其目标的定义是该部件的空间位置发生变化,器件本身并不存在缺陷,无人机拍摄角度的不同会加大这一类型目标的检测难度,而且多种目标之间也存在一定的相似度特性;③ 目标成像背景复杂,输电线路往往需要穿越山川、河流等地理环境复杂的地方,复杂的地理环境使得待检测目标在图像中的占比非常小,同时光照、雾气、拍摄质量等客观条件也要求算法模型具有较强的泛化能力。针对输电线路检测中存在的难点,选择YOLOX算法模型[30]为基准模型,其具有的无先验框策略能够一定程度上解决目标多尺度等问题,同时YOLOX是YOLO系列算法模型中的最新产品,相比于双阶段算法模型,YOLOX能够做到实时检测。
1 YOLOX算法与优化
1.1 YOLOX算法
YOLO系列算法属于单阶段目标检测算法,单阶段目标检测算法不产生候选区域,直接产生物体的类别概率和位置坐标值,经过一次检测即可得到最终结果,检测速度快,在检测精度方面相比两阶段检测算法,并不会下降太多。YOLOX算法模型是YOLO目标检测算法模型系列中的最新产品,旨在优化基于YOLOv3的实时目标检测的速度和精度。YOLOX算法模型沿用了YOLO系列的总体布局,由输入、主干特征提取网络、颈部和头部4个部分组成,其网络结构如图1所示。
图1 YOLOX网络结构Fig.1 YOLOX network structure
在图像进入主干特征提取网络前,YOLOX算法模型采用了YOLOv5中同样的Focus模块,具体操作类似于邻近下采样,有利于后续的特征提取。CSP-Darknet[31]作为YOLOX主干网络的特征提取网络,其主要作用是提取图像特征并输出相应特征图,主要包含CBS和SSP两种操作。CBS由3部分组成:卷积、批归一化和激活函数;SSP实现了局部特征和全局特征的融合,扩大了感受野。YOLOX中的颈部结构主要目的是加强特征融合,进一步丰富特征图的表达能力。
YOLOX算法在延续YOLO系列算法的经典网络结构的同时,也做出了一些改进,如通过Mosic数据增强和Mixup数据增强,降低图像中噪声给算法带来的负面影响,提升模型的鲁棒性;又如采用不生成先验框策略,摆脱了使用先验框时带来的巨大计算量,推进目标检测进一步走向高效率;再如YOLOX算法使用解隅头代替了之前YOLO系列算法中的头部,解隅头对经颈部处理后的特征图,通过先使用1×1的卷积层将通道数降至256减少参数量,使用2个并行分支分别用于处理分类问题和定位问题,这一操作解决了分类、回归2种任务关注的特征图层数重心不统一的问题,同时提高了检测精度和速度。
1.2 算法改进
(1)区域特征融合
浅层神经网络主要提取目标的边缘等细节信息,当神经网络的层数加深时,感受野会变大,所提取特征中包含的细节信息会不断丢失,不利于小目标的检测。
考虑到输电线路检测中,一些类别目标的像素空间占比小,同时类别间待检测目标存在较大的尺度差异,因此决定在YOLOX的颈部通过特征图相加的形式进一步特征融合。这种融合方式会增加每一维度的信息量,以丰富特征图包含的信息,提高特征图的表达能力,有利于算法模型解决目标多尺度的难点,而且不会增加特征的个数(即通道数),大幅度减少了计算量,融合后的网络结构如图2所示。
图2 特征融合后的网络结构Fig.2 Network structure after feature fusion
(2)新增位置注意力机制
针对输电线路检测中目标成像背景复杂等特点,为进一步提高检测精度,提出新增一种注意力模块,由于检测效率的限制,现有的注意力模块中使用最为广泛的是SE-Net模块(通道注意力机制)[32]。SE-Net机制利用通道信息采用全局池化的方式对特征图进行编码,全局池化的方式虽能以相当低的计算成本有效提升模型性能,但是忽略了目标的位置信息,不利于回归任务的展开。后续的注意力机制,如CBAM模块(卷积注意力机制)[33],通过卷积引入了空间注意力机制,以此获得位置信息,但是卷积操作相比于全局池化,捕获的位置特征有一定的局限性。
对此,提出新增一种CA模块(位置注意力机制),该模块能够将位置信息融入通道特征中,使得神经网络能够在更大的区域上进行注意力调节,有利于更精准定位敏感区域。
CA注意力机制如图3所示。
图3 CA注意力机制Fig.3 CA attention mechanism
首先将通道注意力分解为2个一维特征编码过程,具体操作为使用2个大小为(H,1)和(1,W)的池化核对特征图XC,H,W的每个通道进行编码,这样做的好处是能够沿2个空间方向分别聚合特征,有助于算法更加精准定位目标区域,更好地解决复杂背景下的目标定位问题,编码后宽度为w的第c通道的输出和高度为h的第c通道的输出如下:
(1)
(2)
经上式变换后,会生成Zh和Zw两个特征图,然后对编码后的特征图进行通道拼接操作,并通过1×1卷积进行降维(本文维度降至c/16)并激活,生成中间层特征映射f:
f=δ(F(Concat(Zh,Zw))),
(3)
式中,Concat表示通道拼接;F表示卷积;δ表示非线性激活。
紧接着对中间特征图f沿着2个空间方向分离成fh和fw,并通过1×1卷积将分离后张量的通道维度调整为c,生成特征向量gh和特征向量gw,具体过程如下:
gh=σ(Fh(fh)) ,
(4)
gw=σ(Fw(fw)) ,
(5)
式中,Fh和Fw均为卷积操作;σ表示Sigmoid激活。最后对输入的特征图X进行位置加权相乘,实现特征图位置信息的聚合,最终的输出如下:
(6)
添加注意力模块后,网络的参数量会有一定程度的增加,因此选择在颈部层后加入CA模块,经CA注意力机制处理后的特征图,再送入头部层中进行分类回归。
(3)损失值分类处理
YOLOX中损失函数分为置信度损失、分类损失和回归损失,为进行回归损失计算的可视化分析,假设预测框和真实框的分布情况如图4所示,对其进行回归损失计算,结果如图5所示,图中横坐标为dx(单位为1),纵坐标为回归损失(单位为1)。由图5可知,当dx稍大时,也就是回归效果比较差时,通过回归损失函数公式-lb(iou)计算得到的损失值大于使用损失函数1-iouk(k=1,2,3)所得到的损失值,进一步可理解为-lb(iou)针对检测框的位置距目标位置较远时,也就是对于那些回归效果比较差的检测框能够给予更大的损失值,这有利于模型更好地学习那些回归效果不好的样本;而dx较小时,即预测框与真实框接近于重合时,1-iouk(k=2,3)计算得到的损失值要大于-lb(iou)计算得到的损失值,这有利于回归效果较好的检测框的进一步优化。需要说明的是,回归效果较好的检测框的损失值和回归效果较差的检测框的损失值之间存在一定大小的差距,这使得神经网络的关注重点并不会从回归效果较差的检测框转移到较好的检测框上。
图4 真实框、预测框分布情况Fig.4 Distribution of real box and prediction box
图5 各函数回归损失Fig.5 Each function regression loss
对此,本文考虑利用分段函数的思想,提出一种新的回归任务损失函数计算公式,能够加大对回归效果不好的检测框的惩罚力度,提升其回归精度,同时能够进一步优化那些检测效果较好的预测框,使其更加贴合真实标注框:
(7)
将分段函数的自变量转移到iou上,得到的回归损失函数如下:
(8)
对于上式中的k,基于经验将其取值为2,在确定2段具体的函数表达式之后,式中b的取值通过寻找函数之间的交点并取近似值来确定,最终的结果为0.707 11,因此最终的回归任务损失函数与iou之间的关系如图6所示(横纵坐标单位均为1)。
图6 本文算法回归损失Fig.6 Regression loss of proposed algorithm
其具体表达式如下:
(9)
2 实验结果与分析
2.1 评估指标
精确率、召回率是神经网络模型的2个经典评价指标,其计算如下:
(10)
(11)
式中,TP为正确预测为正样本的个数;FP为错误预测为正样本的个数;FN为错误预测为负样本的个数。通过上述公式可以进一步理解精确率为预测正样本中,实际为正样本的概率,召回率为实际为正样本中,预测为正样本的概率,因此精度高低代表的是网络模型预测能力的好坏,而召回率决定着模型是否能找出全部的正样本。在目标检测任务中常用AP(Average Precision)和mAP(mean Average Precision)当作精度指标。AP是不同精确率和召回率所围成曲线的面积,一般情况下,AP值越高,分类器的性能越好;mAP是所有类别AP的均值,计算方法如下:
(12)
(13)
式中,n为目标的类别数。在本文中,设定的检测阈值即iou为0.5,当检测框与真实框的重叠区域超过50%时,就认为该检测框正确。
2.2 数据集
本文对输电线路的关键部件及缺陷进行研究,主要检测目标为绝缘子、绝缘子灼伤、绝缘子破损、均压环、均压环移位以及防震锤。
2.3 实验环境
本研究在Windows 10系统中采用Pytorch深度学习框架搭建网络,Python版本:3.7.10;CPU:Inter(R)Core(TM)i7-11700K@3.60@Hz;GPU:NVIDIA GeForce RTX 3070,同时实验设置的输入图片尺寸为640 pixel×640 pixel,整个训练过程为250轮,采用SGD优化算法对网络模型的权值进行更新优化,权重衰减系数为5×e-5。
2.4 检测结果与分析
为验证所提优化YOLOX算法的检测效果,本文设置了YOLOX,YOLOX_A(区域特征融合),YOLOX_B(区域特征融合+CA模块),YOLOX_C(区域特征融合+CA模块+优化损失函数)之间的多组消融实验,取每种算法模型的最好训练权重进行测试,结果如表1所示。
表1 消融实验结果Tab.1 Ablation experiment results 单位:%
YOLOX_A相比于YOLOX,从87.07%提升至89%,mAP YOLOX_B在YOLOX_A的基础上,添加CA模块,mAP提升至89.99%,而YOLOX_C同时采用3种策略,mAP高达90.71%,从YOLOX到YOLOX_C,每种算法模型的mAP均有提高,证明本文所述优化方法的合理性。
YOLOX_B算法中,采用了添加CA注意力机制的策略,CA模块相比于SE-Net,能够将空间信息融入通道中,有利于更加精准地定位感兴趣区域,而CBAM模块中采用通道注意力机制和空间注意力机制相融合的方法来获得位置信息,但是该空间注意力机制捕获的位置特征不够全局化,为了验证所述内容的准确性,在YOLOX_A算法中分别添加SE-Net,CBAM以及CA模块(YOLOX_C),并在测试数据集上进行测试,结果如表2所示,mAP最高为添加CA模块的YOLOX_A,证明所述方法的有效性。
表2 不同注意力机制检测结果Tab.2 Detection results of different attentation mechanism 单位:%
本文将改进的方法与原YOLOX算法进行对比的同时,也与现阶段主流的基于深度学习的目标检测算法进行了mAP比较,同时考虑到工业中的输电线路部件及缺陷检测不仅仅需要高精度,而且需要快速度,因此本文在检测速度方面也与现阶段的主流检测算法针对检测每一张图片所耗用的时间进行了对比,结果如表3所示。
表3 不同算法检测结果Tab.3 Detection results of different algorithms
在一系列优秀目标检测算法中,本文所提算法在精度上表现最为优异,mAP达到90.71%,在检测速度方面,表现最为优异的YOLOv5算法检测单张图像仅需10.37 ms。本文所提算法,在网络结构上进行了针对性的改进,算法模型更加复杂,难免会牺牲时间成本,但是检测单张图像也仅仅消耗13.42 ms,远快于实时目标检测中所要求的33 ms指标。
为更加直观了解各算法模型的识别能力,对其检测结果进行可视化,如图7所示。
图7 不同算法可视化结果Fig.7 Visualization results of different algorithms
从可视化结果可以看出,本文所提算法相比于优化之前的YOLOX算法,对密集小目标的检测效果更好,其余算法中,YOLOX和YOLOv5均有着不同程度的漏检,YOLOv4和YOLOv3算法,检测效果较差,而属于两阶段的Faster-RCNN算法,漏检现象虽较少,但存在错检,同一物体在相同情况下被多次检测。
2.5 泛化能力验证
对于输电线路的检测,可能面临着许多客观条件干扰,比如摄像头抖动导致的图像模糊、光线过强导致图像曝光度过高,因此本文将这些客观因素考虑在内,检测伴有干扰因素的图像并可视化,验证算法的泛化能力。曝光严重状态和图像模糊状态下的检测结果如图8和图9所示。
图8 曝光严重状态下检测结果Fig.8 Detection results under severe exposure
图9 图像模糊状态下检测结果Fig.9 Detection results of fuzzy image
由图8和图9可以看出,在曝光严重以及图像模糊的客观因素干扰下,对于目标的检测,本文所提算法具有稳定的表现,而其余算法均有着不同程度的漏检及错检,比如YOLOX在曝光严重状态下,将均压环移位误检成均压环,在图像模糊状态下,存在绝缘子损伤的漏检。
输电线路中部件及其缺陷的检测也面临着不同环境的干扰,比如大雾天气以及傍晚光线欠佳等,考虑到这些,本文对雾天、傍晚光线不良以及正常环境下的图像样本进行检测,其可视化结果如图10~图12所示。
图10 雾天干扰状态下检测结果Fig.10 Detection results in foggy interference
图11 光线不良状态下检测结果Fig.11 Detection results in poor light condition
图12 正常状态下检测结果Fig.12 Detection results in normal
由图10~图12可以看出,本文所提算法在不同环境下均展现出了优秀的识别能力,而其他算法识别表现欠佳,如YOLOX在3种环境下均出现了漏检或错检,YOLOv5在光线不良状态下对于较小目标存在严重的漏检。
在同一环境下,神经网络对不同类别目标的检测效果也能很好地体现模型的性能,不同算法在同一环境下的各缺陷识别效果如图13所示。可以看出,所提算法对于不同的目标都能够起到较优秀的识别效果,而YOLOX算法漏检了防震锤这一目标,YOLOv5和Faster-RCNN等均出现了不同程度的错检。
图13 同一环境下不同缺陷的检测结果Fig.13 Detection results of different defects in the same environment
为了进一步验证算法的泛化能力,将本文所述算法对收集到的来自另一地区的输电线路目标进行检测,其可视化结果如图14所示。
图14 另一地区目标的识别情况Fig.14 Identification of targets in other area
由图14可以看出,所提算法的表现依然优秀,没有出现任何的漏错检情况,YOLOv4表现最差,没有检测出任何目标,其余算法均漏检了防震锤这一目标,同时Faster-RCNN对于较密集目标的检测效果较差,同一目标被多次检测的情况较严重,再次证明了本文所述算法具有很好的泛化能力。
3 结束语
针对输电线路关键部位及其缺陷开展目标检测,本文以最新的算法模型YOLOX为基准,通过区域特征融合,以增强特征图的表达能力;添加CA模块,以提高感兴趣对象的定位准度;分类处理回归损失,以加大样本的损失占比,优化后YOLOX算法的mAP相比于基准算法,提升了3.64%,证明了本文所提算法的有效性。针对复杂环境下的目标,优化后的算法也展现出了优秀的性能,证明了所提算法具有一定的泛化能力。
本文对于输电线路关键部位及其缺陷检测的mAP,虽然能够达到90.71%,但是均压环移位程度的不明显加上无人机拍摄目标图像时的角度存在差异,使得均压环和均压环移位2类目标的AP依旧不高,同时,所提算法检测单张图像需要耗时13.42 ms,而检测速度最快的YOLOv5算法仅需10.37 ms,二者虽然均能达到实时检测,但还是存在一定差距。因此,下一阶段主要针对这2个方面进行优化。