变电站绝缘套管红外检测数据集

news2024/11/13 18:21:24

包含以下4个数据文件: /train:训练集 /valid:验证集 /test:测试集 README.txt:数据说明 【数据说明】检测目标以Pascal VOC格式进行标注,对每个图像进行以下预处理,统一调整大小为640x640。数据集共包含9900+变压器绝缘套管红外图像样张,其中train包含8560+红外图像样张(带xml标注),valid包含1280+红外图像样张(带xml标注),test包含60+红外图像样张(带xml标注),数据集未做数据增广,也可以自行划分训练集、验证集和测试集。 以上数据均已进行脱敏处理,可用于相关红外检测研究,

变电站绝缘套管红外检测数据集

数据集描述

该数据集是一个专门用于变电站绝缘套管红外图像检测的数据集,旨在帮助研究人员和开发者训练和评估基于深度学习的目标检测模型。绝缘套管是变电站中重要的电气设备之一,其状态直接影响电力系统的安全稳定运行。通过红外成像技术,可以有效检测绝缘套管的温度异常,从而及时发现潜在故障。数据集提供了大量的高分辨率红外图像,并且所有标注都是通过Pascal VOC格式进行的,确保了高质量的标注信息。

数据规模

  • 总样本数量:9,900+张红外图像
    • 训练集 (train):8,560+张红外图像(带xml标注)
    • 验证集 (valid):1,280+张红外图像(带xml标注)
    • 测试集 (test):60+张红外图像(带xml标注)
  • 数据量:具体大小未提供
  • 标注格式:Pascal VOC格式XML标注
  • 目标类别
    • 绝缘套管 (Insulator Bushings)
图像特性
  • 统一预处理:每张图像都经过预处理,统一调整大小为640x640像素。
  • 多样化场景:覆盖了不同类型的绝缘套管、不同的光照条件以及各种背景环境下的红外图像情况。
  • 高质量手工标注:每张图像都有详细的边界框标注,支持直接用于训练目标检测模型。
  • 真实拍摄:所有图像均为实际拍摄的真实场景,增强了模型在实际应用中的鲁棒性。
  • 脱敏处理:数据已进行脱敏处理,可用于相关红外检测研究。
  • 单一目标标签:每张图像中的目标标签有且仅有1个为“Insulator Bushings”。
应用场景
  • 电力系统维护:通过自动检测绝缘套管的状态,辅助电力部门及时发现和处理故障,提高电力系统的可靠性和安全性。
  • 智能巡检:集成到无人机或机器人巡检系统中,实现自动化巡检,减少人工成本。
  • 科研分析:用于研究目标检测算法在特定工业应用场景中的表现,特别是在复杂背景和光照条件下的鲁棒性。
  • 故障预警:通过早期检测绝缘套管的温度异常,提前预警潜在故障,减少停电风险。

数据集结构

典型的数据集目录结构如下:

1insulator_bushing_infrared_dataset/
2├── train/
3│   ├── images/
4│   │   ├── img_00001.jpg
5│   │   ├── img_00002.jpg
6│   │   └── ...
7│   ├── annotations/
8│   │   ├── img_00001.xml
9│   │   ├── img_00002.xml
10│   │   └── ...
11├── valid/
12│   ├── images/
13│   │   ├── img_00001.jpg
14│   │   ├── img_00002.jpg
15│   │   └── ...
16│   ├── annotations/
17│   │   ├── img_00001.xml
18│   │   ├── img_00002.xml
19│   │   └── ...
20├── test/
21│   ├── images/
22│   │   ├── img_00001.jpg
23│   │   ├── img_00002.jpg
24│   │   └── ...
25│   ├── annotations/
26│   │   ├── img_00001.xml
27│   │   ├── img_00002.xml
28│   │   └── ...
29├── README.txt  # 数据说明文件

数据说明

  • 检测目标:以Pascal VOC格式进行标注。
  • 图像预处理:每张图像都经过预处理,统一调整大小为640x640像素。
  • 数据集内容
    • 训练集 (train):包含8,560+张红外图像样张(带xml标注)。
    • 验证集 (valid):包含1,280+张红外图像样张(带xml标注)。
    • 测试集 (test):包含60+张红外图像样张(带xml标注)。
  • 目标标签:每张图像中的目标标签有且仅有1个为“Insulator Bushings”。
  • 数据增广:数据集未做数据增广,用户可以根据需要自行划分训练集、验证集和测试集。
  • 脱敏处理:数据已进行脱敏处理,可用于相关红外检测研究。

