掌桥专利:专业的专利平台
掌桥专利
首页

基于YOLOv5算法的无人机巡检图像中绝缘子快速识别与单目测距方法

文献发布时间:2024-04-18 20:00:50


基于YOLOv5算法的无人机巡检图像中绝缘子快速识别与单目测距方法

技术领域

本发明涉及输电线路绝缘子检测技术领域,具体涉及一种基于YOLOv5算法的无人机巡检图像中绝缘子快速识别与单目测距方法。

背景技术

输电线路是电力系统的重要组成部分,而对输电线路进行巡检维修,是保证电力系统稳定的重要一环。随着输电线路的建设,人工巡检任务加重,传统巡检方式的缺点更加突出,这种较为落后的巡检方式已经不能完全适应现代化电网建设与发展的需求。无人机相较于传统人工巡线方式,具有效率高、不受地形限制、调度灵活、实时信息传输、安全等优点,已经在逐步取代人工巡线。但是,无人机巡线尚且存在一些需要解决的问题。输电线路在运行过程中,会在线路周围产生电磁场干扰无人机信号,也有可能产生电场击穿无人机的电子器件,造成无人机坠毁甚至威胁输电线路安全。所以无人机在巡检过程中,必须要考虑输电线路电磁场对无人机的影响,与线路保持一个合理的安全距离。

目前的无人机测量安全距离的方法中,比较具有优势和发展前景的是采用单目视觉测距。现有的单目测距方法大部分都是针对汽车驾驶中与前车之间距离的计算,测距的单目摄像头需要固定,并且高度也要提前测量。但是,在无人机对输电线路进行巡线过程中,无法实时得到无人机的单目摄像头到被测绝缘子所在水平面的实际高度,故现有的单目测距模型无法应用在绝缘子的测距中。

发明内容

为了实时测量无人机到绝缘子的距离,本发明提供一种基于YOLOv5算法的无人机巡检图像中绝缘子快速识别与单目测距方法,通过YOLOv5的深度学习算法实现对绝缘子的识别,然后根据设计测距模型,导入到检测代码中;最后根据绝缘子的检测结果,输入相机参数和绝缘子参数,实现对绝缘子图片的测距和实时测距。该方法高效,准确性高且适应性强,可为输电线路无人机巡线提供一种经济,实用性强的辅助测距手段。

本发明采取的技术方案为:

基于YOLOv5算法的无人机巡检图像中绝缘子快速识别与单目测距方法,包括以下步骤:

步骤1:标定绝缘子图片,按照一定比例训练集、测试集、验证集制作绝缘子数据集;

步骤2:配置YOLOv5模型参数,进行深度学习训练;

步骤3:输入绝缘子图片,检验深度学习训练结果;

步骤4:建立无人机单目测距模型,并将该测距模型的设计代码加入到检测代码中,实现检测并测距。

所述步骤1包括以下步骤:

S1.1:获取中国输电线路绝缘子数据集(CPLID),该数据集包含600张不含缺陷的绝缘子图片,结合工程中无人机巡线拍摄的绝缘子图片,将绝缘子图片扩充至1235张;

S1.2:通过使用开源的图像标注工具LabelImg对绝缘子图片进行标定,并使用python代码将所有绝缘子图片和标签按8:1:1的比例划分训练集、测试集和验证集,制作成YOLO数据集。

所述步骤2中,配置YOLOv5模型的训练参数:初始的权重为yolov5s.pt,训练模型为yolov5s.yaml,数据集参数为coco.yaml,训练轮次为300轮,图片的大小统一修改为640×640。

所述步骤3中,训练结果以P、R、mAP参数来验证训练结果的准确性,P为精度,R为召回率,mAP为平均准确率,是P、R曲线围成的面积,面积越接近1结果越好;

具体的计算公式如下:

其中:TP为把正例分类归为正例,FP为把正例分为负例,TN为把负例归为负例,FP为把负例归为正例;

精度P表达式为:

召回率R的表达式为:

准确率AP的表达式为:

