改进YOLOv3-SPP的输电线路故障检测方法

2023-01-16 09:07李琼琼陈国初
上海电机学院学报 2022年6期
关键词:剪枝残差精度

李琼琼, 陈国初

(上海电机学院 电气学院, 上海 201306)

为了建设稳定的智能电网,输电线路的运维需要先进、科学、高效的检测方式。与人工巡检相比无人机检测是一种较为先进的检测方式,无人机巡检可以减轻劳动强度,提高工作效率。但目前无人机在输电线路智能巡检中存在诸多挑战:①嵌入式设备由于模型计算量太大而导致运算能力差;②嵌入式设备由于模型太大而导致占用空间过多;③在巡检过程中故障缺陷诊断的精度不佳。因此,研究输电线路巡检识别算法很重要。

目前,基于卷积神经网络(Convolutional Neural Networks,CNN)的目标检测算法主要分为2种:基于目标候选框的2阶段检测算法和基于回归思想的单阶段目标检测算法。①基于目标候选框的2阶段检测算法,如Fast CNN[1]、Faster RCNN[2-5]等,这类算法识别精度高但在实时性上有所欠缺;②基于回归思想的单阶段目标检测算法较为典型的有SSD[6-7]、YOLO[8-13]等系列,单阶段目标检测算法没有候选框的提取操作,它可以直接生成目标类别和位置信息,因此其检测速度快。

但是这2种方法存在着网络模型复杂度高、计算量大等问题。为了解决算法存在的局限性,文献[14-18]提出了多种改进策略。其中,文献[14]提出在网络模型中添加卷积层、调整锚框大小的方式提高YOLOv3的检测精度;文献[15]引入DenseBlock结构使得YOLOv3识别的能力提高,更能准确识别奶牛的发情行为;文献[16]使用改进的K-means聚类算法改进YOLOv3,从而使得算法能够应用于不同场景下的火焰;文献[17]Faster-RCNN 网络模型中引入了空洞残差块构建新型特征提取网络,从而提高算法在遥感影像中飞机的检测精度;文献[18]对SSD算法引入损失函数从而提高变压器套管的检测精度。上述改进措施主要是为了提高模型的识别精度,但是,网络模型复杂度和计算量过大会加大嵌入式设备的计算压力。因此,很多学者提出构建轻量化的YOLO模型来减小模型参数量和计算量、减少模型的复杂度。文献[19]是利用MobileNet V2网络代替了YOLOv3的主干网络,使得网络模型更加轻量化,可以满足遥感军事的目标检测;文献[20]提出在保留特征提取模块的前提下,通过减少每层的参数量和残差层数实现网络模型的轻量化,使网络模型的参数量优于原始模型;文献[21]提出先利用聚类算法获得最佳先验框,然后构建轻量化的YOLOv3网络模型,实现对绝缘子的缺陷检测。

基于上述研究,针对精度、巡检算力和检测精度效果3方面进行改进,本文将在YOLOv3-SPP的网络基础上开展对输电线路故障检测算法的研究,主要工作有:

(1) 针对输电线路故障数据集较少的问题,采集并制作多种输电线路故障类型的数据集;

(2) 针对检测精度不佳的问题,提出使用广义交并比(Generalized Intersection over Union,GIoU)算法代替平方和损失函数提高检测精度;

(3) 针对巡检算力低下的问题,提出对模型进行通道修剪,从而优化YOLOv3-SPP的轻量化性能,降低算法对于硬件的要求,减少推理时长。

1 检测技术模型

1.1 YOLOv3-SPP检测网络

YOLOv3-SPP检测网络如图1所示。图中:DBL模块是由卷积层、归一化(Batch Normalization,BN)、激活函数组成,表示YOLOv3-SPP的基本组成部件。resn可以延伸为res1,res2,…,res8,表示残差块中残差单元的数量。concat表示将主干网络中间层和后面的某一层的上采样进行张量连接。

图1 基于YOLOv3-SPP算法的输电线路故障检测

1.2 SPP模块

YOLOv3-SPP网络主要在YOLOv3基础上,在5、6层卷积之间添加了SPP模块,如图2所示。空间金字塔模块主要分为池化的4个尺度:5×5、9×9、13×13、1×1(跳跃连接)。通过添加SPP模块将网格划分成更小的边界框,从而使边界框更能适合不同尺寸、复杂的图片检测。使得巡检过程中小目标障碍物更容易检测。

图2 SPP模块

2 输电线路故障检测算法改进

从提高模型精度和压缩模型大小2方面对算法进行改进。激活函数用GIOU 代替了原有的损失函数,提高了算法的精度。将模型大小压缩,使得无人机在进行巡检的过程中减小算力,减小了无人机巡检负担。

2.1 替换模型的损失函数

YOLOv3的原始损失函数是使用均方误差函数(Mean Squared Error,MSE),但是它存在2个问题。在L2范数(预测框与真实框的角点距离)的Loss值相同时,对应的交并比(Intersection over Union,IoU)、GIoU如图3所示。IoU主要是用来测量精度的,假设A为预测框、B为真实框,那么IoU计算公式如下:

