基于改进CenterNet网络的绝缘子检测方法

2023-03-27 02:04邹宽胜
计算机技术与发展 2023年3期
关键词:池化绝缘子特征提取

孙 晗,邹宽胜

(江苏师范大学 电气工程及自动化学院,江苏 徐州 221116)

0 引 言

绝缘子是电力系统中最为重要的基础设施之一,它能够保证传输线和变电站能够安全稳定的运行[1]。而绝缘子主要暴露在自然环境恶劣的野外场景下工作,这样导致其非常容易发生自爆、污损等缺陷[2],进而影响到整个电力系统的安全和稳定,导致产生一定的社会经济损失及安全隐患。因此,定期对绝缘子的工作状态及故障情况进行巡检,对确保电力系统的稳定运行具有重要意义。而其中的首要问题是对绝缘子进行精准的检测及识别。

人工巡检绝缘子的效率非常低,且野外巡检具有一定的危险性,最终获取的检测结果也不是很精确,难以满足绝缘子日趋增长的监控需求。当前无人机技术的不断发展为电力巡检带来新的可能[3],但仍需手动去判别巡检绝缘子图片。人工判别的局限性有以下两点:首先,为了避免绝缘子误判或者漏判,就需要检测人员具有丰富的经验。其次,手动去判别大量的绝缘子航拍图片,不仅速度慢、效率低,而且需耗费高额的成本。随着电网智能巡检兴起[4],以及图像处理与深度学习技术的飞跃发展,将深度学习技术[5]与无人机技术相结合应用到绝缘子的智能检测中成为了一种新的方向。

与传统基于图像处理的绝缘子检测方法相比,基于卷积神经网络的深度学习方法可以以较高的效率自动提取图像特征,能够极大提升绝缘子检测的效率和准确度。因此,基于深度学习方法的绝缘子检测引起了相关学者们的广泛关注。文献[6]通过生成更贴近绝缘子长宽比例的Anchor(先验框)以及对非极大值抑制(Non-Maximum Suppression,NMS)进行改进,初步解决了不同纵横比和尺度的绝缘子识别问题和绝缘子相互遮挡问题。文献[7]通过特征融合以及扩大小尺度特征图的办法增强了深度学习网络对绝缘子语义信息的提取能力。文献[8]通过使用正则化来优化网络结构以此来提高模型的检测速度,提升了电力巡检图像多目标检测的精度和速度。文献[9]使用YOLOv3算法对绝缘子串进行定位和异常识别,使用Focal Loss和均衡交叉熵函数作为损失函数,并且使用多阶段迁移的学习方法来训练模型,得到了比较高的检测精度。文献[10]将FPN网络加入到Faster-RCNN算法中提升小目标绝缘子的特征提取能力,并通过图像信号处理的方法实现绝缘子的故障检测,可以准确检测出玻璃绝缘子和复合绝缘子的裂纹和串落故障。文献[11]提出一种级联型的CNN网络对绝缘子进行缺陷检测,首先使用数据增强方法将绝缘子与复杂背景进行融合扩增缺陷绝缘子数据集,然后通过RPN网络对绝缘子进行定位并将此区域剪裁出来,最后通过DNN网络对剪裁区域进行缺陷定位。文献[12]以无先验框的网络CenterNet为基础模型,通过使用轻量级网络作为特征提取网络,并引入注意力机制以及借鉴FPN特征融合,可以实时高效的对绝缘子缺陷部位进行检测。文献[13]通过深层特征融合网络与SE模块的结合,并且融入可变形卷积,能够在网络架构层面更好地融合不同层次的特征信息,能够对输电线路进行实时高效地检测。

从以上文献可以看出,目前大多数绝缘子检测所选择的算法如Faster-RCNN[14]、SSD[15]、YOLOV3[16]等都需要事先设置好Anchor(先验框),所以这些算法对于Anchor的数量以及尺寸大小等都非常敏感,导致大量超参数设置的好坏都会直接影响到检测性能。而在网络的训练中,检测网络中需要计算生成的全部Anchor与真实框的交并比(Intersection Over Union,IOU),这样的方式会使得计算量变得非常大,从而需要占用计算机极大的算力,并最终导致检测目标的速度变慢。

为了提升绝缘子检测速度与提高检测精度,该文以Anchor-free类算法CenterNet[17]网络为基础进行改进。通过更深层的特征提取网络与金字塔池化模块PPM(Pyramid Pooling Module,PPM)[18],增强在复杂背景下对绝缘子的特征提取能力。实验表明,改进后的网络能够满足对航拍绝缘子的实时检测要求。

