基于YOLOv4的绝缘子检测算法

2022-08-25 09:56梁礼明
软件导刊 2022年8期
关键词:绝缘子卷积预测

梁礼明,邹 培

(江西理工大学电气工程与自动化学院,江西赣州 341000)

0 引言

随着我国智能电网技术的快速发展,各种复杂环境下的输电线路建设已经取得巨大成功,然而输电线路常年暴露在大自然中,时常会出现一些故障,给电力输送的稳定性和安全性均造成较大影响[1]。输电线路出现故障很大程度上是受绝缘子的影响。绝缘子是输电线路中重要的组成部分,其一般由玻璃或陶瓷材料制成,可以增加爬电距离、提高输电效率,但容易出现破损、掉串等问题。为提高电网的安全系数,必须经常对输电线路的绝缘子进行检测,以保证电力输送质量。

1 相关研究

传统的绝缘子检测方法一般依靠人工方式提取绝缘子的特征信息,如绝缘子的外观、颜色以及轮廓特征等。例如,尚方等[2]提出一种基于绝缘子颜色特征和空间特征的缺陷检测方法,该方法在复杂多变的背景环境下也能够较好地检测出绝缘子故障,模型鲁棒性较强;方挺等[3]认为绝缘子的破损和掉串问题会严重影响输电线的绝缘能力,为了及时检测出绝缘子故障,其提出一种基于绝缘子轮廓特征的故障检测方法,该方法首先定位出绝缘子的轮廓,然后通过计算绝缘子数目判断出其是否出现掉串等问题。传统的绝缘子检测方法过于依赖特征的人工提取,提取结果好坏直接影响到模型检测绝缘子的精确度。

自深度学习理论被提出,业界开始采用卷积神经网络(Convolutional Nerural Network,CNN)自适应学习绝缘子的语义特征,大幅度提高了检测模型的泛化性能和鲁棒性。目前主流的目标检测算法可分为二阶段算法、关键点算法、一阶段算法3 类。二阶段算法首先提取目标的候选区域(锚框),然后对该区域进行分类和回归,代表算法包括Faster RCNN(Faster Region-CNN)[4]和SSD(Single Shot Multibox Detector)[5]。二阶段法由于提取了更为精确的候选区域,检测精度较高,但步骤稍显繁琐,从而导致检测速度较慢。例如,Liu 等[6]基于Faster R-CNN 算法提出一种检测绝缘子故障检测方法,能以较高的精确度检测出绝缘子故障位置,但未能解决该类算法速度较慢的问题。关键点算法摒弃了锚框机制生成候选区域的步骤,采用目标关键点生成点范围内的高斯分布区域,从而对点区域内的目标像素进行分类和回归,代表算法包括CornerNet[7]、CornerNet-lite[8]、Centernet-triplets[9]。该类算法采用检测目标的多个关键点预测目标的位置和类别,但一幅图像中的目标并不是单一的,可能存在多个,在预测出大量关键点信息时,需要对这些关键点进行分组,以找出属于同一目标的关键点,该步骤不仅耗时而且极易产生错误分组。针对这个问题,Zhou 等[10]提出一种CenterNet 算法,其仅用目标的中心点信息作为预测框,由于模型仅预测出每个目标的中心点,不需要对关键点进行分组,大幅度提高了模型的检测速度,但中心点特征信息远少于多关键点(如角点),故需要更为强大的特征提取网络学习目标的特征表示。一阶段算法同时进行目标类别的预测和边界框的生成,在检测速度上具有明显优势。如YOLOv3 算法直接采用Darknet53 网络进行目标的坐标和类别预测[11],其将目标图像划分为多种大小的网格区域,然后对每个网格区域内的像素进行检测,以判断出是否含有目标像素。YOLOv3 算法采用Darknet53 网络同时进行分类和位置预测两个任务,这对模型的特征学习能力提出了较大挑战。例如,陈智羽等[12]基于YOLOv3 算法提出一种绝缘子检测算法,其对Draknet53 网络中的残差块[13]进行了优化,额外增加了小目标特征学习的残差模块,使得模型的特征学习能力进一步增强。为使一阶段算法的检测精度进一步提高,就必须对原有特征提取网络结构进行优化,从而使一阶段算法的精度和检测速度达到最佳平衡状态。随后,YOLOv4 算法[14]的提出解决了一阶段算法检测精度不够的问题。该算法从特征提取网络结构、数据处理以及模型训练等多个方面对YOLOv3 算法进行了改进,无论是检测精度还是检测速度方面均较YOLOv3 算法得到了质的提升,但YOLOv4 算法在一些较暗和形变的图像处理任务中不能达到最佳检测效果。