图3 相同Loss值对应的V GIoU、V IoU

由图可知:首先,当Loss值相同时,使用MSE性能指标,最右侧预测框和真实框重合位置、区域覆盖最广,其效果就最好;其次,使用MSE尽管在一定程度上可以缓解目标尺度对于回归精度的影响,但是无法完全解决这一问题。

IoU 主要是为了计算预测框和真实框的交并比。然而,Io U 函数有2个缺点:①当2个框不重合时,根据定义IoU 的值变为0,如图4所示,因此没有梯度值,就无法执行正常训练;②当IoU 相同时,检测结果存在较大差异。图中的IoU 都是相等,但是在图4(b)比图4(a)的预测效果更好,体现了使用IoU 进行目标回归的局限性。

图4 IoU为0时不同情况的回归

针对以上缺点,本文采用GIoU 作为回归框损失函数。由预测框A和真实框B,可以计算出最小封闭凸面面积C,然后得到GIoU 的值,计算公式为

由以上公式可知,GIo U 的值总是小于等于IoU。IoU 的取值范围为[0,1],而GIoU 的取值范围为[-1,1],当预测框A和真实框B完全重合时,GIoU 和IoU 的值都为1;当预测框A和真实框B不重合时,Io U 变为0,GIoU 的计算公式为

VGIoU=-1+(A∪B)/C(4)

此时,预测框和真实框不重合,GIoU 会接近-1,而A∪B依然不会改变,为了优化GIoU,最小封闭面积凸面面积必须减小,预测框和真实框的位置才会越接近。

2.2 模型压缩

YOLOv3-SPP是一种性能优异的目标检测模型,可以对输电线路故障进行有效的检测。但是YOLOv3-SPP属于复杂的CNN,为了降低模型的复杂度和参数量,便于后期部署在无人机上,将对YOLOv3-SPP进行模型剪枝。

模型剪枝策略如下:首先,为卷积层的每个通道引入比例因子,将L1正则化应用于BN层的比例因子;其次,利用这些比例因子进行稀疏训练,对具有小比例因子的通道层进行通道修剪,并对不重要的残差层进行层修剪,将得到的修剪模型进行微调;最后,利用通道修剪和层修剪,得到剪枝后的YOLOv3-SPP网络模型。

2.2.1 稀疏训练 稀疏训练主要是为了评估每个通道的重要程度。CNN引入一个权值系数,将网络的训练权重和权值系数结合起来,从而得到优化训练过程中的损失函数为

式中:L为基于通道修剪的YOLOv3-SPP模型的目标损失函数;(x,y)为输入图像及其标签;W为网络权重;f为YOLOv3神经网络函数;第1个求和项为神经网络正常训练时的损失函数;λ为比例因子,用于调整目标检测损耗项和信道比例因子惩罚项在总损耗值中的比例;γ为平衡因子;g()为比例因子惩罚项,通常在稀疏训练中使用;第2个求和项为γ系数的L1正则化。

在经过稀疏训练后,可以得到一个稀疏模型,其中不重要的层其权值会接近于0,再通过设定阈值过滤掉较小的通道就能完成通道修剪。

2.2.2 基于BN层的稀疏方法 利用BN层的稀疏方法主要是为了优化YOLOv3-SPP训练过程,加速网络的收敛,使网络获得更好的性能。其计算公式为

式中:γ为比例因子;β为平移因子;Zin、Zout为BN层的输入、输出;μ、σ为输入数据的平均值和标准方值;ε为偏差值。

如果γ值很小,则表示下一层的输入值很小,可以忽略。即γ可以用来表示通道对于网络模型的贡献能力,所以,稀疏训练时,可以直接将BN 层的γ参数作为稀疏训练迭代的缩放系数。

2.2.3 层修剪 YOLOv3-SPP有5组23处残差连接处,对应add操作。由于残差层的输入和输出通道维度需要保持一致,因此不能和通道修剪一起进行。

在每一个残差层之前评估DBL,对每个层的γ值进行排序,并对γ值最小的层进行层修剪。为了保证YOLOv3-SPP的完整性,在修剪残差层时往往会修剪1个残差层和前面2个卷积层。在这里,只考虑剪掉主干网络中的残差层。YOLOv3-SPP有23个残差,总共69层剪枝空间。在实验中,本文尝试剪掉了12处残差,相当于剪掉了36层。

2.2.4 微调 剪枝效果取决于稀疏训练,不同的剪枝策略和阈值的设置对于剪枝的效果也会不同。通常剪枝的精度会提高,但多数时候修剪后的模型精度会下降。所以这时就需对模型进行微调,从而提高精度,通过重复上述过程,得到效果较好的网络模型。

3 实验结果与分析

3.1 数据集的制作

