基于改进YOLOv4的输电线路异物检测算法

2021-09-11 03:25唐翔翔鲍文霞

唐翔翔,沈 薇,朱 明,鲍文霞

(安徽大学 电子信息工程学院,安徽 合肥 230601)

输电线路为电能传输的载体,保障输电线路安全稳定运行具有十分重要的意义.输电线路的常见异物有鸟巢、蜂巢、风筝等,这些异物会造成短路或引发火灾,进而引起区域停电,带来严重经济损失,甚至危及输电线路周边人员的生命安全,所以需对输电线路异物进行及时排查和清除.输电线路通常经过人烟稀少、交通不便的地区,传统人工巡检不仅耗时费力,且无法做到及时排查.智能巡检技术具有更高的检测效率及精度,能节省大量人力物力,是一种经济有效的巡检手段.基于飞行器的航拍巡检是输电线路异物检测的常用巡检方法,虽该方法不需人员到现场,但传感器拍摄的海量数据仍需人工分析判断,故检测效率及准确性均有待提高.

近年来,深度学习发展迅速,与传统算法相比,基于深度学习的目标检测算法的精度和速度均有显著提升.基于深度学习的目标检测算法可分为如下两类:two-stage及one-stage算法.two-stage算法先生成一系列候选框,再通过卷积神经网络进行分类,代表算法有:R-CNN(region-convolutional neural network)算法、Fast-RCNN算法及Faster-RCNN算法.two-stage算法由于需提前生成大量候选框,检测计算量大、效率低,很难满足实时检测的要求.与two-stage算法不同,one-stage算法不产生候选框,直接对图像卷积,把边框定位转化为回归,实现了端到端的训练,代表算法有:SSD(single shot multibox detector)和YOLO(you only look once).one-stage算法由于不产生候选框,故计算量小,常用于实时检测. Bochkovskiy等提出的YOLOv4(you only look once的第4个版本)算法具有很好的检测效果,是当前目标检测的主流算法.但是,YOLOv4算法用于输电线路异物检测时存在一些不足之处,如目标图像与背景相似时池化操作会剔除目标信息却保留背景信息、对颜色和纹理相似的目标区分能力不强.鉴于此,笔者提出基于改进YOLOv4的输电线路异物检测算法.该算法在YOLOv4的特征金字塔池化(spatial pyramid pooling,简称SPP)模块中加入平均池化,将平均池化与其他尺度的最大池化进行融合,使输出的图像信息包含特征图池化的平均值和最大值,可减少错检和漏检率.针对目标相似导致的不易区分问题,该算法对损失函数进行优化,以提升区分相似目标的能力.

1 基于改进YOLOv4的输电线路异物检测算法

1.1 YOLOv4网络结构

YOLOv4网络结构的主体采用Darknet53网络结构的进阶版CSPDarknet53.CSPDarknet53是在Darknet53的基础上借鉴CSPNet而形成的Backbone结构.CSPDarknet53包含5个CSP模块,每个模块包含3×3的卷积核.输电线路的特定异物图像大小为416×416,经过5次下采样,最终得到的特征图大小为13×13.CSPDarknet53输出的13×13特征图,经过一个3×3的卷积核后送入SPP模块,把SPP模块的输出结果与52×52,26×26大小的特征图一同送入FPN+PAN模块,经过Downsampling和Concat操作得到3个不同大小的特征图,用于不同大小的目标检测.此外,通过BCE损失函数进行回归分类.YOLOv4的网络结构如图1所示.

图1 YOLOv4的网络结构

1.2 改进的SPP

YOLOv4在CSPDarknet53后使用SPP模块,用于提高特征信息量.该SPP模块由4个不同大小(1×1,5×5,9×9,13×13)的最大池化组成.这4个最大池化均采用padding操作,stride=1.将CSPDarknet53输出的13×13特征图送入SPP模块,使用大小5×5的池化核,padding=2,以保证输出特征图的大小不变.

在深度学习中,通过最大池化对特征图进行下采样操作.最大池化可减少特征信息,从而减少计算量.除了最大池化外,还有平均池化,平均池化关注的是每个“池”的平均值.在处理与背景信息相似的目标图像时,平均池化可保留更多目标信息,有较好的处理效果.图2为最大池化和平均池化示意图.

图2 最大池化及平均池化示意图

YOLOv4中的SPP模块对图像进行降采样时,由于只保留每个“池”的最大值信息,若目标与背景信息相似,可能仅保留背景信息,丢失目标信息,造成误检和漏检.图3为典型的漏检及错检图.