鉴于以上问题,本文基于YOLOv4 算法的思想提出一种改进的检测算法,以克服绝缘子图像光线较暗的问题,并自适应绝缘子形变图像的特征学习。

2 YOLOv4算法

YOLOv4 是一种通用的目标检测算法,期在YOLOv3的基础上从多个角度对模型进行了优化,如在数据预处理部分引入了马赛克数据增强方法,增强了模型的抗干扰能力;在特征提取网络结构中,YOLOv4 采用了更为稳健的网络结构CSPDarknet53,在卷积模块中采用了非线性表达能力更强的Mish 激活函数,并融合了残差单元与CSPNet[15]网络两者的优点,形成了语义特征学习能力更强的CSPResNet;在模型训练过程中,引入了Drop-block 的方式随机删除某些神经元,以降低模型过拟合的可能性。

YOLOv4 能适应多尺度的目标检测,得益于其强大的特征提取网络,网络结构如图1所示。

Fig.1 YOLOv4 network structure图1 YOLOv4网络结构

YOLOv4 算法输入图像的大小为416×416,通道数为3,首先经过卷积模块(Conv+BN+Mish)扩充图像的通道特征,再经过残差单元(Residual)提取目标的特征信息,并且特征图像的尺度不断缩小,通道数不断增加。网络结构的中部为SPPNet 模块,可使网络获得较大的感受野,学习到更为高级的语义特征。在网络结构后端有跨层连接(Concat)结构以及卷积层,这是由于图像尺度的变化会导致特征信息丢失,而增加跨层连接可以对不同网络层的特征信息进行融合;卷积层则是为了将特征信息的大小和维度统一后进行跨层连接操作。YOLOv4 网络的输出端共有3个,分别为out1、out2 以及out3,3 个端口分别输出52×52、26×26 以及13×13 大小的特征图,大尺度的特征图像用于预测小目标,小尺度的特征图像用于预测大目标。

YOLOv4 将特征图划分为不同数量的网络格,每个网络格设置3 个预测框,每个预测框都会预测5 个参数,即目标的位置坐标(x,y)、目标预测框的宽和高(w,h)以及目标所属类别的置信度(confidence)。本文针对单类别的绝缘子进行检测,故模型输出的维度为3×(5+1)=18。

3 算法建立

3.1 绝缘子检测过程中的问题

在采集绝缘子图像过程中,图像质量会受到相机角度和光照等因素的影响,从而导致模型无法很好地学习到绝缘子的特征,为此在图像预处理过程中需要针对环境因素作出相应措施。此外,CNN 对图像输入的大小有限制,如YOLOv4 要求输入的图像大小为416×416,而采集到的图像大小一般不能达到这一要求,常规处理是对采集图像大小直接进行调整,而这会使得图像产生非刚体形变,从而损失掉大部分有用的特征信息,在采用卷积层学习绝缘子的特征表示时,卷积层固有的采样模式并不能很好地对绝缘子进行采样学习。图2 为某一绝缘子调整后的图像和尺寸。

Fig.2 Adjusted insulator image and size图2 绝缘子调整后图像和尺寸

3.2 绝缘子图像预处理

YOLOv4 算法采用马赛克数据增强策略丰富目标的特征信息,其将4 张目标图像通过随机缩放、随机翻转以及随机放置等方法进行组合,在对图像数据进行批次标准化处理时会计算这4 张图像的相关参数,故在GPU 显存不够的情况下,设置较小的batch 参数便可以较好地训练模型。

从图3 中可以看出,4 种不同绝缘子图像的亮度值各不相同,部分图像存在亮度值过大或过小的问题,这会给特征提取带来较大影响。针对图像亮度值过大和过小的问题,一般会采用伽马变换的方式进行调整。伽马变换是一种简单的指数运算,通过控制灰度缩放系数c和伽马因子r的大小对输出灰度值大小进行调整,从而改善图像亮度。假设输入图像和输出图像的灰度值分别为i和o,其取值区间均为[0-1],则伽马变换的计算公式为:

Fig.3 Different insulator picture brightness图3 不同绝缘子图像亮度

式中,当c 取1 时,不同的r值对输出图像的灰度值有不同程度的影响;当r>1 时,输出的灰度值相对输入的灰度值会变小,而r<1时则相反。

