融合深度学习的无人机巡检绝缘子自爆检测研究

2022-01-19 07:53王万国慕世友刘越刘广秀郎芬玲
应用科学学报 2021年2期
关键词:绝缘子精度样本

王万国,慕世友,刘越,刘广秀,郎芬玲

1.国网山东省电力公司电力科学研究院,山东济南250000

2.国网智能科技股份有限公司,山东济南250000

3.航天图景(北京)科技有限公司,北京101300

基于无人机航拍图像的绝缘子识别与自爆检测是目前电力系统研究的热点,具有巡检效率高、安全和可靠的优点,能极大地提高经济效益[1]。在计算机视觉领域,绝缘子的识别与自爆检测属于目标检测和分类的研究范畴。传统的目标检测和分类一般采用图像处理的方法,根据目标的颜色和形状等信息,从图像中提取特征进行检测与识别。如AdaBoost[2]检测算法利用Harr特征将弱分类器进行联合得到了强分类器实现目标快速检测[3],HoG算子结合SVM实现了人体目标的检测[4]。这些算法以经验为基础设计目标特征,但由于人的经验存在主观和片面性,其检测和识别精度一般不高,且不同视角和场景下的目标检测与分类效果差异较大。因此从特征描述子提取到分类算法设计均存在一定的盲目性且缺乏统一的标准,难以达到理想的效果。由于绝缘子的结构复杂,绝缘子串凹凸错落,此外航拍图像以地面为背景较复杂,很容易造成算法误识别。运用计算机视觉技术对绝缘子表明缺陷检测一直是研究的难点,精确地识别绝缘子并进一步进行自爆检测是本文的研究重点。

近年来,深度卷积网络已成为图像目标识别领域研究的重点和热点。通过深层次的网络结构自动从原始图像中学习特征,无需人为干预,网络将特征提取与分类识别融为一体。如Faster R-CNN[5]、SSD[6]、YOLO[7]、YOLO9000[8]等目标检测方案,结合目前最新的分类深度神经网络(如VGG[9]、Resnet[10]、GoogLeNet[11]等),在精度方面都比传统方法具有明显地提升。同时借助GPU强大的并行计算能力,SSD和YOLO都能达到实时检测的效果,从而为本文的绝缘子识别提供了强大的支持。

绝缘子自爆是指由于自然原因或绝缘子老化导致绝缘子串脱落。本文所涉及的绝缘子自爆检测是指基于计算机视觉技术识别图像中绝缘子串脱落的位置。传统的缺陷定位算法对边缘提取算子、图像分割算子的精度要求较高,很难实现不同背景、不同拍摄角度、不同大小的绝缘子缺陷检测。由于绝缘子缺陷的样本较少,采用机器学习的方法很难训练得到泛化能力较强的分类器,因此本文提出一种基于扫描线的自爆区域检测算法,该方法采用统计的方式来定位缺陷区域,对图像分割的精度要求不高且速度快,能够较好地实现不同背景下的绝缘子自爆检测。

综上所述,本文提出了融合深度学习的无人机输电线路巡检的绝缘子自爆检测算法,主要解决了两个难题:一是通过改进YOLO算法,提高了绝缘子识别的收敛速度和对小目标检测精度。二是通过基于统计学特征的绝缘子自爆区域检测算法设计,实现了绝缘子自爆区域的准确检测。实验结果表明,本文所提出的算法能够快速、准确地检测出绝缘子自爆区域,较改进前及单用深度神经网络的方法,在检出率和效率上均有显著提高。

1 整体算法介绍

由于目前数据来源的局限性,无缺陷的绝缘子的样本容易收集,但绝缘子缺陷的样本很少。针对这种状况,本文提出了一种包含两个步骤的绝缘子自爆检测方法:首先对整个绝缘子区域进行识别,然后对识别区域通过图像处理方法定位自爆区域。整体算法流程如图1所示。算法主要分为两部分:深度卷积网络绝缘子识别部分和绝缘子串自爆区域定位部分。针对无人机航拍图像的特点:相机向下倾斜拍摄,背景为复杂的地面;无人机运动过程中存在一定的抖动,导致部分图像出现虚焦;无人机拍摄过程姿态不统一,拍摄的绝缘子形态多样。基于此深度卷积网络绝缘子识别部分采用深度卷积网络首先对绝缘子进行识别,精确目标感兴趣区域。自动定位出绝缘子所在的区域,从而缩小处理的范围,有利于对绝缘子自爆区域进行识别。绝缘子串自爆区域定位部分则依据精确定位后的感兴趣区域的特征较规则且稳定,采用传统的图像处理算法设计出了快速、高效的自爆检测算法。

图1 自爆区域检测算法的整体流程Figure 1 Flowchart of insulator self-exploding detection

2 算法设计

2.1 绝缘子识别网络选择及改进

