基于旋转框定位的绝缘子污秽检测算法

2023-11-20 10:58王新良纪昂志李自强
计算机工程与应用 2023年21期
关键词:锚框污秽绝缘子

王新良,纪昂志,李自强

1.河南理工大学 物理与电子信息学院, 河南 焦作 454003

2.许继电气股份有限公司,河南 许昌 461000

输电线路巡检正朝着智能化、无人化的方向发展。作为输电线路中的重要部件之一,绝缘子的正常状态是保证输电线路稳定运行的重要一环。但由于输电杆塔大多架设在室外,绝缘子不可避免地会受到恶劣天气及环境的影响,使其表面积累污秽,提升了发生闪络的几率,对输电线路带来了极大的隐患。传统的绝缘子污秽巡检需要运维人员登上输电杆塔对其进行检测,不仅具有危险性而且效率较低。因此准确高效地识别并定位输电线路中的污秽绝缘子,对于输电杆塔的巡检以及矿区电力系统的安全运行具有重要意义。

针对绝缘子不同的缺陷有不同的检测方式,对于绝缘子污秽检测,一些研究通过提取绝缘子的特殊特征对其进行识别。文献[1]利用绝缘子的高光谱图像对绝缘子污秽识别。文献[2]使用红外图像对绝缘子表面的污秽度进行表征。但这些方法都容易受到环境影响,具有一定的局限性。随着近年来无人机技术与人工智能算法的发展,通过无人机远程将图像传回再使用深度学习算法进行识别成为了一种十分有效的巡检方式[3-4]。然而基于深度学习的绝缘子识别通常采用通用目标检测来识别绝缘子,由于绝缘子长宽比较大,且在图中的方向存在不确定性,使用传统的水平框对绝缘子进行检测并不能十分准确表达绝缘子的位置信息,且使用水平框对绝缘子框选时的范围较大,容易出现相邻绝缘子由于重合面积过大而被筛除掉的现象。为了精确定位并识别绝缘子,有研究使用旋转目标检测对绝缘子进行识别[5],加入角度信息的旋转目标检测能够更精确地体现绝缘子在图中的位置,但使用旋转目标检测算法进一步对绝缘子的污秽现象进行研究的较少。为能够提升对绝缘子污秽的检测效率,将采用旋转目标检测算法对污秽绝缘子进行识别与定位。

在旋转目标检测问题上,也有较多的算法被提出。一些算法在二阶段网络的基础上进行改进,得到带有旋转框的检测结果[6-8]。也有一些算法在一阶段网络上改进:文献[9]提出将物体角度预测视为分类问题并设计了环形平滑标签以解决边界问题。文献[10-12]在解决检测中的特征不对齐问题。文献[13-15]使用无锚框检测旋转目标。同时有研究通过将旋转框的分布信息转换为高斯分布再计算损失[16-18],提升了旋转目标检测的准确度。

R3Det[10]是基于RetinaNet[19]的端到端单阶段旋转目标检测算法,该算法针对旋转目标检测任务中宽高比大、排列密集和方向任意的三大难题,通过级联多个分类和回归子网络,并设计特征精炼模块,逐步细化特征,解决特征不对齐的问题,在DOTA[20]等常用遥感数据集上获得了较为准确的旋转位置回归与分类估计。但R3Det 的主干网络与特征融合网络对细粒度特征提取效果不佳;同时计算量较大,不利于实时检测。针对以上问题,基于架空输电线路实际环境中污秽绝缘子的特性对R3Det 算法进行改进,通过引入更适用于绝缘子污秽检测的主干网络ConvNeXt[21]与特征融合网络PANet[22],并对检测头网络进行改进,引入KLD[17]损失函数,得到能够准确识别污秽绝缘子的单阶段旋转目标检测算法。

1 改进R3Det模型的特征提取与融合

在R3Det 的基础上进一步改进,提出的算法总体结构如图1 所示,主要由主干网络、特征融合网络以及对齐检测头三部分组成。