示例代码

以下是一个使用Python和相关库(如OpenCV、PIL等)来加载和展示数据集的简单示例代码:

1import os
2import cv2
3import numpy as np
4from PIL import Image
5import xml.etree.ElementTree as ET
6
7# 数据集路径
8dataset_path = 'path/to/insulator_bushing_infrared_dataset/'
9
10# 加载图像和边界框标注
11def load_image_and_boxes(image_path, annotation_path):
12    # 读取图像
13    image = Image.open(image_path).convert('RGB')
14    
15    # 解析VOC标注文件
16    tree = ET.parse(annotation_path)
17    root = tree.getroot()
18    boxes = []
19    for obj in root.findall('object'):
20        class_name = obj.find('name').text
21        bbox = obj.find('bndbox')
22        xmin = int(bbox.find('xmin').text)
23        ymin = int(bbox.find('ymin').text)
24        xmax = int(bbox.find('xmax').text)
25        ymax = int(bbox.find('ymax').text)
26        boxes.append([class_name, xmin, ymin, xmax, ymax])
27    return image, boxes
28
29# 展示图像和边界框
30def show_image_with_boxes(image, boxes):
31    img = np.array(image)
32    for box in boxes:
33        class_name, xmin, ymin, xmax, ymax = box
34        cv2.rectangle(img, (xmin, ymin), (xmax, ymax), (0, 255, 0), 2)
35        label = f'{class_name}'
36        cv2.putText(img, label, (xmin, ymin - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
37    
38    cv2.imshow('Image with Boxes', img)
39    cv2.waitKey(0)
40    cv2.destroyAllWindows()
41
42# 主函数
43if __name__ == "__main__":
44    subset = 'train'  # 可以选择 'train', 'valid', 或 'test'
45    images_dir = os.path.join(dataset_path, subset, 'images')
46    annotations_dir = os.path.join(dataset_path, subset, 'annotations')
47    
48    # 获取图像列表
49    image_files = [f for f in os.listdir(images_dir) if f.endswith('.jpg')]
50    
51    # 随机选择一张图像
52    selected_image = np.random.choice(image_files)
53    image_path = os.path.join(images_dir, selected_image)
54    annotation_path = os.path.join(annotations_dir, selected_image.replace('.jpg', '.xml'))
55    
56    # 加载图像和边界框
57    image, boxes = load_image_and_boxes(image_path, annotation_path)
58    
59    # 展示带有边界框的图像
60    show_image_with_boxes(image, boxes)

这段代码展示了如何加载图像和其对应的边界框标注文件,并在图像上绘制边界框。您可以根据实际需求进一步扩展和修改这段代码,以适应您的具体应用场景。

示例代码:使用预训练模型进行推理

以下是使用预训练模型进行推理的示例代码。这里我们假设您使用的是基于YOLOv5的模型,但您可以根据需要选择其他支持目标检测的模型。

1import torch
2import cv2
3import numpy as np
4from PIL import Image
5import yolov5  # 请确保已安装yolov5库
6
7# 数据集路径
8dataset_path = 'path/to/insulator_bushing_infrared_dataset/'
9
10# 加载预训练模型
11model = yolov5.load('path/to/pretrained/yolov5_weights.pt')  # 替换成实际的预训练模型路径
12model.eval()
13
14# 主函数
15if __name__ == "__main__":
16    subset = 'train'  # 可以选择 'train', 'valid', 或 'test'
17    images_dir = os.path.join(dataset_path, subset, 'images')
18    
19    # 获取图像列表
20    image_files = [f for f in os.listdir(images_dir) if f.endswith('.jpg')]
21    
22    # 随机选择一张图像
23    selected_image = np.random.choice(image_files)
24    image_path = os.path.join(images_dir, selected_image)
25    
26    # 读取并预处理图像
27    image = Image.open(image_path).convert('RGB')
28    
29    # 使用预训练模型进行推理
30    results = model(image)
31    
32    # 处理预测结果
33    boxes = results.xyxy[0].cpu().numpy()
34    
35    # 在图像上绘制边界框
36    img = np.array(image)
37    for box in boxes:
38        xmin, ymin, xmax, ymax, conf, class_id = box
39        class_name = results.names[int(class_id)]
40        label = f'{class_name} {conf:.2f}'
41        cv2.rectangle(img, (int(xmin), int(ymin)), (int(xmax), int(ymax)), (0, 255, 0), 2)
42        cv2.putText(img, label, (int(xmin), int(ymin) - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
43    
44    # 显示结果
45    cv2.imshow('Image with Boxes', img)
46    cv2.waitKey(0)
47    cv2.destroyAllWindows()

这段代码展示了如何使用预训练的YOLOv5模型进行推理,并显示和保存推理结果。您可以根据实际需求进一步扩展和修改这段代码,以适应您的具体应用场景。如果您需要使用其他模型进行更高级的功能,如模型微调或增量训练,可以参考相应模型的官方文档来进行相应的配置和操作。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2153043.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FLUX.1+ComfyUI部署与使用:图像合成技术的新高度

✨ Blog’s 主页: 白乐天_ξ( ✿>◡❛) 🌈 个人Motto:他强任他强,清风拂山冈! 💫 欢迎来到我的学习笔记! FLUX.1的版本 FLUX.1是由黑森林实验室([Black Forest Labs](https://bla…

【设计模式-备忘录】

备忘录模式(Memento Pattern)是一种行为型设计模式,用于保存对象的内部状态,以便在将来某个时间可以恢复到该状态,而不暴露对象的内部实现细节。备忘录模式特别适合在需要支持撤销(Undo)操作的应…

如何在多台Linux虚拟机上安装和配置Kafka集群

Kafka是一个高性能、分布式的流处理平台,被广泛应用于大规模实时数据处理场景。它具有高吞吐量、低延迟和可水平扩展等特点,能够有效地处理海量数据流。为了提高Kafka的可用性和容错性,通常会在多个节点上部署Kafka集群。在这个指南中&#x…

十大排序(一):冒泡排序

目录 一、简介 实现过程 时间复杂度 二、代码实现 函数声明 Swap函数 单趟 多趟 测试 优化 一、简介 冒泡排序是一种简单的排序算法,它重复地比较相邻的两个元素,如果顺序错误就交换它们,直到没有元素需要交换为止。这个过程类…

获取zabbix API 监控数据shell脚本,自动日常巡检服务器信息、并发送指定群组

一,前言 有zabbix监控,也并不是时刻盯着数据,所以想着,每天固定某个时刻,自动发送服务器数据到指定群组,给其他人更直观的数据。 数据就可以从zabbix API获取。参考官方API文档:https://www.z…

如何使用IIC外设(硬件IIC)

本文重点叙述如何使用芯片自带的 IIC 外设,即硬件 IIC,实现 IIC 通信。文章《IIC通信基础_cpu的iic通信-CSDN博客》 中,叙述了软件 IIC 通信和硬件 IIC 通信的区别, 并且重点叙述了 IIC 的通信协议。在使用软件进行 IIC 通信时&am…

git安装包夸克网盘下载

git安装包夸克网盘下载 git夸克网盘 git网站上的安装包下载速度有点慢,因此为了方便以后下载就将文件保存到夸克网盘上,链接:我用夸克网盘分享了「git」,点击链接即可保存。 链接:https://pan.quark.cn/s/07c73c4a30…

MongoDB在Linux系统中的安装与配置指南

在这篇文章中,我们将介绍如何在CentOS 7服务器上安装MongoDB,并通过DataX将数据从MongoDB迁移到MySQL数据库。这将包括MongoDB的安装、配置、数据准备以及使用DataX进行数据迁移的详细步骤。 MongoDB简介 MongoDB是一个高性能、开源、无模式的文档型数据…

c++9月20日

1.思维导图 2.顺序表 头文件 #ifndef RECTANGLE_H #define RECTANGLE_H#include <iostream>using namespace std;using datatype int ;//类型重定义class Seqlist { private://私有权限datatype *ptr; //指向堆区申请空间的起始地址int size;//堆区空间的长度int len …

鸿蒙OS 线程间通信

鸿蒙OS 线程间通信概述 在开发过程中&#xff0c;开发者经常需要在当前线程中处理下载任务等较为耗时的操作&#xff0c;但是又不希望当前的线程受到阻塞。此时&#xff0c;就可以使用 EventHandler 机制。EventHandler 是 HarmonyOS 用于处理线程间通信的一种机制&#xff0c…

Spring Boot助力高校心理辅导系统升级

3 系统分析 3.1可行性分析 在进行可行性分析时&#xff0c;我们通常根据软件工程里方法&#xff0c;通过四个方面来进行分析&#xff0c;分别是技术、经济、操作和法律可行性。因此&#xff0c;在基于对目标系统的基本调查和研究后&#xff0c;对提出的基本方案进行可行性分析。…

如何着手创建企业数据目录?(三)权限管理及版本控制

前文导读&#xff1a; 《如何着手创建企业数据目录&#xff1f;&#xff08;一&#xff09;数据目录的设定》 《如何着手创建企业数据目录&#xff1f;&#xff08;二&#xff09;数据的命名与维护》 前面聊过了数据目录的设定、数据命名规则和维护规则&#xff0c;今天我们继续…

【java实现json转化为CSV文件】

文章目录 JSON文件中的数据格式测试文件转换的接口 JSON文件中的数据格式 单条数据展开后如下&#xff1a; {"text": "《邪少兵王》是冰火未央写的网络小说连载于旗峰天下","spo_list":[{"predicate": "作者", "objec…

Windows环境下搭建MySQL主从同步实现读写分离

文章目录 前言读写分离的基本原理 环境介绍及说明主库my.ini初始配置创建用于同步的数据库和表 一、新增mysql从库1.复制mysql文件夹2.修改从库的my.ini3.安装到windows服务 二、在my.ini中配置主、从库相关参数1.主库新增配置参数不同版本参数不同问题 2.从库新增配置参数3.删…

rabbitmq 短信验证码

1.生成的验证码用redis存 减少数据库压力 2.通知运营商发送短信的事情交给rabbitmq的队列去做&#xff0c;无论成功或者是失败&#xff0c;用户那边都不知道。没有收到验证码&#xff08;监听失败&#xff09;用户只会觉得是运营商的问题&#xff0c;而不会怀疑是我们的系统有问…

Linux文件IO(四)-返回错误处理与errno详解

1.前言 在上一文章中&#xff0c;给大家编写了很多的示例代码&#xff0c;大家会发现这些示例代码会有一个共同的特点&#xff0c;那就是当判断函数执行失败后&#xff0c;会调用 return 退出程序&#xff0c;但是对于我们来说&#xff0c;我们并不知道为什么会出错&#xff0…

C++进阶|多态知识点详解及经典面试题总结

&#x1f36c; mooridy-CSDN博客 &#x1f9c1;C专栏&#xff08;更新中&#xff01;&#xff09; 目录 1. 多态的概念 2. 多态的定义及实现 2.1 多态的构成条件 2.2 虚函数的重写/覆盖 2.3 虚函数重写的⼀些其他问题 2.4 override 和 final关键字 2.5 重载/重写/隐藏的…

(笔记自用)位运算总结+LeetCode例题:颠倒二进制位+位1的个数

一.位运算总结: 在解题之前理解一下为什么需要位运算&#xff1f;它的本质是什么&#xff1f; 力扣上不少位运算相关的题&#xff0c;并且很多题也会用到位运算的技巧。这又是为什么&#xff1f; 位运算的由来 在计算机里面&#xff0c;任何数据最终都是用数字来表示的&…

mysqldump使用cmd窗口和powersell窗口导出sql中文乱码的问题

项目场景 我在使用Mariadb数据库更新数据的时候&#xff0c;由于数据库的表格中含有中文&#xff0c;在使用mysqldump导出sql语句的时候&#xff0c;中文显示乱码&#xff0c;如下图所示&#xff1a; 环境描述 系统&#xff1a;windows10数据库&#xff1a; Mariadb -10.6.16…

Vue2中路由的介绍和使用

一.路由的基本概念 一说路由&#xff0c;大家首先想到的可能是路由器&#xff0c;路由器的原理就是给连接的设备一个IP地址&#xff0c;通过IP地址来映射到设备&#xff0c;实现连接&#xff0c;本质上是一种映射关系。 在vue2中就是路径与组件间的映射。 路由是使用vue2制作…