1 CenterNet检测算法

CenterNet算法通过预测目标的中心点进而实现对目标的检测,即用预测的中心点来代表检测目标,随后通过回归得到目标中心点的偏移量以及目标框的宽和高,最终实现对目标的识别。

1.1 网络结构

CenterNet网络模型简图如图1所示。检测过程具体如下:

图1 CenterNet网络模型简图

(1)图片输入网络前会放缩到统一的大小尺寸方便网络进行检测;

(2)放缩过后的图片首先经过特征提取网络对图片进行初步地特征提取并生成一张特征图;

(3)初始特征图会通过三次反卷积的操作进行上采样处理,得到最终的高分辨率特征图;

(4)高分辨率特征图通过3个3×3的卷积得到三个分支,分别是Heat Map表示是否有物体以及物体种类、Offsizes表示中心点的偏移量、Sizes表示每一个物体的宽高信息;

(5)根据三个分支信息输出目标检测结果。

1.2 损失函数

CenterNet最后检测出的结果主要由三个部分,也就是3个3×3的卷积得到的三个分支决定,所以最终的损失函数由三个部分组成:物体中心点的损失函数Lh、中心点偏置损失函数Loff以及物体长宽损失函数Lsize。

物体中心点损失函数Lh是在Focal Loss函数的基础上改进而来,其计算公式如式1所示:

Lh=

(1)

中心点偏置损失函数Loff采用L1 Loss函数,计算公式如式2所示:

物体长宽损失函数Lsize也采用了L1 Loss函数,具体计算公式如式3所示:

(3)

总的损失函数由此3个损失函数乘上对应的系数并进行相加得到,具体计算公式如式4所示:

Lt=Lh+λsizeLsize+λoffLoff

(λsize=0.1,λoff=1)

(4)

2 改进CenterNet网络模型

该文在原始CenterNet网络模型的基础上进行改进,网络结构如图2所示。首先对输入的航拍绝缘子图像进行不失真地放缩,之后通过Resnet50网络对绝缘子进行初步的特征提取,初步提取出的特征图再经过金字塔池化模块PPM,接着得到的特征图会经过三次反卷积进行上采样操作得到最终特征图,最后通过3个3×3的卷积得到最终的预测结果。

图2 网络结构

2.1 图像预处理

在对航拍绝缘子图像进行放缩的时候,需要保证原始绝缘子图像长和宽的尺寸比例保持不变,这样可以达到放缩后图片不会失真。但无人机航拍获取的绝缘子数据集无法保证每个图像都能满足长宽比例相等。为了实现图片放缩后不失真的效果,在图片周围添加0进行填充。

2.2 主干网络

航拍绝缘子图像大多都处于湖泊、田地、山丘、树林等复杂的背景环境中。对于主干网络而言,过浅的网络不能够很好地从复杂的背景中有效提取绝缘子的特征,而过深的网络则会增加过多的参数从而影响整个模型的检测速度。为了能够平衡检测精度与检测速度,该文选择适中的Resnet50网络作为改进方法的主干网络。

主干网络Resnet50的网络结构如图3所示,其中s代表卷积步长(stride),图中()中的数字分别代表卷积后的长度、宽度、通道数,Conv Block和Identity Block是网络中两个基本的块,整个网络分为5个阶段,分别为Stage1-5。

图3 Resnet50网络结构

首先输入进来的图片会进入第一阶段Stage1,包含卷积核大小为7×7、步长为2、通道数为64的卷积层,BatchNorm归一化层,Relu激活函数以及池化核大小为3×3、步长为2的最大池化层。最终输出图片为256×256×64。Stage2-5都是由Conv Block和Identity Block所构成。

Conv Block的结构分为两个部分,具体如图4所示。左侧为主干部分,输入经过3次卷积,前两次卷积会经过BatchNorm层和Relu层,最后一次卷积只经过BatchNorm层;右边为残差边,输入进行一次卷积并经过BatchNorm层。两部分输出的结果进行相加并经过Relu层后作为下一阶段的最终输出。Conv Block输入输出的维度是不相同的,目的就是为了改变网络的维度。

图4 Conv Block结构

