输电线路数据集(绝缘子自爆,破损,闪络,鸟巢,防震锤脱落五种缺陷)包括:
1.绝缘子自爆
2.绝缘子破损绝、闪络
3.鸟巢
4.防震锤脱落
数据增强后的数量
对应数量:1828,1467,4370,1050,2185
用Lableme标注的,每张图片都会有一个相应的xml文件在旁边,数据集亲测有效,可用于深度学习目标检测研究。
自己用过yolov3,v5,v8,v9训练过,都有改进空间。下面训练结果是yolov8训练结果。
数据集名称
输电线路缺陷检测数据集
数据集概述
这是一个专注于输电线路中常见缺陷检测的数据集,特别是绝缘子自爆、破损、闪络、鸟巢以及防震锤脱落等五种典型缺陷。数据集已经过数据增强处理,包含不同数量的图片,旨在通过深度学习技术如YOLO系列模型来实现对这些缺陷的自动识别与分类。
数据集特点
- 多样性:涵盖输电线路中常见的五种缺陷类型,提供了丰富的训练样本。
- 数据增强:经过数据增强处理后,各类缺陷的数量分别为:绝缘子自爆1828张、绝缘子破损和闪络1467张、鸟巢4370张、防震锤脱落1050张、绝缘子破损与闪络2185张。
- 标注格式:使用LabelMe工具进行了详细标注,每张图片都有一个对应的XML文件,记录了图像中每个缺陷对象的位置信息。
- 适用模型:数据集已经在YOLOv3、YOLOv5、YOLOv8和YOLOv9等多个版本的模型上进行了验证,表明其适用于深度学习目标检测研究。
数据集构成
- 图像数量:总计约10900张图片(根据具体的数据增强程度可能有所变化)。
- 标签格式:每张图片都有一个对应的XML文件,用于记录图像中缺陷对象的类别、位置等信息。
- 标签种类:
- 绝缘子自爆
- 绝缘子破损
- 绝缘子闪络
- 鸟巢
- 防震锤脱落
数据集用途
- 缺陷检测:用于训练和评估识别输电线路中常见缺陷的算法。
- 质量控制:在电力行业应用中,可以辅助实现输电线路的自动化检测,提高巡检效率和准确性。
- 研究与开发:作为研究基准,帮助学术界和工业界评估不同目标检测算法的性能。
- 教育与培训:作为教学案例,帮助学生了解和掌握计算机视觉技术在实际问题中的应用。
数据集获取
输电线路缺陷检测数据集可以从相关的科研机构或开源项目中获得。请确保在使用数据集时遵循相关的许可条款和使用规定。
数据集使用说明
由于数据集已经过LabelMe标注,且每张图片都有一个对应的XML文件,因此可以直接用于目标检测任务中的模型训练。如果你打算使用YOLO系列模型进行训练,可能需要将XML格式的标注转换成YOLO所需的TXT格式。
数据集转换示例
以下是一个简单的Python脚本示例,用于将XML格式的标注转换为YOLO所需的TXT格式:
1import os
2import xml.etree.ElementTree as ET
3from PIL import Image
4
5# 数据集目录路径
6data_dir = 'path/to/transmission_line_defect_dataset'
7image_dir = os.path.join(data_dir, 'images')
8annotation_dir_xml = os.path.join(data_dir, 'annotations_xml')
9annotation_dir_yolo = os.path.join(data_dir, 'annotations_yolo')
10
11if not os.path.exists(annotation_dir_yolo):
12 os.makedirs(annotation_dir_yolo)
13
14# 类别映射字典
15class_map = {
16 'insulator_burst': 0, # 绝缘子自爆
17 'insulator_damage': 1, # 绝缘子破损
18 'insulator_flashover': 2, # 绝缘子闪络
19 'nest': 3, # 鸟巢
20 'damper_fallen': 4, # 防震锤脱落
21 'insulator_damage_and_flashover': 5 # 绝缘子破损与闪络
22}
23
24for xml_file in os.listdir(annotation_dir_xml):
25 if not xml_file.endswith('.xml'):
26 continue
27
28 tree = ET.parse(os.path.join(annotation_dir_xml, xml_file))
29 root = tree.getroot()
30
31 image_file = os.path.splitext(xml_file)[0] + '.jpg' # 假设图像格式为.jpg
32 image_path = os.path.join(image_dir, image_file)
33 image = Image.open(image_path)
34 width, height = image.size
35
36 with open(os.path.join(annotation_dir_yolo, os.path.splitext(xml_file)[0] + '.txt'), 'w') as f:
37 for obj in root.findall('object'):
38 label = obj.find('name').text.lower().strip()
39 if label in class_map:
40 class_id = class_map[label]
41
42 bbox = obj.find('bndbox')
43 xmin = int(bbox.find('xmin').text)
44 ymin = int(bbox.find('ymin').text)
45 xmax = int(bbox.find('xmax').text)
46 ymax = int(bbox.find('ymax').text)
47
48 x_center = (xmin + xmax) / 2.0
49 y_center = (ymin + ymax) / 2.0
50 w = xmax - xmin
51 h = ymax - ymin
52
53 x_center /= width
54 y_center /= height
55 w /= width
56 h /= height
57
58 f.write(f"{class_id} {x_center:.6f} {y_center:.6f} {w:.6f} {h:.6f}\n")
总结
输电线路缺陷检测数据集是一个非常实用的数据集,特别适用于电力行业的缺陷检测研究。它不仅涵盖了常见的五种缺陷类型,还通过数据增强增加了数据量,提高了模型的泛化能力。此外,该数据集已经在多个YOLO版本上进行了验证,表明其具有较高的实用价值。