图1 改进R3Det的绝缘子污秽检测模型结构图Fig.1 Structure diagram of improved R3Det insulator contamination detection model

1.1 ConvNeXt主干网络的引入

为提升网络对污秽绝缘子细粒度特征的提取能力,将原始网络中作为主干网络的ResNet[23]替换为ConvNeXt[21]。ConvNeXt 借鉴了目标检测领域中性能较好的Swin Transformer[24]的结构和策略,在相同的FLOPs(floating point operations,浮点运算数)下,ConvNeXt拥有更高的准确率。其网络结构图如图2 所示,图中k表示卷积核的大小,s表示卷积核的步长,n表示block的堆叠次数。ConvNeXt 在每一个block 的最后都使用了一层layer scale,即在每一层输出的特征上额外乘上一层可学习的参数,使得模型能够更侧重需要关注的特征,从而提升模型的细粒度特征提取能力;且采用卷积核大小为7×7 的深度可分离卷积以增大模型的感受野同时获得更多的全局信息;此外使用更少的激活函数和批标准化等非线性投影来增强特征在网络中的传递效率,有效地提升了网络的表达能力。

图2 ConvNeXt结构图Fig.2 Architecture of ConvNeXt

根据block 堆叠数量的多少,ConvNeXt 有T/S/B/L四种不同的版本,为了保证提升模型性能的同时不引入过多的参数量与计算量,采用ConvNeXt-T,其四个bolck的堆叠数为(3,3,9,3),各个bolck 输出通道数为(96,192,384,768)。

1.2 多路径特征聚合网络的引入

在特征融合网络中,将FPN[25](feature parymid network,特征金字塔)替换为PANet[22](path aggregation network,路径聚合网络),如图1 中的特征融合网络所示,与原始网络中的FPN只进行自顶而下的特征融合不同的是,PANet 额外增加了一条自底而上的融合路径,这样使得各个尺度的特征都能融合来自顶层的语义信息和来自底层的位置信息,使得各个尺度的特征有更丰富的表达能力。同时为了尽可能得到更多尺度的预测结果,除了主干网络生成的三个尺度特征进行融合外,还会从主干网络最后一层特征连续下采样两次生成额外的两个尺度的特征,作为检测头网络的输入特征。

2 改进R3Det模型的检测头网络

2.1 旋转框表示方法

使用水平框对绝缘子进行框选存在真实目标与标注框的贴合度较差的问题。如图3 所示的使用旋转框与水平框对绝缘子进行框选的对比,在对距离比较近的两个绝缘子目标使用水平框进行框选时,标注框并不能反映绝缘子的真实尺寸;且由于两个标注框的重合面积过大,若使用通用的水平框对其进行检测,在进行非极大值抑制时,当同属一个类别,容易出现两个框处于同一区域从而只保留得分最高的框的现象。而使用旋转框则可以较为精确地描述绝缘子的形状与位置信息,并且可以避免出现重合面积过大而被筛除掉的现象。

图3 水平框与旋转框的对比Fig.3 Comparison between horizontal box and rotating box

图4 角度定义示意图Fig.4 Structural diagram of angle definition

2.2 检测头网络的改进

在模型的检测头网络中,特征采用固定感受野的网格方式对整张图像进行表征,是轴对齐的,因此对于非轴对齐、带有角度偏移的目标来说会存在分类与回归特征不对齐的问题,由特征生成的锚框一定程度上并不能准确地表示有角度偏移的目标,分类分数也存在不准确性。在R3Det中采用了双线性插值的方式来缓解上述问题,本文通过引入对齐卷积[11(]alignment convolution,AC),同时对分类子分支做出改进,提出对齐检测头(alignment detection head,ADH),在解决特征不对齐问题的同时,进一步提升检测性能。