平均准确率mAP的表达式为:

AP

训练完成后,随机抽取绝缘子图片,配置YOLOv5模型中的detect文件进行绝缘子的检测,用于检测训练模型的准确度。具体为:调整detect文件的参数:修改权重文件的路径,使用训练好的权重文件,然后修改需要检测的文件位置,检测文件可以为图片、视频和摄像头。其他的参数和train文件相同,具体参数如下:

所述步骤4中,两种测距模型的精度和适用性,并选择精度更高的一种测距模型进行测距:设计无人机到输电线路绝缘子的单目测距模型,分别通过单片绝缘子和双片绝缘子测距,单片绝缘子的测距模型如图7(a)所示,依据单片绝缘子的长和宽进行测距,具体的计算公式为:

双片绝缘子的测距模型如图7(b),依据两片绝缘子的宽度和距离进行测距,具体的计算公式为:

将测距模型设计成python代码,并加入到检测代码中;

计算部分的具体代码如下(测距模型设计成python代码):

嵌入部分如下(测距代码嵌入到检测代码):

计算结果显示在识别框上方。

首先要进行坐标系的转换,获取世界坐标系和像素坐标的关系。世界坐标系到像素坐标系转换的最终公式为:

其中:f

视觉测距中产生的相机畸变也需要进行修正,相机畸变的矫正公式为:

其中:

距离D的最终计算公式为:

其中:a为绝缘子的宽,b为绝缘子的长,A为绝缘子的像素宽,B为绝缘子的像素长。还包括步骤5:探索不同外界条件对测距误差的影响:

①.测量改变被测绝缘子的类别的误差,探索不同类别的绝缘子的测距误差;

②.测量改变相机拍摄姿态,探索相机的拍摄姿态对测距结果的影响;

③.同时天气对测距的结果也有影响,通过改变亮度来模拟天气环境的改变,测量误差。本发明一种基于YOLOv5算法的无人机巡检图像中绝缘子快速识别与单目测距方法,技术效果如下:

1)本发明的步骤1、步骤2、步骤3将现有的开源数据集进行了扩充,加上了国网公司巡线过程中的实际拍摄的无人机巡线照片,采用深度学习技术,训练了一个适应性强、可靠性高的无人机图像识别模型。该模型经过大量的图像数据训练,能够自动地从输入的无人机巡线照片中提取关键特征,并准确地识别出各种类型的绝缘子。

2)本发明的步骤4考虑到传统单目测距模型计算距离时需要获得单目相机高度的局限性,本发明设计了两种基于绝缘子尺寸的单目测距模型,并进行比较,选择出精度更高的测距模型,使单目测距适用于无人机巡线时的测距,并拥有较高的精度。

3)本发明的步骤5探索了绝缘子的种类,相机的拍摄姿态和外界光照强度对该算法和模型精度的影响,验证了本模型在不同的环境和条件下的准确性和鲁棒性。

附图说明

图1为本发明方法的流程示意图。

图2为绝缘子标定照片。

图3为深度学习训练过程图。

图4(a)为深度学习P参数训练结果;

图4(b)为深度学习R参数训练结果;

图4(c)为深度学习mAP参数训练结果。

图5(a)为绝缘子测距效果图一;

图5(b)为绝缘子测距效果图二。

图6为相机标定图。

图7(a)为基于单片绝缘子特征尺寸的单目测距模型图;

图7(b)为基于两片相邻绝缘子的单目测距模型图。

图8为不同类别绝缘子的误差棒图。

图9为俯仰角与误差的关系图。

图10为亮度变化效果图

图11为改变亮度误差对比图。

具体实施方式

针对输电线路无人机测量安全距离,本发明提供一种基于YOLOv5算法的无人机巡检图像中绝缘子快速识别与单目测距方法,通过物体尺寸与像素大小的关系,获得相机到绝缘子的实际距离,并考虑了实际工程应用中对测距结果产生影响的内外因素,对这些因素做了实验验证,并分析这些内外因素的产生的误差影响。

