APP下载

基于改进Cascade R-CNN算法的多类型绝缘子缺陷图像联合检测

2022-02-26王红星陈玉权高小伟

电瓷避雷器 2022年1期
关键词:电弧绝缘子样本

张 欣,王红星,陈玉权,黄 郑,沈 杰,高小伟

(1.江苏方天电力技术有限公司,南京 211102;2.北京御航智能科技有限公司,北京 100085)

0 引言

绝缘子是架空输电线路中不可或缺的部件,在输电线路中起到防止电流接地以及支撑导线的双重作用。一些常见的绝缘子缺陷如绝缘子爆片、绝缘子电弧烧伤、绝缘子伞裙破损等会引起绝缘子绝缘的失效,从而损害输电线路的使用和运行寿命。因此对绝缘子进行缺陷检测是输电线路巡检过程中必不可少的环节,但巡检图像中绝缘子区域目标背景较为复杂且缺陷形状多变、大小不一,这些缺陷特性都为绝缘子缺陷检测研究带来一定挑战。

随着无人机技术的成熟,输电线路无人机巡检技术逐渐代替人工巡检技术[1],将会产生海量的巡检图,尤其在杆塔精细化中一些关键部位需要进行缺陷检测。目前,在绝缘子串检测方面已有一些研究成果,如基于方向梯度直方图检测算法、红外成像法、支持向量机方法以及深度学习算法在绝缘子串检测的应用[2]。其中,无人机巡检 + AI方案的提出减少了人为干扰因素,深度学习算法的应用使得电力巡检变成一件智能且便捷的事情[3]。赵振兵等人提出了利用区域全卷积网络模型对巡检图像中的绝缘子进行检测,在 R-FCN 网络中引入 ASDN(Adversarial Spatial Dropout Network)解决了绝缘子部分遮挡难以检测的问题[4]。陈春玲等人提出Faster R-CNN+VGGNet 网络方法实现了复杂背景下的绝缘子目标的高精度识别[5]。Jiaming Han 等人采用级联模型方法来检测绝缘子爆片,首先定位绝缘子串的位置,运用YOLO-v3微型网络检测定位区域中的绝缘子爆片缺陷,实验证明该方法非常有效,且YOLO-v3微型网络节省了检测时间[6]。潘龙等人利用深度卷积神经网络算法对复合绝缘子实现了憎水性判别,提高了检测效率和准确性[7]。Zenan Ling等人利用两个模块解决了低信噪比图像中绝缘子爆片的问题,首先基于Faster R-CNN进行目标检测,然后将检测结果利用Unet网络实现分类,实验结果表明此方法非常有效[8]。

上述对绝缘子检测相关工作做了很多探索,但针对多类型绝缘子缺陷检测的研究较少,目前绝缘子识别与缺陷检测研究面临着以下挑战:

1)缺少用于无人机巡检图像中绝缘子缺陷检测的公开可用数据集及标准的标注方案。

2)现有算法大多集中于绝缘子爆片这一类缺陷进行的算法研究,但在实际工作中绝缘子电弧烧伤、绝缘子伞裙破损等其他缺陷也会造成绝缘子绝缘的失效,因此需要对绝缘子多种缺陷目标检测,增加了检测难度。

3)绝缘子材质复杂多变导致缺陷形态多变、大小不一增加了检测复杂度。

针对以上问题,为有效实现无人机巡检图像中多类绝缘子缺陷的检测,收集了足够的绝缘子巡检图像,探索出了可靠的绝缘子缺陷标注方式,建立标准的绝缘子缺陷数据集并提出使用Cascade R-CNN[9]为基础算法,通过设定不同的IoU(Intersection over Union)阈值利用Cascade R-CNN训练了多级联的检测器,可以使网络更加适应各种大小不一绝缘子缺陷目标,从而提升检测精度。此外,在原有网络基础上进行了方法的改进,最终联合绝缘子串模型实现了缺陷检测。经过实验对比测试,笔者提出的方法能够有效的识别各类绝缘子缺陷。

1 绝缘子缺陷检测原理

相较传统分类方法(如支持向量机方法、决策树分类等)深度学习方法是机器学习中的热点方向,作为一种以模拟人脑映射为原理的图像处理算法它具有强大的自学习能力、容错能力,尤其在目标识别领域表现突出,如人脸识别、自动驾驶等,这些对于将深度模型应用到绝缘子检测上有着很好的借鉴作用。

1.1 建立绝缘子缺陷数据集

一般情况下一个具有较好泛化能力的深度模型必然需要依赖于一定数量的样本数据。场景丰富、目标形态多样的训练数据能够使得深度网络在训练中得到更加准确的参数。考虑到目前缺少公开可用的电力数据集,需要构建专业的巡检图像绝缘子缺陷数据集。