对齐卷积由标准卷积改进而来,但与标准卷积不同的是,对齐卷积在每一个默认采样位置上额外增加了一个偏移量,如图5 所示,该偏移量表示得到对齐特征所需的采样点与标准卷积默认采样点之间的偏移。若定义各个点的特征在特征图上的位置为P={0 ,1,…,H-1} ×{0,1,…,W-1} ,标准卷积的采样点为R={(-1,-1),(-1,0),…,(0,1),(1,1)},对每个位置p∈P的在卷积时各个采样点上的偏移量O用公式表示为:

图5 对齐卷积示意图Fig.5 Structural diagram of alignment convolution

在对旋转框类型的标注框进行描述时,除了需要包含水平框包含的中心点坐标以及框的长度和宽度信息以外,还需要额外包含角度偏移信息,本文采用处理图像的OpenCV 包中的角度定义法对旋转框角度的描述。具体表示如图4所示,在图中不同的方向的标注框可以用图4中的四种情况概括,角度θ的范围始终介于(0°,90°]之间,h则表示与X轴之间的夹角小于90°的边,w表示另外的一条边。

从公式(1)可以看出,该偏移主要根据第一阶段生成的锚框位置信息与默认生成的位置信息之间的差异来表征,生成的(x,y)、(w,h)和θ是以原图作为参考系的信息,因此将其除以卷积核的大小,经过旋转矩阵将该向量旋转θ°,再除以特征图的每一格所代表的步长,即可得到该框所对应于特征图中的位置,再减去特征图中的默认位置,即可得到所需的偏移量。从而对齐卷积使用该偏移量完成对齐特征的采样。

加入对齐卷积的ADH结构如图6所示,图中c表示卷积层层数,k表示卷积核的大小。ADH 通过级联两个阶段的回归与分类子网络并在其中通过对齐卷积解决特征不对齐问题。在第一阶段将输入的特征先经过分类和回归子网络输出未对齐的锚框回归和分类分数,并经过过滤保留每个位置分数最高的锚框,再通过该锚框的偏移生成对齐卷积计算所需的偏移量,利用偏移量对输入的特征进行对齐卷积操作生成对齐特征从而完成特征的重构。使用的对齐卷积可以看做一层卷积层,不会带来过多的参数与计算量,同时相较于R3Det 中的检测头网络,ADH 没有对特征使用双向卷积的重新映射,而是直接对输入特征进行重构,减少特征在传递时的损耗,也减少了双向卷积部分的计算量与参数量。

图6 对齐检测头结构示意图Fig.6 Structural diagram of alignment detection head

经过对齐重构的特征在第二阶段再次经过分类和回归子网络生成精确的分类分数与位置回归。与在第一阶段使用的积核大小为3×3的四层卷积层不同的是,在第二阶段中的分类分支使用卷积核大小为1×1 的四层卷积层,这是由于上层特征代表了一定感受野范围的语义信息,且第二阶段的特征是经过对齐重构的更为精确的特征,使用1×1的卷积可以减少周围信息带来的冗余,提升细粒度分类的准确性,使得网络能够对绝缘子是否污秽更具有分辨力。位置回归分支为了得到更多的位置信息,依旧都采用卷积核大小为3×3 的卷积层。同时为了防止一些高质量的锚框由于不对齐的特征生成了较低的分数,从而在第一阶段被筛除掉,进一步影响偏移量的精确性,因此在第一阶段的分类与回归子网络中使用较低的交并比阈值,在第二阶段的分类与回归子网络中使用较高的交并比阈值。

2.3 KLD损失函数的引入

采用OpenCV 定义法表示角度会在边的临界位置带来角度周期性和边的交换性问题,本来较小的损失会被描述的很大[16]。Kullback-Leibler Divergence(KLD)损失函数[17]将由(x,y,w,h,θ)表示的预测框和真实框的中心点坐标、宽、高和角度信息转换为由(μ,Σ)表示的二维高斯分布,转换过程用以下公式表示:

式中,R为旋转矩阵;S为特征值的对角线矩阵。

公式(2)将坐标点的中心点信息作为二维高斯分布的位置信息,公式(3)利用旋转矩阵将宽高以及角度信息作为二维高斯分布的尺度信息,以完成任意旋转矩形框到其二维高斯分布的映射。且转换后的二维高斯分布具有周期性和交换性,因此可以解决角度周期性和边的交换性问题。故回归损失就可以使用真实框与生成框在二维高斯分布中的距离表示,KLD 损失函数使用Kullback-Leibler距离对其进行描述。引入KLD损失函数后的位置回归损失用公式表示为:

式中,D表示两个高斯分布之间的Kullback-Leibler 距离;μt、Σt表示真实框转换后的高斯分布,μp、Σp表示预测框转换后的高斯分布;Lreg表示最终的回归损失,τ为调节整个损失函数的超参数。

公式(4)计算两个高斯分布之间Kullback-Leibler距离,公式(5)通过ln 函数与超参数,控制KLD 损失函数的范围,使得损失函数更加平滑,避免损失传播过程中梯度爆炸。KLD 损失函数具备尺度不变性,同样的目标在不同尺度下的损失不变,减少了预测框的大小不同对损失带来的影响;此外,KLD损失函数在长宽比变大时求导会更注重角度的优化,这也在一定程度上减小长宽比大的目标受角度差过大带来的影响。因此相比较于其他损失函数,KLD 损失函数更适合对具有长宽比较大特点的污秽绝缘子检测,且能够提供较高精度的检测结果。

整体的损失函数主要由对齐检测头的两个阶段的损失组成,其中分类子分支使用Focal loss[19]函数,以解决生成框正负样本不均衡的问题,回归子分支使用KLD损失函数。用公式表示为:

式中,N1和N2表示第一阶段和第二阶段的生成锚框的数量;λ1和λ2分别为平衡分类损失与回归损失以及两个阶段权重的超参数,默认为1;Lcls和Lreg分别为计算分类与回归的函数;p1n和l1n为第一阶段生成锚框的类别信息和位置信息;p2n和l2n为第二阶段生成锚框的类别信息和位置信息;tn和gn为真实框的类别信息和位置信息;obj1n和obj2n分别为用二进制表示的前景、背景信息,如结果为前景则为1,否则为0。

3 实验过程与结果分析

3.1 数据集制作

基于某矿区输电公司使用无人机拍摄的输电线路照片,筛选出大约1 000张含有绝缘子的图像,由于绝缘子在图像中的位置并不会影响检测效率,使用Photoshop随机裁切绝缘子并随机改变尺寸大小将数据集扩充到了1 600 张;进一步通过随机翻转以及随机调整对比度和亮度,最终得到包含复合类型绝缘子和瓷质绝缘子在内的图像共2 300 张。图像的尺寸集中于1 100×800 附近。按照8∶1∶1的比例将数据集划分为训练集、验证集与测试集。

使用可以标注旋转框信息的labelImg 对所有图像进行标注,结果为包含真实框中心点坐标、宽、高和角度信息的xml类型文件,再将其转换为DOTA类型的含有真实框四个角点坐标信息的txt文件作为输入。

标注结果分布见图7所示,图中横纵坐标分别表示标注框的宽度和高度。由图可知标注的绝缘子较为均匀地分布在靠近两条坐标轴的区域,说明了绝缘子目标尺寸的多样性,也反应了绝缘子目标长宽比较大的特点。经统计,共标注目标4 250 个,其中污秽绝缘子(Dust)目标1 364 个,非污秽绝缘子(Not dust)目标2 886个。

图7 标注结果分布图Fig.7 Annotation result distribution map

3.2 实验环境

所有对比实验均在CPU 为Intel®Xeon®E5-2680 v4 2.40 GHz和GPU为Nvidia GeForce RTX 3080 10 GB的硬件配置,以及Ubuntu18.04 的软件环境下进行。所有算法均基于深度学习框架Pytorch搭建。