如图1为本发明方法的流程示意图,本发明提供的这种基于输电线路无人机的单目测距方法,包括如下步骤:

S1.标定绝缘子照片,按照训练集:测试集:验证集为8:1:1的比例制作绝缘子数据集;

S2.配置YOLOv5模型参数,进行深度学习训练;

S3.检验深度学习训练结果,输入绝缘子照片进行检测实验;

S4.建立无人机单目测距模型,并将该测距模型设计代码加入到检测代码中,实现检测并测距;

S5.验证该测距模型的精度和适用性。

所述步骤S1中,获取中国输电线路绝缘子数据集(CPLID),该数据集包含600张不含缺陷的绝缘子图片,结合工程中无人机巡线拍摄的绝缘子图片,将绝缘子图片数据集扩充至1235张。通过使用开源的图像标注工具LabelImg对绝缘子图片进行标定,并使用python代码将所有图片和标签按8:1:1的比例划分训练集、测试集和验证集,制作成YOLO数据集。

所述步骤S2中,配置YOLOv5的训练参数:初始的权重为yolov5s.pt,训练模型为yolov5s.yaml,数据集参数为coco.yaml,训练轮次为300轮,图片的大小统一修改为640×640。

所述步骤S3中,训练结果以P、R、mAP等参数来验证训练结果的准确性。P为精度,R为召回率,mAP为平均准确率,是P、R曲线围成的面积,面积越接近1结果越好。box_loss为损失函数GIoU的均值;obj_loss为目标检测loss均值;cls_loss为分类loss均值,三者均为数值越小越准;具体的计算公式如下,其中TP为把正例分类归为正例,FP为把正例分为负例,TN为把负例归为负例,FP为把负例归为正例:

精度P表达式为:

召回率R的表达式为:

准确率AP的表达式为:

平均准确率mAP的表达式为:

训练完成后,随机抽取绝缘子图片,配置YOLOv5中的detect文件进行绝缘子的检测,用于检测训练模型的准确度。

所述步骤S4中,设计无人机到输电线路绝缘子的单目测距模型,通过单片绝缘子测距;将测距模型设计成python代码,并加入到检测代码中。

首先要进行坐标系的转换,获取真实世界的坐标和像素坐标的关系。世界坐标系到像素坐标系转换的最终公式为:

其中,f

视觉测距中产生的相机畸变也需要进行修正,相机畸变的矫正公式为:

其中:

所以推得距离D的最终计算公式为:

所述步骤S5中,包括测量改变被测绝缘子的类别的误差,探索不同类别的绝缘子的测距误差;测量改变相机拍摄姿态,探索相机的拍摄姿态对测距结果的影响;同时天气对测距的结果也有影响,通过改变亮度来模拟天气环境的改变,测量误差。

在具体实施过程中,包括如下步骤:

步骤一、在本实施例中,以输电线路绝缘子测距为例,使用LabelImg对绝缘子进行标定,标定格式为YOLO,绝缘子的标定照片如图2所示,选择单片绝缘子的轮廓并标注其名称为insulator_single。标定完成后,使用python代码将标定好的文件和照片按照训练集:测试集:验证集为8:1:1的比例制作绝缘子数据集。制作好的数据集如下所示:

步骤二、配置YOLOv5的训练参数。将训练的权重设置为yolov5s.pt,训练模型为yolov5s.yaml,并配置yolov5s.yaml文件的参数,设置好需要训练的数据的种类。然后设置训练的数据集路径为coco.yaml,配置coco.yaml文件的参数,设置训练数据集在电脑中的地址和位置。修改完需要配置的训练参数后,然后修改train.py里的训练轮次为300轮。修改好后的train.py的训练参数如下所示:

上述文件的配置参数如表1所示。

表1 train.py设置的所有参数文件