根据绝缘子受损类型及损伤特点将绝缘子数据中缺陷分为绝缘子爆片、绝缘子电弧烧伤、绝缘子伞裙破损3类。示意图见图1,标注方式需遵循以下规则:

图1 绝缘子缺陷Fig.1 The defect of insulator

1)目标需要完全包括在标注框内部。

2)目标框尽量少地包含除缺陷外的背景干扰。

3)摒弃不确定目标(模糊目标)。

训练样本挑选过程中尽量筛掉一些质量不佳(如模糊、噪音严重等)的巡检图片。最终确定绝缘子缺陷训练集中绝缘子爆片数量为3 120张、绝缘子电弧烧伤数量588张、绝缘子伞裙破损537张,测试集中绝缘子爆片数量为614张、绝缘子电弧烧伤数量111张、绝缘子伞裙破损128张,详见表1。由于3类样本数量不均衡,会导致训练模型泛化能力差且容易出现过拟合,为使网络更加稳健缺陷数据采用数据增强的方式对烧伤与破损数据扩充。在增加样本复杂度方面,使用调整图片亮度、图像裁剪的方式进行了数据增强,使网络能足够多地学习到目标变化中的深层特征。

表1 数据集Table 1 Data set

1.2 改进的Cascade R-CNN算法

众所周知,深度神经网络主要任务为目标分类与目标定位。在训练时首先提取候选目标,然后将候选目标回归到对应的真实标签上进行分类,在这一关键步骤中网络根据IoU阈值来确定候选目标是否合格,因此IoU阈值的选取决定了检测目标的质量。经过对大量的输电线路巡检图像进行标注,发现图像中缺陷形态大小比较多变,尤其是一些电弧烧伤目标在形态颜色方面变化都较大,而且图像中还包含背景干扰影响绝缘子缺陷检测准确性。因此选取Cascade R-CNN网络作为基础网络,可通过设定不同的IoU阈值,训练多个级联的检测器,上个网络输出用于下一个网络输入,通过网络间的级联减少了缺陷目标多变对网络造成的影响,使得输出结果准确度逐步提升。

据统计,绝缘子爆片目标面积大小约为同图片中电弧与烧伤目标的10倍,不同分辨率图片中的同类目标的大小也可大致分为大尺寸,中尺寸和小尺寸3类。为解决多尺度目标检测问题,首先将损失函数更改为Focal loss,并引入RoI Align方法以解决小目标的漏检,在此基础上训练了绝缘子串模型,将绝缘子串的检测区域设置为RoI供下一个检测分支使用,以消除巡检图像中的大多数背景干扰。除此之外,在网络中还引入了FPN结构,在不增加原有模型计算量的情况下,大幅度提升了较小缺陷目标检测的性能[10]。

1.2.1 损失函数的改进

在实际训练工作中经常会遇到这样一个问题:正负样本比例极度不平衡的,有时正负样本接近500:1,而且困难样本在负样本中占比极少。在这种情况下就会导致另一个问题:梯度完全由简易样本控制,虽然loss很低,但由于简易样本比重大,依旧对loss有很大贡献,从而导致困难样本收敛不够好。

基于标准的交叉熵损失函数,Focal loss的解决方法是赋予一个权重因子∂给正样本的loss,负样本的权重为1-∂,并将1-pt作为样本的损失权重就能辨别简易样本/困难样本,以及对比例失衡现象起到抑制作用[11]。Focal Loss的计算如下:

FL(pt)=-∂t(1-pt)γlog(pt)

(1)

式中pt是不同类别的分类概率,∂t和γ都是常数不参与训练(0≤∂t≤1,γ>0)。从表达式可以看出:

1)在前景类或者是背景类中pt值增大,权重(1-pt)γ减小,也就是说简易样本能够通过权重进行控制。

2)∂t用于调节正负样本比例,若前景类用∂t表示,背景类则表示为1-∂t。

3)γ和∂t两者的最优值彼此作用,因此两者要联合调整评估精准度。

1.2.2 加入RoIAlign

在网络中加入ROI Align层,ROI Align 是在Mask-RCNN中提出的一种区域特征聚集方式,对ROI Pooling操作中两次量化造成的区域不匹配问题进行了改进[12]。首先取消了两次离散量化操作,为了将特征聚集操作连续化在过程中使用双线性插值,从而使得图像像素值精确到了浮点位。除此之外,ROI Align在两步量化中不需要对像素值全部计算,具体操作如下:

1)遍历所有RoI区域,保持浮点数边界不做量化。