Identity Block的结构也分为两个部分,具体如图5所示。左侧与Conv Block一样为主干部分,输入经过3次卷积,前两次卷积会经过BatchNorm层和Relu层,最后一次卷积只经过BatchNorm层;右边为残差边。与Conv Block不同的是,输入并不会进行卷积,而是直接与左侧的输出进行相加,并经过Relu层后作为下一阶段的最终输出。因为是直接相加,所以Identity Block输入和输出的维度需要保持一致,目的是对网络进行加深。

图5 Identity Block结构

后四个阶段每一个阶段的第一层都是Conv Block,通过Conv Block后特征图的高和宽不变,通道数乘2以改变网络维度;后面几层都由Identity Block构成,通过Identity Block后特征图的高、宽、通道数都不变仅仅加深了网络的深度。经过Stage1-5后最终得到的初步特征图为16×16×2 048。

2.3 金字塔池化模块(Pyramid Pooling Module)

在绝缘子检测过程中,经常会出现漏判的情况,这是因为网络仅仅依靠简单地特征提取而不能充分利用全局的上下文信息来判别目标物体。为了解决这个问题,该文在主干网络后引入了一个金字塔池化模块PPM,此模块可以融合不同尺度和不同子区域的上下文信息,从而更好地获取全局上下文信息,最终得到更加可靠的预测结果。

PPM主要是把不同金字塔尺度的特征信息进行融合,结构如图6所示[18]。经过Resnet50网络提取出的初步特征图作为PPM的输入。该模块采用了四种不同金字塔尺度,每层池化尺寸为1×1、2×2、3×3、6×6。第一层是对整个特征图进行的全局池化,下面3层会将特征图分割成不同的子区域,每个子区域会各自在内部进行池化操作。每一层通过池化会得到包含不同尺度特征的特征图,接着会对得到的特征图进行一次卷积操作,卷积核大小为1×1,目的是将得到的特征图进行降维,通道数减少到原始特征图的1/N,N表示金字塔层数。然后通过双线性插值的方法,将得到的特征图的通道维度上采样到与原输入特征图相同。最后将这些特征图与原始特征图进行通道拼接,得到最终的全局特征。

图6 PPM结构

该模块通过池化和融合的方式,能够聚合不同区域的上下文信息,从而提高获取全局信息的能力,进而减少绝缘子检测时的漏检与误检情况,提高检测精度。

3 实验过程与结果分析

实验的训练工作站软硬件具体环境参数如下: 操作系统:Win10,CPU:Intel Core i7 - 10750H,GPU:NVIDIA GeForce GTX 1660 Ti,内存:16 GB,加速框架:CUDA10.0,IDE:Pycharm社区版,深度学习框架:Pytorch。

3.1 数据集

采用已公开的中国电力线绝缘子数据集,其中包括有无人机在高空拍摄到的600张正常绝缘子图像。

为了解决航拍绝缘子图像不足导致网络训练出现过拟合问题,对图片进行数据增强处理。主要包括图像旋转、随机剪裁、添加高斯噪声、改变色温等,将数据集扩增至1 600张。使用LabelImg工具对数据集中所有图片进行标注,并且将标注文件与数据集中的图片整理成PASCAL VOC2007的数据集格式,并且按照9∶1的比例随机划分成训练集和测试集。

3.2 参数设置

为了提高网络训练的效率,本次实验将采取冻结与解冻的训练方式。由于主干特征提取网络提取出的特征是通用的,为了加快训练速度,将主干网络进行冻结训练。由于模型的主干部分进行了冻结,特征提取的网络部分不会发生变化,因此所占用的内存很小,所以在冻结训练中Batch Size(单次传递给程序用以训练的参数个数)设置为8。在解冻训练阶段,模型的主干部分不被冻结,特征提取的网络部分发生了变化,因此所占用的内存会变大,所以在解冻训练中Batch Size设置为4。冻结训练进行50个Epoch(轮),解冻训练进行250个Epoch,总共300个Epoch。本次实验中的网络优化器选择Adam优化器,冻结训练阶段学习率设置为0.001,解冻训练阶段学习率设置为0.000 1。

3.3 评价指标

为了全面客观地评价此模型的性能,将从检测精度、漏检情况、检测速度3方面进行评估。使用平均精度(Average Precision,AP)、召回率(Recall,R)、每秒传输帧数(Frames Per Second, FPS)作为此模型的评价指标。具体计算公式如下所示。

(5)

(6)

(7)