模型训练采用随机梯度下降算法(stochastic gradient descent,SGD)。训练的参数设置为:批量设置为2;输入图像尺寸设置为1 024×1 024;最大迭代数设置为100;动量设置为0.9;权重衰减系数设置为0.000 1;初始学习率设置为0.001 25,采用warm up策略调整学习率,并分别在第27、33、50 次迭代衰减学习率;主干网使用ImageNet-1k预训练模型作为初始值。此外,在公式(5)中控制KLD损失平滑程度的超参数τ按照默认设置为了1;公式(6)中平衡分类损失与回归损失的超参数λ1均设置为1,同时控制两个阶段权重的超参数λ2也设置为1。ADH 中第一阶段交并比阈值设置为0.5,第二阶段设置为0.6。

3.3 实验结果分析

在对实验结果进行分析使用的评价指标有:(1)平均精度均值(mean average precision,mAP),表示所有类别平均精度的均值,体现模型的性能;(2)平均精度(average precision,AP),表示检测结果中预测正确的数量占目标总体的比值;(3)浮点运算次数(floating point of operations,FLOPs)表示模型的计算量;(4)参数量(Params)表示模型的参数量。

在ADH 结构中,对使用的对齐卷积和第二阶段分类子分支使用的卷积核大小进行分析,结果见表1 所示,表中“—”表示不使用,“√”表示使用,Kernal 表示在第二阶段分类子分支使用的卷积核大小。从表中可得,相比较于原始网络中的方法,在使用了对齐卷积后,模型的计算量大幅下降,下降了19.8%,模型的参数量也有所下降,同时模型的平均精度均值出现略微提升。将第二阶段分类子分支使用的卷积核大小设置为1后,模型的计算量与参数量均下降,mAP 提升到90.3%,证明了使用较小卷积核能够更好地对绝缘子污秽进行分类。结果表明,引入的对齐卷积可以解决特征不对齐问题,提升了网络的性能,同时还能大幅降低模型的计算量。而在ADH的分类子分支使用较小尺寸的卷积核在降低计算量与参数量的同时,对绝缘子污秽的检测效果更好。

表1 对齐检测头网络消融实验Table 1 Ablation experiment of alignment detection head

此外,使用不同的初始锚框设置也会对结果带来一定的影响,表2 中是使用不同初始尺寸锚框的结果对比,表中Loss 表示使用的损失函数,Radios 表示初始锚框的长宽比,N表示初始生成的锚框数量。从表中可得,在初始锚框设置为1、0.5、2三种长宽比,每个位置共9个锚框的情况下,引入KLD损失函数后平均精度均值有所下降,这是因为,KLD损失函数对正方形的目标识别精确度较低,两个正方形转换为二维高斯分布后,无论角度相差多少,KLD 损失值都为0,但初始锚框中有1/3 都是正方形类型,这对于长宽比较高的绝缘子而言影响较大。因此将锚框长宽比为1的尺寸删除,并为了进一步降低计算量,将初始锚框设置为每个位置只生成同一尺寸的一个锚框,减少生成正方形的概率,并再次引入KLD 损失函数,最后mAP 达到90.6%。同时由于减少锚框的生成数量,模型的计算量也有所下降,但由于损失函数只对训练的过程起作用,因此引入的损失函数对模型的计算量与参数量没有影响。

表2 不同初始锚框的结果对比Table 2 Comparison of results of different initial anchor boxes