目前,基于深度卷积网络的目标识别较为成熟的算法有Faster R-CNN[7]、SSD(single shot multibox detector)[8]、YOLO[9]三种框架。Faster R-CNN具有较高的识别精度但其包含参数最多、计算量较大,导致效率不高。SSD为端到端的识别算法,其网络结构简单但对于小目标的识别效果不好。最初版YOLO的网络设计比SSD更简单、速度更快,但识别的精度比SSD还要差些,但改进后的YOLO9000[10]则去掉了YOLO中的全连接层而改为卷积层,增加了Batch Normalization来解决过拟合的问题,并采用不同分辨率的网络来训练参数,同时还把聚类获得最优Anchors的技术也引入到识别中,提高了识别的精度。此外YOLO9000还创新地提出了一种将分类数据库和标记数据库组合进行训练的方式,实现了多达9 000类目标的检测与识别。因此,本文选择YOLO9000作为基础进行绝缘子识别。

为了能够兼顾精度和速度,同时解决深度学习目标检测算法对小目标检测的效果普遍不佳的问题。本文采用YOLO9000中提出的YOLO2作为绝缘子识别的方案并对其进行改进。YOLO2可以处理不同尺度的输入图像,常用的处置方式为将图像缩放为416×416大小,然后缩小至原图像的1/32得到13×13大小的特征图。与YOLO的训练方式相同,YOLO2将最后一层特征图的每个像素看作一个候选的目标,利用Anchors机制可以将候选框扩展为多个外接框(bounding box)。在训练时,计算每个bounding box与手工标记的目标框的交集,交集最大且超过设定阈值的多边形框作为训练的正样本,其他作为负样本。为了判断bounding box是否为一个目标框,YOLO定义了一个置信度值,其数学表达式为

式中:P(o)为该外接框为目标的概率(1代表目标,0代表背景);IOU(b,o)为外接框和目标框的交集;σ为激励函数。在训练时,式(1)的意义是让神经网络的输出值尽可能与交集相同。但在实际的训练中发现采用交集作为基准值存在两个问题:一是不利于收敛,二是对小目标的训练效果较差。由于外接框的数量有限,因此对于某些目标框交集的值会较小,导致梯度值较小,不利于后向传播。对于小目标,交集的值一般都较小,训练时会导致置信度较低,不利于收敛。为了解决YOLO/YOLO2的置信度不合理的问题,这里将置信度公式改写为

即训练时不考虑交集的具体值,只要与目标框的交集超过设定的阈值,就用1代替。实验表明,采用这种置信度的收敛更快,对小目标的训练结果也较好。

2.2 自爆区域检测

相比绝缘子的检测,对绝缘子自爆进行自动识别难度较大。传统的基于视觉的绝缘子自爆区域检测的一般思路是:采用边缘提取[12]或分割[13-14]的方法将绝缘子串与图像背景进行分离,然后采用椭圆提取[12,15]或形态学处理[16]方法定位自爆绝缘子的位置。通过对绝缘子详细研究发现,绝缘子串呈均匀分布状态,相邻的绝缘子串之间的距离相等,当发生绝缘子自爆时,因绝缘子串掉落导致绝缘子串不连续的情况发生,表现在二值图像上为自爆区域的黑色面积要明显大于其他的正常区域,从而破坏了这种均匀分布结构。基于此本文提出自爆区域检测算法,首先对图像上识别出的绝缘子区域进行裁剪,然后进行图像分割,接着对分割后的图像进行旋转和形态学处理,最后针对自爆区域进行特征统计并根据本文提出的决策方法进行分析判定。算法流程如图2所示,自爆区域的检测详细算法设计如图3所示。

图2 绝缘子自爆检测算法流程图Figure 2 Flow chart of self-explosion area detection

图3 自爆区域检测算法分解Figure 3 Process of self-explosion area detection

2.2.1 图像分割

本文采用基于色调、饱和度和亮度的色度空间(hue saturation intensity,HSI)进行颜色分割。首先采用颜色统计模型统计绝缘子的颜色分布信息,对玻璃材质的绝缘子的色度值(H)进行统计后的直方图如图4所示,统计结果显示玻璃材质的绝缘子的色度值分布在180左右;其次设定合适的绝缘子色度值范围;最后将绝缘子区域从图像中分离出来,形成二值图像。玻璃材质绝缘子色度值范围如式3所示。

图4 玻璃材质绝缘子色度值分布直方图Figure 4 Distribution histogram of chromaticity value of glass material insulator

2.2.2 图像旋转

为了方便进行扫描统计,本文采用PCA算法来寻找绝缘子区域分布的特征向量,选择最大的特征向量作为主分量,进而求解旋转矩阵将二值图像进行旋转,使绝缘子在图像中呈水平排列。旋转过程如下:

1)对位置矩阵X求协方差矩阵C,并求出协方差矩阵的特征向量V

2)构建旋转矩阵R

3)使用旋转矩阵左乘X得到旋转后的位置Y

4)将目标移动至图像的中心位置。

2.2.3 形态学处理

为消除二值化过程中产生的噪声,从而更好地突出自爆区域,本文采用形态学中的开运算对二值化图像进行处理。开运算是先腐蚀后膨胀的运算,能够去除面积较小的前景。腐蚀运算的公式为