2)将RoI区域分割成m×m个等大子区域,每个等大子区域的边界也不做数量的评定。

3)在每个等大子区域中计算特定4个坐标位置,用双线性插值方式算出这4个坐标值,然后进行max-pooling操作。

在ROIAlign反向传播中,xi×(r,j)是坐标为浮点数的采样点(由前向传播时得到),在池化前的特征图中,与xi×(r,j)横纵坐标相差一个像素内的所有点(即双线性插值时特征图上的四个点)需要接受与之对应点yrj的回传梯度,所以ROI Align的反向传播公式如下:

(2)

式中,yrj表示池化后的第r个候选区域的第j个点,L是池化前的特征图,xi表示L上的像素点,i*(r,j)表示点yrj像素值的来源;Δw、Δh分别为xi*(r,j)与xi纵坐标和横坐标的差,d(i,i*(r,j))表示两个像素间的间隔长度。

1.2.3 联合绝缘子串模型检测

尽管从之前的文献中了解到深度网络可以解决大部分变化因素的影响从而识别出缺陷目标,但实际场景中绝大多数绝缘子图像的背景复杂度高,实现多类别绝缘子缺陷目标检测时易将背景误检,且存在部分巡检图像尺寸大小超过5 000×5 000,使得目标在检测时经过网络压缩成为了极小目标,易被漏掉。针对这一问题,通过Cascade R-CNN训练绝缘子串模型,将绝缘子串的检测区域设置为RoI,最后检测RoI区域中的绝缘子缺陷。经实践证实,这种方法可以消除航拍图像中的大多数背景干扰,并且通过绝缘子串的提取步骤避免了将RoI区域压缩为极小目标的操作,从而极大程度上提升了召回率。

在Cascade R-CNN基础网络中将原有的交叉熵损失函数更改为Focal loss,然后引入了RoI Align层以解决小目标的漏检,并利用高精度绝缘子串模型进行联合检测,最终形成的新网络如图2。

图2 改进的网络结构Fig.2 The structure of improved network

2 实验及分析

实验评估工作深度学习框架为pytorch,硬件环境为Tesla V100-DGX WORK STATION,里面搭载了四块NVIDIA Tesla V100 Tensor Core GPU。所提出的网络使用在ImageNet数据集上经过预训练的101层的ResNeXt 作为骨干网络,而其他层的参数则是随机初始化的,训练过程中三次判断正负样本的IoU阈值分别设为0.5、0.6、0.7,输入图像训练尺寸为((1 333,800),(2 000,1 200)),学习率初始化为0.02,经多次迭代后学习率会逐渐降低,得到最终的模型,并在测试集上进行测试。

为了验证所提出网络的有效性和鲁棒性,将其与Faster-rcnn网络[]进行了比较,共训练了4组实验:

1)基于Faster R-CNN网络的绝缘子爆片、绝缘子电弧烧伤、绝缘子伞裙破损缺陷模型训练与识别。

2)基于Cascade R-CNN网络的绝缘子爆片、绝缘子电弧烧伤、绝缘子伞裙破损缺陷模型训练与识别。

3)在Cascade R-CNN网络引入损失函数Focal loss及加入RoIAlign进行缺陷训练与识别。

4)绝缘子串模型训练及联合绝缘子串模型进行缺陷识别。

为了公正地评价网络,不同实验中训练迭代次数均保持一致,然后在制定的标准测试集进行了测试。在训练阶段,将网络的最大迭代设置为30个epoch。

在数据集制作阶段直接仿照了Pascal VOC数据集格式[14],在VOC数据集中评价指标主要运用AP值、召回率 (Recall)与准确率(Precision)来进行表示,在本实验中也使用了AP值、召回率 (Recall)与准确率(Precision)来测试模型性能。AP值越高,代表检测结果越准确。具体来说,可以按以下方式计算召回率与准确率:

Precision=TP/(TP+FP)

(3)

Recall=TP/(TP+FN)

(4)

式中,TP(True Positives)表示缺陷目标被正确分类的数量;FP表示背景干扰被错误认为是缺陷目标的数量;FN(False Negatives)表示缺陷目标被漏检的数量。

通过表2可以看出,与常规FasterR-CNN方法相比,本研究提出的Cascade R-CNN方法在绝缘子爆片与绝缘子电弧烧伤两类中准确率和召回率指标都有提高,虽在伞裙破损类别表现稍差,但总体mAP还是有明显提升,基于Cascade R-CNN方法改进损失函数为Focal loss并加入RoIAlign层之后,检出率大幅度上升,并且当加入高召回率的绝缘子串模型进行联合检测时绝缘子电弧烧伤缺陷精度上升非常明显。具体分析发现,本文方法对绝缘子爆片误识别率很低,虽同时进行了多类绝缘子缺陷识别,但经测试数据检测其精度仍能达到0.904,绝缘子伞裙破损缺陷精度较低但recall值却高出很多,电弧烧伤类别也具有较高的缺陷检出率,平均AP值可达到0.744,这说明本文方法对多类型绝缘子缺陷检出率有了较大的提升。

