面向无人机巡检的农村输电线螺栓锈蚀检测
2022-02-28黄剑锋王淑青王年涛张鹏飞顿伟超
黄剑锋,王淑青,王年涛,张鹏飞,顿伟超,鲁 濠
(湖北工业大学电气与电子工程学院,湖北 武汉 430068)
因农村输电线路运维难度较大,螺栓锈蚀较常见,未及时处理锈蚀严重的螺栓会加剧其对供电稳定性的威胁。随着无人机技术和基于深度学习的目标检测技术的发展,电网巡检变得更加便利[1-2]。此外,深度学习亦能准确检测,防鸟刺[3]、防震锤[4]。输电线路部件检测十分常见,不过对螺栓锈蚀检测的研究不多[5],且对农村输电线检测的针对性不强。
针对农村输电线螺栓锈蚀检测难度大,人工巡检成本高的问题,提出一种面向无人机图像的农村输电线螺栓锈蚀检测方法,利用YOLOv5结合图像锐化和去雾的方法可以高效精准地检测螺栓锈蚀与否,对比其他常见的网络模型拥有更好的网络性能。
1 螺栓锈蚀检测原理
螺栓锈蚀检测方法主要基于YOLOv5系列模型中的YOLOv5l[6]卷积神经网络,其在推理速度与推理精度方面均有优异表现,结构与其他YOLO[7]网络相似,为实时one-stage检测网络,由Input、Backbone、Neck和Output四部分组成,其网络结构见图1。
Input:训练螺栓样本数据集的输入端,采用Mosaic数据增强策略,能够随机选择不同的螺栓图像进行裁剪并拼接为一张图片,丰富了输入图像的多样性,对小目标的检测效果有较好提升,可以增强网络模型对螺栓目标的检测能力。
Backbone:主要的特征提取部分,能够提取输入的螺栓图像的总体特征并进行分类。其结合了Focus和CSPNet(Cross stage Paetial Networks)网络结构,Focus的核心是切片操作,螺栓图片进入Backbone后,利用切片操作将宽高信息整合到卷积通道的c维度,即将输入的640×640×3的特征图变成320×320×12的特征图,以此提升模型的推理速度。CSPNet将梯度的变化集成到特征图中,从而解决了梯度信息重复问题,能够提取丰富的螺栓图像特征,有效地提升了模型的推理精度。
图 1 YOLOv5l网络模型结构
Neck:强化网络的特征提取能力,进一步提高网络对螺栓图像的分类和检测能力,其结合了特征空间金字塔(FPN)、路径融合网络(PAN)和CSPNet网络结构,FPN将高层的强语义特征自上而下传递下来,增强语义信息,而未传递定位信息,PAN在FPN的后面添加一个自下而上的金字塔,将低层的强定位特征传递上去,CSPNet也加强了网络特征融合的能力。
Output:螺栓样本数据集的输出端,可以对检测到的螺栓目标进行标注,采用GIoU_loss作为边界框的损失函数,并且采用NMS非极大值抑制算法消除了多余的检测框,提高了网络模型的检测精度。
同时,YOLOv5l采用Leaky ReLU激活函数实现数据在网络节点输入端到输出端的映射,能够强化网络的学习能力,其定义为:
式中,λ是一个位于0~1之间的设定值,在网络反向传播过程中,Leaky ReLU在输入小于零的部分时仍可以计算得到梯度,可以解决ReLU函数反向传播时值可能为0的问题。
边界框损失函数用于网络模型对螺栓目标的定位,YOLOv5l采用GIoU函数的定义:
式中,A、B分别表示两个边界框,C表示包含A和B边界框的最小范围,相比IoU函数其定位能力更强,有助于提高模型的检测精度。
2 实验预处理
2.1 数据集制作
本实验用到的农村输电线路图像主要由无人机采集,地点为湖北两市某乡镇,在不同市域采集时天气情况也不相同,输电线图像的环境背景丰富性得到满足。将获得的无人机巡检视频文件进行截图,最终择优选取1000张输电线螺栓截图,图中基本覆盖常见的输电线六角螺栓。由于农村输电线螺栓目标较多,且目标较小,检测起来难度较大,为了提高针对螺栓小目标的检测精度,对检测模型进行小目标检测优化,以提升检测模型的整体性能。对螺栓数据集进行特定方式的数据增强,即对包含螺栓的图像进行过采样,并通过多次复制粘贴螺栓的方式来增加每张图片中的螺栓数量,提高相应Anchor的匹配量,螺栓小目标过采样示例见图2。Anchor即预定义边框,预定义边框就是一组预设的边框在训练时,以真实的边框位置相对于预设边框的偏移来构建训练样本。YOLOv5算法可以自动学习Anchor的尺寸。
图 2 螺栓小目标过采样
完成螺栓图像的采集和螺栓小目标过采样后,挑选部分图像分别进行水平翻转、随机旋转、亮度调节、添加噪声等数据扩充操作。水平翻转和随机旋转可以模拟无人机从不同角度的拍摄图像,亮度调节可以模拟不同光照条件下输电线路的视觉效果。通过该数据扩充手段,丰富数据集内容,有效避免模型训练时过拟合现象,同时提高了检测模型的泛化能力。数据制作完成后,最终共得到3000张农村输电线的图像,数据量级得到保证,具体的图像数据扩充效果见图3。
图 3 数据扩充
数据扩充完成后,使用LableImage对图像进行标注,其中,由于输电线中螺栓目标较小,在部分图片中人眼无法判别其是否生锈,故一律将其标记为普通螺栓,只有当人眼可以清晰判别螺栓已生锈时,方可将其标记为锈蚀螺栓。标注后统计数据集内螺栓数目,其中包括锈蚀螺栓1806个,普通螺栓3980个,螺栓数据集按8∶2的比例划分为训练集与测试集。
2.2 图像预处理
在螺栓数据集进行训练之前,分别采用暗通道去雾和二阶微分锐化等预处理手段提高数据集中部分图像的清晰度,同时保留处理前的测试集,以供对比实验。
为了保障输电线路运行稳定性,巡检无人机无法近距离靠近输电线路部件,同时由于设备的局限性,无人机获取的图像数据存在部分模糊样本,为了提高螺栓检测精度,将模糊样本进行锐化处理。二阶微分离散公式采用拉普拉斯算子,二元函数f(x,y)的拉普拉斯变换定义为:
在x和y方向二阶偏微分为:
综合上述公式可得到:
∇2f(x,y)=f(x+1,y)+f(x-1,y)+
f(x,y+1)+f(x,y-1)-4f(x,y)
获得公式后,可得到基于拉普拉斯算子的模板,拉普拉斯算子强调图像中灰度的突变,且不强调图像的缓慢变换区域,因此一些渐变的浅灰色边缘线将成为图片轮廓的背景色,然后再将原图和拉普拉斯图像进行叠加,保持原图像的同时可以看到增强的边缘图像,从而实现螺栓图像的锐化处理。输电线路图像锐化处理图见图4,通过细节图片可以看出,锐化处理后的螺栓轮廓更为清晰,可以降低模型对螺栓的检测难度。
图 4 二阶微分锐化处理
秋冬季节农村地区常受大雾侵扰,电力巡检难度较大,在检测之前对有雾待测图像进行去雾处理,可以有效提高输电线路部件的检测准确率。图像去雾采用暗通道去雾算法,暗通道的值由以像素x为中心,分别取RGB通道窗口的最小值,暗通道的定义[8]:
式中,Jdark为图像暗通道像素值,且趋近于0;Jc为其他某个色彩的通道;Ω(x)是以x为中心的一块方形区域。大气散射模型由直接衰减项和大气光照两部分组成,公式表示如下:
I(x)=J(x)t(x)+A(1-t(x))
(1)
式中,I(x)是有雾的螺栓图像;J(x)是景物反射光强度,也是需要计算后得到的去雾后图像;t是透射率;A是全局大气光照强度。通过A、t和I的值,可以求得去雾图像J,由于I(x)和A可视作定值,所以计算t的值便可以实现图像去雾。根据大气散射模型和暗通道的定义,透射率t可表示为:
(2)
Ic是已知的输入图像,计算Ac的值即可求得透射率,首先对输入的有雾图片进行暗通道处理,然后选择暗通道内总像素点数的千分之一个(记为T)最亮的像素点并记录这些点的坐标,再根据点坐标在原输入图像找到该点的三个通道,最后进行像素点求和,可得到(sumr,sumg,sumb),其中Ar=sumr/T,Ag=sumg/T,Ab=sumb/T,最终可以得到全局大气光照值Ac=[Ar,Ag,Ab],根据式(2)可以得到t的值,然后代入式(1),进一步可求得J(x),实现图像去雾(图5)。
图 5 暗通道去雾
3 实验过程与结果分析
3.1 实验配置
将已标注好的农村输电线螺栓数据集作为训练样本,采用YOLOv5l网络进行模型训练,训练平台的配置信息见表1。
表1 训练平台配置
本实验主要由Python语言、MATLAB语言完成,网络模型的训练框架为Pytorch1.7.1。模型训练前,初始化voc和coco数据集里类别数、类别名称和训练路径等相关参数。选择YOLOv5l为预训练模型,采用Adam算法进行训练优化,图像输入尺寸设为640×640,最大迭代轮数设为300,每次训练图片数设为8;动量因子值设为0.9;权重衰减系数设为0.0005;初始学习速率设为0.001。
3.2 模型评估
模型训练完成后,通过训练日志内的指标进行模型评价,目标检测模型的评价指标通常包括损失值(loss)、平均精度均值(mAP)等。损失值是样本预测值与真实值之间的误差,损失值越小,说明螺栓预测效果越好,损失值由损失函数计算得到,YOLOv5l损失函数共包括边界框回归损失(Lbox)、置信度损失(Lobj)、分类损失(Lcls),置信度损失与分类损失通过交叉熵方法计算。YOLOv5l网络训练完毕后自动生成损失值曲线图,三类损失值变化见图6。
图 6 损失值
图中横坐标为300,代表共迭代300轮,三类损失值总和为整体损失值,最终损失值低于0.1,收敛效果好,说明预测结果与实际存在的偏差较小。
平均精度均值是根据在螺栓数据集上预测得到的精确率(Precision)和召回率(Recall)决定。以Recall为横轴,Precision为纵轴的曲线称为P-R曲线,P-R曲线下所围成面积占总体的比例记为精度均值(AP),两种类别螺栓AP值的平均值记为mAP值,其值越大,说明网络模型的预测效果越好,模型的精度值随迭代轮数变化的曲线见图7。从图7可以看出,检测模型的精度值较高,从训练日志可见最终的精确率和召回率分别为89.29%、90.70%,平均精度均值为90.21%,模型整体检测精度较高,能够实现农村输电线路螺栓锈蚀检测任务。
图 7 精度值
完成YOLOv5l网络模型的训练并获取模型指标后,保持训练平台的配置信息不变,使用YOLOv4[9]、Faster-RCNN[10]和SSD[11]等网络模型在相同训练集上进行训练,最终选择各网络模型的最佳权重在测试集上进行对比分析。同时,使用YOLOv5l分别在采用和未采用锐化、去雾等螺栓图像预处理方法的测试集上进行对比分析,不同模型及方法的对比见表2。
表2 模型性能对比
由表2可知,在螺栓数据集上,相比YOLOv4、Faster-RCNN和SSD网络模型,YOLOv5l模型的mAP值分别提高了2.6%,5.8%,11.0%;采用锐化和去雾预处理方法的mAP值较未采用提高了2.7%,普通螺栓和锈蚀螺栓的精度均值分别达到93.3%、93.9%,说明经过锐化和去雾等方法处理之后,模型检测农村输电线螺栓的效果更优。
3.3 检测效果
模型训练完毕之后,首先在未采用去雾和锐化预处理方法的测试集进行效果验证,部分检测结果见图8。
图 8 测试结果
从图8可以看出,模型实际检测效果较好,仅存在少量漏检螺栓,由于图片背景较为复杂,图中螺栓目标的位置和角度各不相同,部分螺栓目标极为模糊,所以难以全部检测每幅图内的螺栓,不过无人机巡检时能够多角度拍摄到螺栓目标,所以在实际巡检过程中漏检率相当低。然后,在采用去雾和锐化预处理方法的测试集上进行效果验证,同时对比预处理之前图片的检测效果,检测结果见图9。
图 9 预处理前后测试结果
图9中黑色实线框内是漏检的螺栓,虚线框内为误检螺栓,对比锐化前的检测结果,经锐化处理后螺栓的置信度有较高提升,且没有漏检的螺栓,说明模型检测经锐化后的轮廓清晰的图片时精度更高,对于检测运动且易模糊的无人机图像有一定运用价值;经去雾处理后的图片仅有少量漏检,而原图漏检的螺栓较多,说明在雾天情况下输电线路巡检时螺栓小目标的检测难度较大,去雾处理后可以提高巡检系统在雾天等低能见度情况下工作时的检测精度,对于提高模型在复杂环境下的检测效率有一定帮助。
4 结论
提出了一种基于YOLOv5网络模型的输电线路螺栓锈蚀检测方法,收集包含螺栓的无人机图像,通过小目标过采样方法提高螺栓小目标的数量,然后运用图像扩充策略以满足数据集中输电线环境背景的丰富性,训练后得到的检测模型优于YOLOv4、Faster RCNN、SSD等网络,同时利用二阶微分锐化和暗通道去雾算法对数据集进行处理,检测模型在处理后的数据集上展现出更优性能,该方法能够用于农村输电线的无人机检测,对农村电网巡检的智能化发展有一定的积极意义。由于螺栓目标较小,模型的检测精度仍有提升空间,今后的研究将着重于提高模型针对小目标的检测能力,同时进一步扩充数据集并增加其丰富性,以提高模型的泛化能力,降低螺栓目标的漏检率。