膨胀运算的公式为

式中:M和N是定义在Z2上的两个集合;M为待修正集合;N为结构元素。

2.2.4 特征统计和决策分析

利用扫描线算法得到图像的每行中由背景转换为前景的边界点,并计算相邻边界点之间的距离d,将所有距离的中值作为没有缺陷时的绝缘子串的距离L。若边界点的距离大于2L,则将该位置判定为存在缺陷;若边界点的距离小于2L,则将该位置判定为无缺陷。最后合并所有可能存在缺陷的扫描边界点,得到最终的自爆区域。绝缘子是否自爆判的定公式为

2.3 评价指标

针对本文的检测算法,采用准确率P(Precision)作为精度验证的指标。准确率的计算公式为

式中:TP为样本被分为正样本且分类正确的数目;FP为样本被分为正样本但分类错误的数目。故准确率为衡量一个分类器分出来的正样本的确为正样本的概率。

3 算法验证及结果分析

3.1 绝缘子检测

本文采用人工标记的方式对20 000幅绝缘子图像来进行了标记。为了便于进行标记和训练,无人机巡线拍摄的图像归一化为960×720。训练样本的图像如图5所示。

图5 部分用于训练的绝缘子图像Figure 5 Partial insulator images for training

训练时采用18 000幅图像作为训练集,剩余2 000幅图像作为测试集。训练的平台采用darknet(http://pjreddie.com/darknet/),训练基于GPU实现,显卡为NVIDIA GeForce GTX1080。训练基于darknet的YOLO2网络实现,分别对比置信函数改进前和改进后的检测效果。本文采用准确率作为精度验证的指标,经过测试改进置信函数后的准确率为93.3%,改进置信函数前的准确率为91.6%,比改进后提高了1.7%。检测效果如图6所示。

图6 用于测试的包含自爆区域绝缘子检测效果图Figure 6 Result images for testing containing self-explosion area

3.2 自爆区域检测

由于绝缘子缺陷的数据不足,需从约20 000幅绝缘子图像中挑选出138幅存在绝缘子缺陷的图像进行自爆区域检测的实验验证。验证通过以下两种方式对比进行:1)直接通过YOLO网络训练实现对自爆区域检测;2)使用本文基于统计特征的方法实现对自爆区域检测。

从图7可以看出,无人机巡线时会从不同角度对绝缘子进行拍摄,所以绝缘子自爆区域的背景区域、形状、方位都不相同,这给检测带来了较大的困难。

图7 绝缘子缺陷区域Figure 7 Region of defect insulator

图8为基于统计特征的算法产生的中间效果,由上而下依次为二值化后的效果、基于PCA得到主分量进行旋转的效果、形态学开运算的效果。

图8 二值化、旋转、开运算后的绝缘子分割效果Figure 8 Insulator segmentation effect after binaryzation,rotation and operation

本文提出的算法能够从138幅存在自爆的图片中检测出117幅自爆图像,检测效果如图9所示,红色框为自爆区域。本文所设计算法的提取准确率为84.8%。通过YOLO网络直接对自爆区域检测的算法,由于数据量不足其提取准确率仅63.7%。相比之下,本文算法具有一定的优势。

本文算法无法提取出自爆区域的原因有以下3种:一是陶瓷材质的绝缘子采用本文的颜色分割算法失败;二是被高压塔遮挡的绝缘子提取失败;三是背景与绝缘子颜色相近导致颜色分割失败。同时该算法还存在误检问题,主要发生在绝缘子和高压塔连接处,此处纹理复杂容易导致扫描线算法失效,如图9(e)所示。

图9 自爆区域检测效果Figure 9 Detection effect of self-explosion area

4 结语

本文提出了一种绝缘子自爆检测的方法,该方法首先利用深度学习网络对整个绝缘子区域进行识别,然后在绝缘子区域内通过统计学进行自爆区域的检测。本文方法综合了深度学习识别方法能够准确识别目标,以及视觉方法无需训练样本即可定位小目标的优点,较为准确地定位绝缘子自爆区域。目前本文算法还存在分割不准确、易受背景区域干扰的问题。针对这些问题,在后续的研究中将进一步提高分割的精度,对不同类型的绝缘子统计不同的颜色分布高斯模型。同时在训练绝缘子检测深度网络模型时,对标注的样本进行规范化处理,压缩样本中包含较多背景的标注框,保证样本中只包含绝缘子目标,减少背景对自爆区域检测的干扰。

猜你喜欢
绝缘子精度样本
用样本估计总体复习点拨
推动医改的“直销样本”
基于DSPIC33F微处理器的采集精度的提高
随机微分方程的样本Lyapunov二次型估计
GPS/GLONASS/BDS组合PPP精度分析
村企共赢的样本
1000kV耐张绝缘子串单片绝缘子的带电更换技术
改进的Goldschmidt双精度浮点除法器
500kV绝缘子串含零值绝缘子时的电晕放电分析
绝缘子的常见故障及排除方法