基于改进的YOLOv3在电力设备红外检测中的应用
2022-11-23赵佰亭
陈 寅,赵佰亭
(安徽理工大学 电气与信息工程学院,安徽 淮南 232001)
近年来,计算机视觉技术的迅速兴起,具备卓越识别能力和分类性能的深度学习已经成为电力设备自动检测的趋势。基于深度学习的目标识别算法包括RCNN,YOLO,SSD,R-FCN等[1-4]。其中,YOLO系列算法因结构精简、检测速度快、准确率高等优点成为研究热点。文献[5]将设备之间的方向一致性为前提,在每组回归框中心外加入方向角,并纳入了模型的计算过程,成功地改进了YOLO目标检测的框架,提升了检测的精度。文献[6]结合均衡交叉熵函数和Focal Loss函数来解决数据集繁杂以及类别数据量参差不齐的问题,实现了高压输电线路上绝缘子串的定位和识别。文献[7]改进了YOLOv3模型,融入跨阶段局部模块到Backbone中,将路径聚合网络运用到特征金字塔结构,并且加入CIOU损失函数提升模型准确率,完成了对具有相近外观的电力设备的精确识别。
YOLOv3算法应用非常广泛,但其模型参数量大,对移动端设备的算力要求高。考虑到算力较低的无人机、机器人等巡检设备在变电站的兴起,本文旨在轻量化YOLOv3模型,使得红外电力设备检测模型能部署在机器人和无人机上。
1 YOLOv3算法
YOLO算法的理论是将统一尺寸的图像输送到神经网络中,根据输出层回归得到预选框的位置信息和类别,达到end-to-end的目标检测[2]。它由主干网络Darknet-53和预测网络组成。主干网络有52个卷积层和1个全连接层,激活函数是Leaky ReLU;预测网络部分通过concat结合了不同层次的特征,使得模型学习到更多方面的知识。例如将一个大小为608×608的图像输送到模型中,预测网络部分将输出大小19×19、38×38与76×76的张量。多尺度融合方法可以寻找到更有效的数据信息,同时也具有更强的稳定性。
目标对象的坐标损失Lxywh、置信度损失Lobj和对象类别概率得分损失Lcls组成了YOLOv3的损失函数,即
L=Lxywh+Lobj+Lcls.
其中,
2 YOLOv3电力设备检测算法改进
本文将改进YOLOv3的几个模块,整体的模型结构如图1所示,具体的改进方法如下:
图1 改进的YOLOv3红外电力设备检测模型结构
1)使用MobileNetv3_Large作为Backbone网络,MobileNetv3_Large用深度可分离卷积代替标准卷积来削减模型参数量,能实现红外变电站设备的高效识别,同时也便于部署到移动端。
2)加入SPP层和DropBlock模块,SPP可以从不同大小的感受野提取特征,增强模型对不同大小目标的识别能力,DropBlock随机删除神经单元来提升模型的泛化能力。
3)添加K-means聚类算法,通过K-means的聚类可以得到数据集的先验框参数,可使得先验框与特征图层更匹配,以此来提升变电站电力设备模型识别的准确度。
2.1 主干网络MobileNetv3_Large
MobileNetV3通过单个3×3的常规卷积和多个bneck结构来获得特征,然后去掉全连接层,直接用1×1的卷积块来衔接,最后采用最大池化层来获取模型最终的类别数据,以此来降低整个模型的参数量[8]。MobileNetV3_Large结构如表1所示,其中:SE列表示注意力模块;×表示没有使用SE;√表示使用SE;AF列表示运用激活函数;S列表示步长。
表1 MobileNetV3_Large结构
bneck结构如图2所示,其融合了MobileNet第1个版本中的深度可分离卷积与第2个版本中的逆残差结构,并且在个别的结构中添加注意力模块,使得网络更在意特征层中主要的特征,忽视次要的特征。此外由于深度可分离卷积的存在,降低了卷积计算过程的时间并且削减了模型的参数总量。骨干模块中的h-sigmoid激活函数和SE模块中的h-swish激活函数也一定程度降低了参数总量,2个激活函数的运算式为
图2 Benck结构
(2)
(3)
2.2 空间金字塔池化
YOLOv3网络会固定输入的大小。训练中,为了达到网络要求的尺寸,通常将不适配的图像进行修剪、拉长和压缩。但此操作会改变图像的纵横比,一定程度上将导致图像失实。在变电站电力设备识别训练过程中,失实的图像会影响小目标和被遮挡目标的识别。空间金字塔池化可以处理这个难题,运用固定大小的池化操作,可以将尺寸不一样的图像输出一样的大小,可有效处理输入图像尺寸不统一的难题;同时运用多种尺寸的池化方法,可拓宽特征图的感受范围,以此来解决多尺度目标表示的难题。SPP的结构展示于图1左下角,根据变电站电力设备的识别的实际情况,将电力设备分成大、中、小3个不同的尺寸。在MobileNetv3_Large网络输出的3个特征图之后添加SPP层,来处理变电站电力设备的大小差别所带来的问题。
2.3 DropBlock
Dropout技术被普遍地使用在全连接层来避免过拟合[9]。Dropout将神经单元随机裁剪来提升网络的泛化能力,这种策略放在全连接层时能够达到预期的目标,但放在卷积层时却不奏效。主要由于在卷积层的特征图中邻近的单元保存着相似的语义信息,当Dropout随机裁剪1个卷积层的神经单元时,在卷积层中其语义信息通过邻近单元依旧保留了下来。相较于Dropout裁剪掉单个的神经单元,DropBlock则随机裁剪一块相邻的神经单元[10],以此来提高模型的泛化能力。DropBlock由参数bs(block_size)和γ组成:bs为要裁剪的单元的大小;γ为要被裁剪的单元个数。γ的计算式为
(4)
式中:(fs-bs+1)2代表有效区域的尺寸;fs(feat_size)是特征图的尺寸;kp(keep_prob)可以理解为未被删去的神经单元数量所占的比值。
2.4 K-means聚类方法重置先验框
YOLOv3运用了锚框机制,提前生成矩形框,经过K-means算法对样本数据集的计算修改锚框大小,锚框大小的先验知识对预测网络的准确性有一定的影响[11]。本文根据收集到的红外电力设备数据集,将电力设备的目标大致可分成大、中、小3种,所以选择聚类类别数为K=3,通过K-means算法得到9种不同大小的锚框,如表2所示。其中,尺寸为19×19的特征图,其感受区域更大,适用于识别大尺寸目标;尺寸为38×38的特征图,其感受区域中等,适用于识别中等尺寸目标;尺寸为76×76的特征图,其感受区域较小,适用于识别小尺寸目标。由于通过K-means算法得出的矩形框大小更加符合实际数据,因此能够提高预测网络精度。
表2 K-means算法聚类生成的锚框尺寸
3 试验及结果分析
试验选取了包含避雷器、隔离开关、隔离开关吊环、悬式绝缘子、断路器、高压测套管等电力设备红外数据集。本节将改进的YOLOv3模型与YOLOv3原模型和SSD在自制的数据集上训练测试并评估。
3.1 红外电力设备数据集
本文所用的变电站电力设备红外图数据集,源自某变电站2019年和2020年巡检所拍摄的电气设备红外图谱数据,每张图包含多个电气设备。经过筛选获得了1 450张不同的红外电力设备图像。然后使用LabelImg标注工具对6类电力设备(悬式绝缘子、高压套管、隔离开关、隔离开关吊环、避雷器、断路器)和热故障点进行框选标注。保存好相应的XML文件。按照训练集和测试集比例8∶2来划分数据集[12],随机取样1 160幅红外电力设备图来训练模型,另外290张红外电力设备图用来测试识别效果,各种类型的具体分配见表3。
表3 数据集分配
考虑到深度学习需要海量的样本数据,需要对训练样本进一步增补,防止在训练期间发生过拟合的状况。选择线上数据增广策略来多元化样本数据,利用垂直水平翻转、随机平移、随机矩形遮挡、随机缩放、椒盐噪声等数据增广方法,将红外电力设备数据扩充。具体的数据增广示例如图3所示。
图3 线上数据增广实例
3.2 试验配置与训练
本文改进的YOLOv3模型训练运用的Linux系统版本是Ubuntu16.04,环境配置如下:GPU为Nvidia Tesla V100,显存为32G。试验使用PaddlePaddle2.2.2深度学习框架对模型进行构造、训练和测试,在训练中用的Python库为Anaconda3,Python版本为3.7.4。
训练前将相似领域内的模型权重移植到本模型中,这种方法叫做迁移学习[13]。由于它已经提前学习到了本文数据集中的潜在特征[14],因此可以加快模型的训练,更容易训练出好的模型。训练时,单批次包含24幅图像并将图片输入的顺序打乱,动量参数为0.9,最大迭代次数为120 000。初始学习率设定为0.01,虽然高学习率能够使得模型快速的收敛,但如果一直保持高学习率会使得模型不稳定甚至震荡发散。因此学习率可使用分段式衰减手段,共衰减3次,将衰减系数设定为0.1。当迭代到48 000、72 000、96 000次时,当前学习率乘上衰减系数后变为0.001、0.000 1、0.000 01,以此来保证模型的相对稳定。此外采用线性学习率热身策略从0 step到4 000 step,将学习率从0开始线性增加到0.01防止一开始学习率过大导致学习效果不理想的现象。改进后的YOLOv3模型训练的损失值,见图4所示。损失值以很快的速率下降,当迭代次数超过45 000次后,损失值逐渐稳定在3.9左右。
图4 网络迭代损失值变化
3.3 试验结果与分析
为全面展示改进的YOLOv3模型识别效果的优越性。本文通过准确率、模型大小、参数量(FLOPs)和FPS对改进的YOLOv3模型进行测评。准确率表示模型对正样本检测的准确度,定义为
(5)
召回率表示模型对正样本的检测能力,定义为
(6)
式中:TP为变电站设备被正确识别的个数;FN为其他设备被正确识别的个数;FP为其他设备被识别成变电站设备的个数;FN为变电站设备被识别成其他设备的个数。
(7)
(8)
AP是用来评估单类别检测能力的,可用准确率P与召回率R计算出来,用来测试用的数据集一共290张,通过精度mAP@0.5(IOU阈值大于0.5)、每秒传输帧数(FPS)、模型算法的参数计算量(FLOPs)、模型的权重文件大小(Weights)等方面来比较改进的YOLOv3与原始YOLOv3、SSD的不同,对比结果见表4。
表4 试验对比结果
由表4可以看出:本文提出的YOLOv3算法仅在检测速度方面比SSD算法慢了13.275 ms/帧,但也能够达到34.316 ms/帧;在mAP方面比原模型升高了2.04%,比SSD算法高了2.64%;在参数计算量方面比原模型减少了9.7倍;模型的权重文件大小方面比原模型少了6.4倍,比SSD算法少了2.6倍。
改进后的YOLOv3模型对变电站设备识别结果见表5,分析得出:开关吊环的检测效果最好,达到99.5%;其次分别为避雷针和绝缘子;热故障点的检测效果最差,为90.9%。主要原因是热故障点没有充足的数据支撑,以及本身目标难以被发现。
表5 红外电力设备检测准确率
3.4 模型效果
改进后的YOLOv3检测结果如图5所示,图中的0、1、2、3、4、5、6分别代表热故障点、避雷器、高压套管、隔离开关、开关吊环、绝缘子和断路器,其后的数字表示该目标可以被相信的程度,大小从0到1,若数值越大则可相信的程度越高。从图5的识别结果来看:改进的模型不但能在红外背景下准确地识别到目标,而且在目标重合、物体遮挡等干扰下,模型依旧可以保持高水准推测出设备类别。例如图5(f)中隔离开关吊环在远处且被遮挡的情况下依旧可以被识别出,置信度为0.89。上述结果表明,本文改进的模型在识别精准度、检测速度和模型大小方面均展现出显著的优势,适合用在变电站内对电力设备进行红外识别。
图5 改进方法检测结果
4 结论
1)利用LabelImg软件标注了变电站红外电力设备数据,并运用迁移学习方法预先放置模型的权重,在PaddlePaddle平台完成了对模型的训练。
2)根据试验需要解决的问题提出了一种基于YOLOv3的目标识别算法与MobileNetv3_Large网络相融合的方案来进行验证,加入SPP层和DropBlock模块,并使用线上数据增广和锚框聚类优化等方法,提升网络性能。
3)该算法有利于红外电力设备识别准确性的提升,其mAP精度达到96.61%,超越原先的方法,可为电力设备热故障检测提供支持。