式中,TP代表本身为正样本且被正确识别为正样本的样本量,FP代表本身为负样本却被误识别为正样本的样本量,FN代表本身为正样本却被误识别为负样本的样本量。

3.4 实验结果与分析

3.4.1 与原网络模型对比

该文涉及的原网络模型以Resnet18-Centernet为基础框架,与改进网络模型进行对比。实验结果如表1所示。在主干网络部分使用Resnet50网络替换Resnet18网络后,AP值提升了9.47百分点,Recall值提升了24.38百分点, FPS仅仅降低了2.46 f/s,说明在主干网络层数过浅时,模型对绝缘子特征的提取能力不足,在替换为深度更深的Resnet50网络后特征提取能力大幅加强,能够以极小的速度损失提高绝缘子的检测准确性。但Recall值仅为77.38%,说明绝缘子漏检的情况依然大量存在。在以Resnet50作为主干网络的基础上添加了PPM金字塔池化模块,与Resnet50-CenterNet相比,AP值与Recall值分别提高了6.87百分点,11.68百分点,而FPS仅仅降低了0.18 f/s。证明了再添加了金字塔池化模块PPM后,网络模型能够充分利用全局上下文信息在几乎不损失检测速度的情况下提高绝缘子检测精度,并且Recall值达到89.06%,绝缘子漏检的情况大大降低。

表1 实验结果

总改进模型与Resnet18-CenterNet相比较,在满足实时性检测的情况下,AP值和Recall值分别提升了16.34百分点与36.06百分点。

3.4.2 与不同网络模型对比

为进一步验证提出算法的检测性能,在同一实验环境下使用相同的数据集,与绝缘子检测常用的SSD、Faster-RCNN、YOLOV3、YOLOV4、YOLOV4-tiny、YOLOX这6种网络模型进行对比分析。其中Faster-RCNN是two-stage两阶段检测算法的代表性网络,SSD、YOLO系列则是one-stage一阶段检测算法的代表网络,YOLOX同样是无先验框的设计,对比实验结果如表2所示。

表2 不同算法实验结果

与Faster-RCNN相比较,改进后的CenterNet精确度提升了2.52百分点。Faster-RCNN是两阶段目标检测算法,会进行两次检测过程,与文中模型相比,网络模型比较复杂,导致检测速度非常慢, FPS只有8.33 f/s,比文中模型低了45.05 f/s,满足不了实时检测的要求。

SSD、YOLO系列单阶段目标检测模型与文中模型相比,还是存在着先验框的束缚,在检测精度、召回率与检测速度上文中模型都取得领先。

与轻量化网络YOLOV4-tiny相比,文中模型检测精度上升了22.3百分点,召回率上升了26.83百分点,检测速度降低了17.62 f/s。

与同样是无先验框设计的YOLOX相比,文中模型检测精度提高了5.54百分点,召回率提高了6.44百分点。文中模型在检测速度仅降低5.95 f/s的情况下,检测精度和漏检率方面都有更好的表现。

通过对比实验,从检测精度、漏检情况、检测速度三个方面综合考虑,文中模型更加适合航拍绝缘子检测。

3.5 检测结果可视化

图7为检测效果展示,在农田、建筑河流、池塘树木、湖泊等复杂背景下,该模型仍旧可以很好地检测出绝缘子。

图7 检测效果

4 结束语

该文提出一种基于Anchor-free的绝缘子检测算法,以CenterNet网络模型为基础,通过加深网络来提升绝缘子特征的提取能力;通过金字塔池化模块,利用全局的上下文信息进一步提升检测精度并且大幅降低了绝缘子漏检的情况;通过数据增强技术完善了实验数据集。实验结果表明,改进后的CenterNet网络模型具有较好的性能指标,能够满足对绝缘子实时检测的要求。下一步将根据此基础进行改进,实现对绝缘子缺陷区域的定位。

猜你喜欢
池化绝缘子特征提取
基于Sobel算子的池化算法设计
卷积神经网络中的自适应加权池化
设施蔬菜病害识别中的CNN池化选择
基于卷积神经网络和池化算法的表情识别研究
基于Daubechies(dbN)的飞行器音频特征提取
Bagging RCSP脑电特征提取算法
1000kV耐张绝缘子串单片绝缘子的带电更换技术
基于MED和循环域解调的多故障特征提取
500kV绝缘子串含零值绝缘子时的电晕放电分析
绝缘子的常见故障及排除方法