为了进一步分析各个模块对模型性能的影响,分别对各个模块进行消融实验并在计算量、参数量、平均精度均值等维度进行对比,结果见表3所示,表3中“—”表示不使用,“√”表示使用。从表中可得,相比较于原始R3Det,模型在替换主干网为ConvNeXt 以后,mAP 提升了2.1个百分点,提升主要在污秽绝缘子类别上,同时计算量和参数量有小幅度的提升,表明ConvNeXt 在相似的参数量与计算量下,其中layer scale等结构对绝缘子是否污秽的细粒度特征提取能力相较于原始网络有所提高。在引入PANet 后,mAP 与计算量、参数量均有小幅度提升,可以说明PANet 在污秽绝缘子识别中,对特征的加强和融合能力要比FPN更强。在检测头网络中,由于减少了锚框的数量并采用卷积核大小为1的卷积,计算量下降了近27.4%,参数量也同时下降。最后引入的KLD 损失函数只对训练的过程有影响,通过不同的初始锚框设置,mAP 相较于未引入提升了0.3 个百分点。相比较于原始R3Det,改进后的模型计算量下降25.2%,参数量提升4.9%,同时mAP 提升了4.9 个百分点。改进的模型在更少的计算量下,实现了更高的检测精度。

表3 改进模型各模块的消融实验Table 3 Ablation experiment of each module of improved model

使用不同的模型在自制数据集上进行实验,结果见表4所示,从表中可得,相比较于用于旋转检测的Faster R-CNN[26]的二阶段目标检测网络以及S2ANet 等一阶段目标检测网络,提出的改进模型相比较于其他网络有较高的mAP,证明本文方法对于污秽绝缘子检测的有效性。

表4 不同模型对污秽绝缘子检测结果对比Table 4 Comparison of insulator contaminated detection results using different models

图8、图9 所示为R3Det 与改进算法的检测结果对比。从图8 原始R3Det 网络的检测结果中可以看出,在图8(a)中存在旋转框与真实位置不对齐,且在遮挡情况下目标被分为两部分的现象;图8(b)中小尺度目标较多情况下,有较多的绝缘子检测结果存在偏移,且有漏检的情况;图8(c)中由于对细粒度特征提取不足,因此出现同一个目标有污秽和非污秽两个结果的重影现象。在图9所示的改进后算法的检测结果中,与原始网络相对应的图片对比,提出的模型能够解决以上的问题,在各个尺度均有较低的误检率和漏检率,且分类分数更加准确,定位更加精确,进一步体现改进的方法对污秽绝缘子检测的可行性。

图8 R3Det的检测结果Fig.8 Detection results of R3Det

图9 改进算法的检测结果Fig.9 Detection results of improved algorithm

4 结语

针对绝缘子污秽检测任务中漏检率与误检率较高的问题,提出一种单阶段旋转目标检测算法。首先针对污秽绝缘子与非污秽绝缘子的细粒度分类,采用提取特征能力更强且具有注意力的主干网ConvNeXt和特征表达能力更强的多路径特征聚合网络;再引入对齐卷积及小尺度卷积,在降低计算量的同时,解决特征不对齐问题,提升目标的分类精度;针对绝缘子长宽比较大的特点,通过使用不同初始锚框的策略并引入更高精度的KLD 损失函数,提升模型的检测性能。通过自制数据集的测试结果表明,本模型的mAP 可以达到90.6%,能够很好地完成污秽绝缘子的检测任务,模型的速度和以及定位和分类精度都具有一定的优势。但模型依旧有一些改进的空间,对细粒度特征的表达还有缺陷,同时模型的参数量与检测速度也有待进一步改进。

猜你喜欢
锚框污秽绝缘子
基于YOLOv3锚框优化的侧扫声呐图像目标检测
锚框策略匹配的SSD飞机遥感图像目标检测
基于SSD算法的轻量化仪器表盘检测算法*
基于GA-RoI Transformer的遥感图像任意方向目标检测
我不是一株草
GIS盆式绝缘子表面污秽模态分析检测方法研究
污秽绝缘子安装并联间隙的雷电击穿特性分析
基于相角差的绝缘子表面污秽受潮检测系统设计与仿真
1000kV耐张绝缘子串单片绝缘子的带电更换技术
500kV绝缘子串含零值绝缘子时的电晕放电分析