深度学习算法的优势就是数字图像库和深层的网络结构。构建优质的数据集,能够使目标检测更加精确。目前没有关于输电通道检测图像的公共数据集,关于输电线路风筝、气球、塑料薄膜、绝缘子缺陷、鸟窝的公共数据集也不多,所以本实验中使用的数据主要是通过爬虫技术从互联网上获取的。由于绝缘子缺陷数据集较少,首先,对其进行平移、旋转、加噪、亮度、对比度等变换,使得绝缘子缺陷这一类的数据集扩充;其次,使用labeIlmg对所有数据集进行手动标注;最后,制作完成如图5所示的故障数据集(部分),每类数据集1 000张,输电线路数据集总共包含5 000张图片,按照4∶1划分为训练集和测试集。

图5 数据集展示(部分)

3.2 实验平台配置

实验所用硬件配置环境为Intel(R)Xeon(R)CPU E5-2689,显卡NVIDIA GeForce GTX 1080 Ti,操作系统为Windows,软件环境为CUDA11.0,Cudnn8.0.5,深度学习框架为Py Torch1.7.1。

3.3 实验结果分析

输电线路有异物悬挂、绝缘子缺陷等问题,会导致输电线路发生单项或者两相短路接地。本文使用了2种改进方法,为了验证改进方法的有效性,将通过平均精度(Average Precision,AP)、平均精度均值(mean Average Precision,m AP)、推理时间、模型大小、参数量等性能指标进行评估。

3.3.1 基于GIo U 改进算法的对比实验结果 为了验证算法的有效性,文章利用Io U、和GioU 2种损失函数对数据集进行训练,分别得到相应的权重文件。不同模型对输电线路故障数据集的平均精度AP和m AP测试结果见表1。

表1 输电线路故障数据集的测试结果比较 %

从实验结果可以看出,基于GIoU-YOLOv3-SPP的方法平均精度分别达到了86.11%、81.67%、89.67%、93.67%、97.33%,比基于IoU-YOLOv3-SPP的方法平均精度更高,mAP 提高了6.7%。因此,GIoUYOLOv3-SPP是提高模型性能的有效改进方案。

3.3.2 通道修剪和层修剪的算法比较结果 通道修剪和层修剪算法的实验结果见表2。其中,第2列是原始模型,第3列是通道剪枝模型,第4列是通道和层算法共同作用的实验结果,修剪率为0.95,层修剪12处残差。

表2 相同剪枝率下的不同模型压缩策略结果比较

从上表可知,经过通道修剪之后,模型的内存由244.90 MB降至3.37 MB,m AP减小到0.004,经过层修剪之后,m AP减小到0.002,模型内存减小到3.19 MB。针对剪枝带来的模型精度下降,可以通过微调的方式恢复精度。

3.3.3 不同剪枝率的通道和层剪枝算法结果 修剪过多的通道和层,会破坏模型的结构,降低模型的检测精度,无法完成检测功能;修剪得太少,则无法实现压缩效果。因此,不同剪枝率的通道和层剪枝算法对模型性能结果见表3。

表3 不同剪枝率下的相同模型压缩策略结果比较

实验结果表明,随着剪枝率的增加,模型的参数和模型的规模在不断减小,模型的推理速度不断提高。但是,模型的剪枝率越高,其检测和识别的精度下降的越厉害。当剪枝率达到0.95时,模型的精度也降为0.004,模型内存为3.19 MB。在剪枝过程中,也可能导致一些重要的卷积核结构被删除,导致模型无法识别,此时,需通过微调的方式来提高模型的精度。

在输电线路故障检测的实际工程应用中,可以配置无人机嵌入式设备,灵活选择剪枝率,在模型大小和精度之间寻找一个平衡。

为了直观地观察到输电线路故障检测性能,本文选取了一些输电线路故障检测结果,如图6所示。输电线路故障检测的结果表明,该模型可以准确检测输电线路故障,对小目标的输电线路故障点有较好的探测和识别性能,与剪枝前的模型检测精度基本相同。

图6 输电线路故障检测结果

4 结 语

本文提出了一种基于改进YOLOv3-SPP 的输电线路故障检测方法。为了克服无人机在线路巡检过程中检测精度不佳,利用目标定位损失函数GIoU,提高模型的检测精度。为了克服无人机在线路巡检过程中有限的能耗和算力,利用通道修剪和层修剪策略减小模型大小,降低了算法对于硬件的要求,减少了推理时长。实验表明:改进YOLOv3-SPP的输电线路故障检测方法能在保证检测精度、检测速度的同时满足轻量化需求。

猜你喜欢
剪枝残差精度
人到晚年宜“剪枝”
基于双向GRU与残差拟合的车辆跟驰建模
热连轧机组粗轧机精度控制
基于YOLOv4-Tiny模型剪枝算法
基于残差学习的自适应无人机目标跟踪算法
基于激活-熵的分层迭代剪枝策略的CNN模型压缩
超高精度计时器——原子钟
基于递归残差网络的图像超分辨率重建
分析误差提精度
基于DSPIC33F微处理器的采集精度的提高