图3 典型的漏检(a, b)、错检(c, d)图

针对误检和漏检问题,笔者在YOLOv4算法的基础上,对SPP模块进行改进,将平均池化替代5×5的最大池化,在尺度融合时可保留更多的异物目标信息,能降低漏检和错检率.

1.3 损失函数

YOLOv4算法采用二进制交叉熵(binary cross entropy,简称BCE)损失函数,代替YOLOv3使用的均方误差(mean square error, 简称MSE)损失函数.BCE损失函数的表达式为

(1)

其中:

x

为第

i

个预测目标的概率,

y

为第

i

个真实目标的概率,

N

为目标样本数.

BCE损失函数对颜色和纹理信息相似的目标,易出现错检.为降低相似目标的错检率,笔者在文献[22]的BCE损失函数基础上,构造GBCE(gradient-boosting binary cross entropy)损失函数,其表达式为

(2)

其中:

s

为真实目标;

s

为与真实目标最相近的其他目标;

J

′={

i

:

i

J

s

t

},

J

为负类集合,

t

为设定的阈值.

1.4 基于改进YOLOv4的输电线路异物检测算法

为解决最大池化带来的特征信息丢失问题,笔者对YOLOv4的SPP模块进行了改进,使Backbone输出的特征图可保留更多的目标信息.将SPP模块输出的特征图与52×52,26×26大小的特征图一同送入FPN+PAN模块,以提升YOLOv4算法的目标识别精度.此外,还对原有BCE损失函数进行改进,得到GBCE损失函数.该损失函数对相似目标的区分度更高,降低了错检率.图4为改进的YOLOv4网络结构.基于改进的YOLOv4网络结构,笔者提出输电线路异物检测算法(为了方便,下文将该算法简称为改进YOLOv4算法).

图4 改进的YOLOv4网络结构

2 实 验

2.1 数据准备

由于输电线路异物没有公开的数据集,故笔者只能采用鸟巢、蜂巢和风筝的私有数据集.鸟巢、蜂巢和风筝原始图像的数量分别为510,312,293,增广后分别为1 932, 1 248, 1 172.这些输电线路异物图像常含有复杂的背景,如建筑物、公路、麦田和山林等.数据集按8∶1∶1的比例分为训练集、验证集、测试集.图5为数据集中的部分图像.

图5 数据集中的鸟巢(a~c)、蜂巢(d~f)和风筝(g~i)图像

实验中对数据进行旋转和翻转操作,对数据量进行扩充,主要目的是增强模型泛化能力,提高模型收敛速度.原图像分辨率较高,对原图像进行裁剪后可得到大小为416×416的图像.

2.2 实验配置

计算机的配置如下:系统为Ubuntu 18.04、显卡为GTX-2080 TI、运行内存为10 G、CPU为Intel酷睿i7 8700六核处理器.

学习率在一定程度上决定网络的收敛速度,过高的初始学习率会导致网络梯度在一定范围来回震荡,过低的初始学习率会延缓网络收敛,进而影响实验进程.该文根据网络收敛情况将学习率设置为0.001.

根据硬件设备性能,将网络的batch参数设为32,subdivision参数设为16.

2.3 评测指标

该文采用的评测指标为FPS (frame per second)和mAP(mean average precision).FPS评测模型的运行速度,其值越高,模型运行速度越快.与mAP有关计算公式为

(3)

2.4 网络训练

图6为改进YOLOv4算法的网络训练LOSS曲线.从图6可看出:迭代次数小于40 000时,LOSS值缓慢波动下降;迭代次数大于40 000时,LOSS值基本稳定于0.5左右;LOSS值有较好的收敛性,未发生过拟合现象.

图6 改进YOLOv4算法的网络训练loss曲线

2.5 结果及分析

在数据集上使用Faster-RCNN、SSD、YOLOv4、改进YOLOv4算法进行实验,mAP和FPS的实验结果如表1所示.由表1可知:从mAP角度看,改进YOLOv4算法的mAP值最高;从FPS角度看,改进YOLOv4算法的FPS值仅次于YOLOv4.因此,相对于其他3种算法,改进YOLOv4算法具有更好的综合性能.

表1 不同算法的实验结果

3 结束语

笔者基于改进的YOLOv4网络结构,提出输电线路异物检测算法,旨在解决输电线路巡检过程中出现的人力巡检工作量大、难度高和检测不精确的问题.该算法对YOLOv4的SPP模块和BCE损失函数做了改进,提高了模型的检测精度,且能满足实时检测的需求.