表2 不同方法在测试集上的表现Table 2 Performance of different methods on the test set

在模型测试过程中选择了一些具有不同场景的典型缺陷图像用以评估算法性能,见图3至图7。①缺陷目标极小的场景。图3中绝缘子爆片目标极小,即使人眼不仔细观察也会被漏检,通过检测结果对比发现加入绝缘子串模型联合检测能有效地消除部分极小目标漏检率,增加召回率。②检测图像质量不佳。由于飞行环境的局限性,某些采集的图像质量不如预期的好,如图5光照条件差图像极不清晰导致图像对电弧烧伤目标的漏检,但通过实验对比发现改进算法也能有效的减少这部分情况的漏检。③目标误检也是一种常见的现象。如图4与图6分别展示了绝缘子爆片缺陷和绝缘子电弧烧伤缺陷的误检对比情况,改进算法之后很大程度上消除了误检。④图7主要是对绝缘子伞裙破损检测结果进行的展示。绝缘子伞裙破损类别在检测中难度较大,主要表现为绝缘子伞裙材质不同(分为陶瓷绝缘子、玻璃绝缘子、复合绝缘子)导致不同材质伞裙破损缺陷在外观形态方面差异较大,经过算法改进之后大部分伞裙破损能够被正确识别出来。综合以上得出结论,本方法实现了多类绝缘子缺陷目标检测,并且有效的提升了检出率,实验证实比Faster R-CNN方法更准确,更可靠。

图3 极小缺陷目标检测结果对比Fig.3 Comparison of detection results of extremely small defects

图4 极易误检目标检测结果对比Fig.4 Comparison of detection results of easily mis-detected targets

图5 极不清晰图片目标检测结果对比Fig.5 Comparison of target detection results in unclear pictures

图6 多目标检测结果对比Fig.6 Comparison of multi-target detection results

图7 绝缘子伞裙破损检测结果对比Fig.7 Comparison of detection results of insulators with sheds damaged

3 结论与展望

提出了一种改进的Cascade R-CNN算法,能够对输电线路绝缘子多种缺陷进行自动识别定位。经巡检图像实践测试所提方法有效的实现了3类绝缘子缺陷检测并且提升了精度,可得以下结论:

1)利用无人机巡检数据按照Pascal VOC数据格式制定了标准的绝缘子缺陷标注规则,构建了包含绝缘子爆片、绝缘子电弧烧伤、绝缘子伞裙破损多类型缺陷数据集,测试表明本文标注方法能够增强缺陷数据特征并使其准确地识别出来。

2)基于Cascade R-CNN算法通过将损失函数更改为Focalloss解决了小目标漏检现象,之后加入了RoI Align方法,并通过联合绝缘子串模型提取绝缘子串区域并设置为RoI,用于联合检测多类绝缘子缺陷。实验表明,本研究所提的算法能够有效地检测出3类绝缘子缺陷目标,mAP可达到0.744。

3)对实验结果进行了不同场景的测试与分析。经对比分析,本研究所提算法针对目标较小、图像质量不佳等情形下,比Faster R-CNN方法具有更好的缺陷检出率。

本方法有效的实现了输电线路巡检图像多类型绝缘子缺陷的检测,经实验证实,所提算法在3类绝缘子缺陷检测中表现良好。但由于高压输电线路中绝缘子材质不同的变化,多类型绝缘子缺陷自动检测仍是一项艰巨的任务,尤其在绝缘子伞裙破损类别仍有很大的进步空间。此外,实验过程中收集的训练样本极大不均衡,尤其绝缘子伞裙破损类别训练样本量少,这也是导致其精度不高的另一个主要因素。因此,下一步的工作主要是进一步改善算法并收集和创建更多的绝缘子缺陷图像,以提高所提出算法的通用性。

猜你喜欢

电弧绝缘子样本
基于Mask RCNN的绝缘子自爆缺陷检测
电弧沉积TiSiN涂层的制备工艺研究
零值绝缘子带电检测方法探讨
用样本估计总体复习点拨
三丝焊接参数对电弧形态特征的影响
浅析输电线路绝缘子防污闪技术
规划·样本
随机微分方程的样本Lyapunov二次型估计
航空电气系统中故障电弧的分析
超声冲击电弧增材制造钛合金零件的各向异性研究