r值需要根据图像的特征人为确定。面对大量图像数据时,每个图像均需要设定不同的参数,此时人工方式已经失效。针对这个问题,本文借鉴文献[16]提出的自适应伽马变换方法对绝缘子图像亮度值进行调整。首先计算绝缘子图像三通道的亮度倾向指数k[17],公式为:

式中,Larg为绝缘子图像亮度均值;Lmin和Lmax分别为绝缘子图像中亮度值的最小值和最大值。

由式(2)可分别得出绝缘子图像3 个通道的k 值。文献[10]指出k值与式(1)中的r值呈线性关系,即:

根据设定的α和β值即可得出3 个通道的k 值,结合式(1)可以得到自适应伽马变换后的图像亮度值。

3.3 绝缘子图像形变处理

YOLOv4 算法输出的特征图大小是固定的,为满足这一特性,需要统一输入图像的大小(416×416),而本文使用的绝缘子图像大小为1 152×864。可以看出,绝缘子图像的宽和高与输入图像的宽和高并不同时呈现倍数关系,若强行进行尺寸调整势必会使得绝缘子图像扭曲,从而导致模型无法学习到有用的特征表示。针对这个问题,本文采用可变形卷积[18]替代传统卷积。传统卷积为规则的格点采样模式,并采用滑动窗口的方式按照从左到右、从上到下的顺序依次遍历整个图像,在面对形变后产生失真的绝缘子图像时,规则的格点采样已经不能提取到高质量的绝缘子特征。可变形卷积打破了传统卷积固有的采样模式,其对每个采样位置均增加了一个偏移量预测,以提高算法对形变后绝缘子图像特征的学习能力。

现假设有1 个大小为3×3 的卷积核kernel,对输入特征图x进行传统卷积计算,输出特征图局部位置l0处的特征映射用T(l0)表示为:

其中kernel及n的分别定义为:

式(4)中的w(*)表示卷积核的权重值,ln为kernel的某个局部位置。

可变形卷积与传统卷积最大的区别是前者加入了偏移量Δln的学习,从而使卷积采样点可以自适应满足形变的绝缘子图像,可变形卷积表示为:

4 实验结果与分析

4.1 实验数据准备与处理

选取中国电力绝缘子公开数据库[19],其包含不同材料、不同结构的绝缘子图像,分辨率为1 152×864,从中选取600 张质量较好的绝缘子图像作为本次实验数据。考虑到数据库样本量较少的问题,本文另从百度图库中爬取了400 张绝缘子图像,并采用LabelImg 软件对图像中的绝缘子进行标注,标注格式为VOC2007。

YOLOv4 算法需要预先计算锚框大小,以判断固定网格内是否含有目标并优化预测框与真实框的距离。原始的YOLOv4 算法得到的锚框数据是基于VOC 数据库获取的,与本文实验数据库的多样性与长宽比例均有较大差异,为此本文采用Kmeans[20]算法重新计算数据库的锚框。

Kmeans 算法是一种无监督的机器学习算法,采用随机选择聚类中心的方式计算聚类中心与每个样本数据的特征距离,并根据距离大小划分簇,从而得到新的聚类中心,不断循环迭代得到最终聚类结果。本文采用距离公式作为Kmeans算法的优化指标,表示为:

式中,IoU表示真实框与预测框的交并比。

根据Kmeans 算法,本文得到9 个不同大小的锚框,不同特征图大小对应的锚框关系如表1所示。

Table 1 Different sizes of the feature map corresponding to anchor box relationship表1 不同特征图大小对应的锚框关系

4.2 实验环境与模型评价指标

实验仿真平台为PyCharm,编程语言为Python,采用第三方图形处理库OpenCV 及深度学习框架Keras。计算机配置为Intel®CoreTMi7-6700H CPU,16G 内存,Nvidia Ge-Force GTX 2070 GPU,操作系统为Ubuntu16.04.2。模型训练Epoch 数为100,批次大小设置为16,学习率设置为0.000 1。

采用精确率P(Precision)和召回率R(Recall)作为模型评价指标,分别表示为:

式中,TP表示绝缘子被正确预测的数目;FP表示背景被预测为绝缘子的数目;FN表示绝缘子被预测为背景的数目。

为更好地评价模型的综合性能,基于不同的IoU 阈值计算出模型的平均精确率AP(Average Precision),并采用每秒传输帧数(Frames Per Second,FPS)评价算法的检测速度,其中AP的计算公式为:

4.3 实验结果比较