进行绝缘子数据集的训练。考虑到电脑的性能问题,如果使用性能较低的GPU进行训练,速度会很慢,所以在此处采用AutoDL算力云进行深度学习训练。先将上述标定和分类好的绝缘子数据集进行压缩处理,整理成一个压缩文件。然后将压缩文件通过AutoDL网盘上传。上传完成后,租用AutoDL的GPU开始训练。本次深度学习训练操作系统为Linux系统,GPU为英伟达RTX 3090,内存为24G,深度学习环境为PyTorch1.8.1+python 3.8+cuda11.1。深度学习的过程如图3所示。

步骤三、深度学习训练完成后,需要检测训练结果:

将训练完的文件导入到detect.py文件中进行检测。训练完成后,会生成run文件夹,在run文件夹中,储存自动生成的检测结果。训练中衡量训练结果的各种参数会自动生成,如图6所示。还包含两个pt文件,是进行绝缘子检测的结果储存文件,一个是best.pt,一个是last.pt。将pt文件设置到detect中,直接就可以进行绝缘子检测。

检测结果如图5(a),图5(b)所示,绝缘子被识别框选,根据识别框的像素宽度和绝缘子的尺寸进行距离计算,并将计算结果显示在识别框的上方。将识别图片进行了更换,放大后更加清晰地显示了测距结果。

步骤四、设计绝缘子的单目测距模型,并设计代码导入到检测文件中:

首先要进行坐标系转换确定真实世界物体坐标与像素坐标的关系。坐标系转换是将世界坐标系,相机坐标系,图像坐标系和像素坐标系四大坐标系经过刚体变换,透视投影和二次转换三次变换,将三维世界坐标系中的物体投影为二维平面的像素点。O

根据上述世界坐标系到像素坐标系转换的公式可知,如果要计算距离,需要得到相机的焦距横向焦距f

将相机标定板固定,然后使用拍摄相机拍摄不同角度的若干张标定板的图片,然后通过MATLAB软件进行拍摄照片的分析计算,得到拍摄相机的具体参数。图6为相机标定图片。

相机畸变是指摄影机器在将实际世界中的物体投影到成像平面时,由于镜头形状、位置等因素导致的图像失真现象。相机畸变一般可分为径向畸变和切向畸变,价格较贵的工业摄像头畸变很小,在此相机切向畸变不做考虑。

通过上述步骤,确定了真实世界中的目标绝缘子和图像平面中绝缘子的关系。考虑到无人机在巡线过程中,难以直接获得无人机到绝缘子所在平面的垂直高度;同时,改变无人机的拍摄姿态后,相机的姿态角也会随之变化,从而测量的距离也会产生变化,引起较大的误差。所以,需要对距离进行修正。相机的姿态角分为俯仰角,偏航角和翻转角。一般情况下,需要考虑三个角度对测距的影响。但是,绝缘子的形状可以类比与圆柱体。改变偏航角,对绝缘子的测距没有影响,绝缘子的像素宽度不会产生变化。而通常认为相机的翻转角对单目测距的影响很小,所以,本发明仅考虑相机的俯仰角对测距的影响。因此,本发明设计了两种无需测量高度,并考虑无人机飞行姿态的单目测距模型。设计的单目测距模型见图7(a)、图7(b)所示。图7(a)是基于单片绝缘子特征尺寸的单目测距模型,根据被测的单片绝缘子的长度和宽度来计算绝缘子的俯仰角和距离,得到无人机到绝缘子的实际距离;图7(b)是基于两片相邻绝缘子的单目测距模型,根据两片被测绝缘子之间的高度和绝缘子的宽来计算距离和角度。

步骤五、验证该测距模型的测距效果:

测距系统完成后,需要进行以下实验来验证此测距系统的可行性和实用性:被测绝缘子的类别对测距的误差影响;相机拍摄姿态产生的平均误差大小;天气环境对测距精度的影响。

