变电站缺陷数据集8307张,带xml标注和txt标注,可以直接用于yolo训练

server/2024/9/22 5:21:48/

变电站缺陷数据集8307张,
带xml标注和txt标注,可以直接用于yolo训练,赠附五个脚本

变电站缺陷数据集

数据集概述

变电站缺陷数据集是一个专门针对变电站设备和环境缺陷检测的图像数据集。该数据集包含了8307张经过标注的图像,旨在通过机器学习和计算机视觉技术来识别和分类变电站中的各种缺陷,如设备损坏、异常行为等。数据集同时提供了XML和TXT两种标注格式,可以直接用于YOLO系列目标检测模型的训练。

数据集特点
  1. 全面性数据集涵盖了变电站设备的各种缺陷类型,包括但不限于设备损坏、异常行为等。
  2. 详细标注:每张图像都带有详细的标注信息,包括对象的类别、边界框坐标等。
  3. 兼容性强:提供了XML和TXT两种标注格式,既适合传统的基于XML的标注方式,也方便YOLO模型的直接使用。
  4. 实用性数据集可以直接应用于变电站的安全监控和设备维护,帮助及时发现并处理潜在的安全隐患。
数据集构成

  • 图像数量:8307张
  • 标注格式
    • XML格式:适用于多种基于XML的标注工具和模型训练。
    • TXT格式:适用于YOLO系列目标检测模型的训练。

数据集用途
  • 缺陷检测:用于训练和测试识别变电站中设备缺陷的算法。
  • 安全监控:在实际应用中,可以用于自动化监控变电站设备的状态,及时发现并处理安全隐患。
  • 故障预防:帮助电力部门提前预警,减少由于设备缺陷导致的事故风险。
  • 研究与开发:为研究人员提供一个基准数据集,用于比较不同算法的效果。
  • 教育与培训:作为教学资源,帮助学生理解计算机视觉和机器学习的基本概念。
数据集获取

变电站缺陷数据集可以从相关的科研机构、数据提供商或者通过开源社区获取。获取数据集时,请遵循数据集发布的许可协议,确保合法使用。

示例代码

下面是一个简单的示例代码,展示了如何使用Python加载和预览变电站缺陷数据集中的图像及其XML格式的标注信息。

1import os
2import random
3import xml.etree.ElementTree as ET
4import matplotlib.pyplot as plt
5from PIL import Image
6
7# 数据集目录路径
8data_dir = 'path/to/transformer_station_defect_dataset'
9image_dir = os.path.join(data_dir, 'images')
10annotation_dir = os.path.join(data_dir, 'annotations_xml')
11
12# 随机选择一张图像
13image_files = os.listdir(image_dir)
14image_file = random.choice(image_files)
15image_path = os.path.join(image_dir, image_file)
16
17# 加载图像
18image = Image.open(image_path)
19
20# 加载XML标注
21xml_file = os.path.splitext(image_file)[0] + '.xml'
22xml_path = os.path.join(annotation_dir, xml_file)
23tree = ET.parse(xml_path)
24root = tree.getroot()
25
26# 绘制边界框
27fig, ax = plt.subplots(1, figsize=(10, 10))
28ax.imshow(image)
29ax.axis('off')
30
31for obj in root.findall('object'):
32    bbox = obj.find('bndbox')
33    xmin = int(bbox.find('xmin').text)
34    ymin = int(bbox.find('ymin').text)
35    xmax = int(bbox.find('xmax').text)
36    ymax = int(bbox.find('ymax').text)
37    label = obj.find('name').text
38    
39    ax.add_patch(plt.Rectangle((xmin, ymin), xmax - xmin, ymax - ymin, edgecolor='r', facecolor='none'))
40    ax.text(xmin, ymin, label, color='r', fontsize=8)
41
42plt.show()
YOLO标注格式转换

如果您需要将XML格式的标注转换为YOLO所需的TXT格式,可以使用以下Python代码示例:

1import os
2import xml.etree.ElementTree as ET
3
4# 数据集目录路径
5data_dir = 'path/to/transformer_station_defect_dataset'
6annotation_dir_xml = os.path.join(data_dir, 'annotations_xml')
7annotation_dir_yolo = os.path.join(data_dir, 'annotations_yolo')
8
9if not os.path.exists(annotation_dir_yolo):
10    os.makedirs(annotation_dir_yolo)
11
12# 类别映射字典
13class_map = {
14    'defect_type_1': 0,  # 替换为实际的类别名和索引
15    'defect_type_2': 1,
16    # 添加更多的类别
17}
18
19for xml_file in os.listdir(annotation_dir_xml):
20    if not xml_file.endswith('.xml'):
21        continue
22    
23    tree = ET.parse(os.path.join(annotation_dir_xml, xml_file))
24    root = tree.getroot()
25    
26    image_width = int(root.find('size/width').text)
27    image_height = int(root.find('size/height').text)
28    
29    with open(os.path.join(annotation_dir_yolo, os.path.splitext(xml_file)[0] + '.txt'), 'w') as f:
30        for obj in root.findall('object'):
31            label = obj.find('name').text.lower().strip()
32            if label in class_map:
33                class_id = class_map[label]
34                
35                bbox = obj.find('bndbox')
36                xmin = int(bbox.find('xmin').text)
37                ymin = int(bbox.find('ymin').text)
38                xmax = int(bbox.find('xmax').text)
39                ymax = int(bbox.find('ymax').text)
40                
41                x_center = (xmin + xmax) / 2.0
42                y_center = (ymin + ymax) / 2.0
43                w = xmax - xmin
44                h = ymax - ymin
45                
46                x_center /= image_width
47                y_center /= image_height
48                w /= image_width
49                h /= image_height
50                
51                f.write(f"{class_id} {x_center:.6f} {y_center:.6f} {w:.6f} {h:.6f}\n")

总结

此变电站缺陷数据集是一个高质量的数据集,涵盖了变电站设备的多种缺陷类型。数据集的特点是全面性、详细标注和兼容性强,能够满足不同研究需求。通过使用该数据集,研究者可以在变电站安全监控和设备维护领域推动技术进步,提高工作效率和安全性。


http://www.ppmy.cn/server/120136.html

相关文章

MongoDB的详细安装教程

6、MongoDB安装 6.1 为什么使用MongoDB 性能好大规模数据存储(可拓展性)可靠安全(本地复制、自动故障转移)方便存储复杂数据结构 6.2 下载安装 【1】下载地址,这里下载的是5.0版本的,否则配置环境变量之…

JavaScript高级进阶(三)

DOM-改变HTML 语法与说明 document.write() //改变HTML输出流,整个页面进行重绘。 操作对象.innerHTML新的HTML //改变HTML内容 操作对象.attribute新属性值 //改变HTML属性 对象.style.property新样式 //改变操作样式的属性 注意: document.write(),优先级太高&am…

关于http的206状态码和416状态码的意义、断点续传以及CORS使用Access-Control-Allow-Origin来允许跨域请求

一、关于http的206状态码和416状态码的意义及断点续传 HTTP 2xx范围内的状态码表明客户端发送的请求已经被服务器接受并且被成功处理了,HTTP/1.1 206状态码表示客户端通过发送范围请求头Range抓取到了资源的部分数据,一般用来解决大文件下载问题,一般CDN…

Python数据分析-Steam 收入排名前 1500 的游戏

一、研究背景 随着全球数字化进程的加速,电子游戏产业已成为全球娱乐产业的重要组成部分,吸引了越来越多的资本与消费者关注。特别是基于互联网的游戏平台,如Steam,已成为全球范围内发行和销售游戏的重要渠道。Steam平台不仅为玩…

算法打卡:第十一章 图论part03

今日收获:孤岛的总面积,沉没孤岛,水流问题,建造最大岛屿 1. 孤岛的总面积 题目链接:101. 孤岛的总面积 思路:只要岛屿中有一个节点是边缘节点,那么这个岛屿就不是孤岛,结果不累加…

Redis 缓存雪崩、缓存穿透、缓存击穿详解

缓存雪崩 缓存雪崩指的是大量缓存数据在同一时间失效,导致所有请求直接打到数据库或下游系统,造成数据库瞬时压力剧增,甚至可能引发系统崩溃。 形成原因: 缓存数据同时过期:由于缓存过期时间设置不合理,…

执行 npm报错 Cannot find module ‘../lib/cli.js‘

报错 /usr/local/node/node-v18.20.4-linux-x64/bin/npm node:internal/modules/cjs/loader:1143 throw err; ^ Error: Cannot find module ../lib/cli.js Require stack: - /usr/local/node/node-v18.20.4-linux-x64/bin/npm at Module._resolveFilename (node:inter…

基于Jeecg-boot开发系统--后端篇

背景 Jeecg-boot是一个后台管理系统,其提供能很多基础的功能,我希望在不修改jeecg-boot代码的前提下增加自己的功能。经过几天的折腾终于搞定了。 首先是基于jeecg-boot微服务的方式来扩展的,jeecg-boot微服务本身的搭建过程就不讲了&#x…