为充分验证本文算法的的有效性,采用目前主流目标检测算法Faster RCNN、YOLOv3、YOLOv4、CornerNet、CenterNet 与本文算法进行比较实验,模型训练与测试均采用上述数据库,得到的实验结果如表2 所示。可以看出,本文算法的综合性能最佳,其中AP 指标达到93.2%,比YOLOv4 的检测精度提高了0.7%,检测速度为43FPS,比YOLOv4 的检测速度慢了1 帧,但仍然能够达到实时性的检测要求。表2 的前3 行算法均为锚框算法,使用预定义的锚框搜索绝缘子可能存在的位置,有利于绝缘子位置的精确判断,其中原始YOLOv4算法的AP 值和检测速度均高于其他两种算法,这得益与其采用的多模块网络结构,使得算法对绝缘子的特征学习能力大幅度提高。CornerNet 和CenterNet 算法作为无锚框算法的代表,摒弃了锚框机制的使用,直接将绝缘子的关键点部分作为目标候选区域,在检测精度上高于Faster RCNN 和YOLOv3。

Table 2 Comparison of experimental results of different algorithms表2 不同算法实验结果比较

图4 为4 种对照算法与本文算法在测试集上的检测效果比较,其中实验图像为从测试集中随机抽取的2 张图像,其明亮度以及背景复杂度均有所不同。

Fig.4 Test results of contrast algorithms compared with proposed algorithm图4 对照算法与本文算法测试效果比较

可以看出,Faster RCNN 和YOLOv3 算法在检测绝缘子的位置时,其预测框与真实目标位置存在一定差距,预测框并不能精确地包围住目标。CornerNet 算法虽然能够较为精确地预测出绝缘子位置,但存在多个预测框重叠的问题,分析认为,该算法虽然摒弃了锚框机制的使用,而采用预测目标的一对角点回归出目标的预测框,但在一幅图像中存在多个目标时,CornerNet 算法会预测出大量角点对,在对角点对进行分组操作时会错误地将不同目标的角点分为一组,从而导致不同目标的预测框出现重叠现象。同时,本文发现Faster RCNN、YOLOv3 和CornerNet 算法在第2 张图像的检测中存在一定的漏检现象,如图4 第2 列图像所示,第2 张图像光线较暗,且绝缘子目标存在一定的遮挡现象,导致以上3 种算法产生了漏检问题,说明这3 种算法不能较好地克服光线昏暗以及目标遮挡问题。

YOLOv4 算法在这2 张测试图像中的检测效果相较其他3 种对照算法更好,其采用的马赛克数据增强方法能在一定程度上克服目标遮挡问题,同时其稳健的模型结构具有很好的语义特征学习能力。YOLOv4 算法在第2 张光线较暗的测试图像中虽然能够检测出遮挡的绝缘子,但预测框不够精准,这可能与图像光线较差以及目标图像形变等因素有关。综上所述,本文算法能较好地克服以上问题,采用的自适应伽马变换在光线较暗的场景中也能检测出绝缘子,同时采用的可变形卷积能够学习到各种形变目标的特征,自适应形变目标的精准预测。

4.4 模型鲁棒性能验证

为验证本文模型的鲁棒性能,对绝缘子图像进行翻转、裁剪以及缩放处理,然后使用本文模型对处理后的绝缘子图像进行检测,结果如图5 所示。可以看出,绝缘子图像在经过各种变换后会丢失掉一定量的特征信息,并且存在失真的问题,但本文模型仍然能够较好地检测出相应目标,充分说明该模型的鲁棒性较好。

Fig.5 Robust performance verification of the proposed model图5 模型鲁棒性能验证

5 结语

本文提出一种基于YOLOv4 的绝缘子检测算法,该算法能够克服图像形变、失真问题的影响,且具有检测精度高、速度快的优点,相较于几种常用绝缘子检测算法,本文算法的综合性能最佳。然而,本文算法在模型训练时需要花费大量时间,同时对计算机配置有较高要求,后期将重点研究模型压缩以及训练效率提高等问题,以实现算法的成功落地转化。

猜你喜欢
绝缘子卷积预测
无可预测
选修2-2期中考试预测卷(A卷)
选修2-2期中考试预测卷(B卷)
基于3D-Winograd的快速卷积算法设计及FPGA实现
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
1000kV耐张绝缘子串单片绝缘子的带电更换技术
500kV绝缘子串含零值绝缘子时的电晕放电分析
绝缘子的常见故障及排除方法
一种基于卷积神经网络的性别识别方法