首先是被测绝缘子的类别对测距的误差影响,在输电线路设计中,选择适合该输电线路的绝缘子需要考虑额定电压、环境条件、线路类型、经济性等问题。而深度学习对不同类别的绝缘子的识别和轮廓提取的效果也不一样。不同类型的绝缘子在形状、材料、表面纹理等方面可能存在差异,这些差异可能会影响深度学习算法的识别准确率。所以,为了提高本测距程序的普适性,实验针对输电线路最常用的三种绝缘子:复合绝缘子,玻璃绝缘子和瓷式绝缘子进行测距,并根据三种类别的绝缘子的单目测距结果来分析此程序对不同类别的绝缘子的测距精度。实验在不改变其他条件的情况下,对三种绝缘子在1m,3m,5m处进行测距。不同类别的绝缘子测距结果如表2和图8所示。结果表明,不同类别的绝缘子,测距误差各不相同。复合绝缘子的平均测距误差为4.76%,玻璃绝缘子的平均误差为8.4%,瓷式绝缘子的平均误差为7.11%,所以复合绝缘子的测距结果要好于玻璃绝缘子和瓷式绝缘子。而复合绝缘子在5m较远距离测量时,误差较大,而玻璃绝缘子和复合绝缘子,在距离较近时,测量误差较大。

表2对三种绝缘子在1m,3m,5m处进行测距结果

相机拍摄姿态产生的平均误差大小,考虑到在输电线路无人机巡线中,需要在各种复杂的情况下进行拍摄,所以,无人机的飞行姿态通常不会与绝缘子保持相平,所以本发明提出的修正的测距模型来优化有姿态角的测距结果,并验证本发明所提出的测距模型的精度。实验在距离复合绝缘子3m处,使测距相机具有+15°和-15°的俯仰角,测量相机在不同俯仰角的情况下,测距模型的误差,测距结果如图9和表3。如图9所示,相机的拍摄俯仰角对于测距结果存在影响。在相机的俯仰角为0时,误差是最小的。当测距俯仰角增大时,误差也会增大,并且距离越远,误差也会变得更大。在-15°到15°的测距距离范围内,误差最大为6%。所以改变相机的俯仰角对于测距结果有一定的影响,且距离越远,俯仰角越大,测距误差越大。但是本发明提出的测距模型在改变相机俯仰角的情况下,测距结果较为优异,能够适应相机在不同姿态下的测距。

表3在不同俯仰角的情况下,测距模型的误差、测距结果

天气环境对测距精度的影响,天气状况的不同同样会影响测距精度。由于单目测距是视觉测距,在晴天和阴天等不同情况下,拍摄的绝缘子图片由于亮度的改变,识别效果也会不同,识别效果影响绝缘子的框选,直接会影响测距。所以实验欲验证不同天气的测距精度,但是天气的变化无法控制,所以实验拟采用改变图片的亮度来模仿不同天气下的测距情况。亮度+100%对应晴天,而-100%对应阴天。在不改变距离、俯仰角和绝缘子类别这些外在因素的情况下,对复合绝缘子3m处进行测距,计算误差,结果如图11和表4。如图10所示,当亮度降低或者升高时,误差都呈现增大的趋势,在高亮情况下误差会更大,达到了12.3%,而在低亮度情况下,误差相对小。所以,天气状况对此测距模型存在一定的影响,并且在高亮度的晴天时,误差更大。

表4复合绝缘子3m处进行测距,计算误差

综上所述,本发明基于YOLOv5算法的无人机巡检图像中绝缘子快速识别与单目测距方法,包括对现有的开源绝缘子数据集进行了扩充和标定,然后采用YOLOv5s模型进行了训练、验证和测试,建立了绝缘子串的测距模型,设计代码加入到检测模块中,实现对绝缘子的识别和测距。实验结果表明:该模型能够准确识别输电线路不同类型的绝缘子并进行精确测距,平均测距误差为4.76%;该模型对复合绝缘子的识别和测距效果最佳,改变俯仰角和相对距离,最大测距误差为6%;在不同天气条件下,亮度变化越大,对绝缘子的识别测距误差也越大,亮度增加至100%时,误差最高可达到12.3%。测距所需平均时间为0.2984s,可以实现高效、高精度测距。该方法可为输电线路智能化巡检和测量安全距离提供一种快速而可靠的解决方案,具有实用价值。

技术分类

06120116541518