开关柜设备红外检测数据集

news2024/11/14 3:57:40

开关柜设备红外检测数据集 包含以下2个数据文件: /train:训练集 /valid:验证集 /test:测试集 README.txt:数据说明 【数据说明】检测目标以Pascal VOC格式进行标注,对每个图像进行以下预处理,统一调整大小为640x640。数据集共包含5527+开关柜设备红外图像样张,其中train包含3882+红外图像样张(带xml标注),valid包含1102+红外图像样张(带xml标注),test包含543+红外图像样张(带xml标注),数据集未做数据增广,也可以自行划分训练集、验证集和测试集。 最后,目标检测对应的设备类别标签共包含9大类,其中主要为MCCB、ACB和Connection,具体释义如下: ACB:空气断路器 CT:电流互感器 Connection:连接器 LA:避雷器 LBS:负荷开关 MCCB:塑壳断路器 PT:电压互感器 VCB:真空断路器 body:柜身。

32049774ae534667906c0284aa158352.png

数据集名称

开关柜设备红外检测数据集

数据集描述

该数据集是一个专门用于开关柜设备红外图像检测的数据集,旨在帮助研究人员和开发者训练和评估基于深度学习的目标检测模型。开关柜是电力系统中重要的电气设备之一,其内部包含多种关键组件,如断路器、互感器等。通过红外成像技术,可以有效检测这些设备的温度异常,从而及时发现潜在故障。数据集提供了大量的高分辨率红外图像,并且所有标注都是通过Pascal VOC格式进行的,确保了高质量的标注信息。

数据规模

  • 总样本数量:5,527+张红外图像
    • 训练集 (train):3,882+张红外图像(带xml标注)
    • 验证集 (valid):1,102+张红外图像(带xml标注)
    • 测试集 (test):543+张红外图像(带xml标注)
  • 数据量:具体大小未提供
  • 标注格式:Pascal VOC格式XML标注
  • 目标类别
    • 空气断路器 (ACB)
    • 电流互感器 (CT)
    • 连接器 (Connection)
    • 避雷器 (LA)
    • 负荷开关 (LBS)
    • 塑壳断路器 (MCCB)
    • 电压互感器 (PT)
    • 真空断路器 (VCB)
    • 柜身 (body)

图像特性

  • 统一预处理:每张图像都经过预处理,统一调整大小为640x640像素。
  • 多样化场景:覆盖了不同类型的开关柜设备、不同的光照条件以及各种背景环境下的红外图像情况。
  • 高质量手工标注:每张图像都有详细的边界框标注,支持直接用于训练目标检测模型。
  • 真实拍摄:所有图像均为实际拍摄的真实场景,增强了模型在实际应用中的鲁棒性。
  • 多类别标签:每个图像可能包含多个目标类别,主要类别包括MCCB、ACB和Connection等。

应用场景

  • 电力系统维护:通过自动检测开关柜设备的状态,辅助电力部门及时发现和处理故障,提高电力系统的可靠性和安全性。
  • 智能巡检:集成到无人机或机器人巡检系统中,实现自动化巡检,减少人工成本。
  • 科研分析:用于研究目标检测算法在特定工业应用场景中的表现,特别是在复杂背景和光照条件下的鲁棒性。
  • 故障预警:通过早期检测开关柜设备的温度异常,提前预警潜在故障,减少停电风险。

数据集结构

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

 

深色版本

1switchgear_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):包含3,882+张红外图像样张(带xml标注)。
    • 验证集 (valid):包含1,102+张红外图像样张(带xml标注)。
    • 测试集 (test):包含543+张红外图像样张(带xml标注)。
  • 目标标签:目标检测对应的设备类别标签共包含9大类,其中主要为MCCB、ACB和Connection。
  • 数据增广:数据集未做数据增广,用户可以根据需要自行划分训练集、验证集和测试集。

示例代码

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

 

python

深色版本

1import os
2import cv2
3import numpy as np
4from PIL import Image
5import xml.etree.ElementTree as ET
6
7# 数据集路径
8dataset_path = 'path/to/switchgear_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的模型,但您可以根据需要选择其他支持目标检测的模型。

 

python

深色版本

1import torch
2import cv2
3import numpy as np
4from PIL import Image
5import yolov5  # 请确保已安装yolov5库
6
7# 数据集路径
8dataset_path = 'path/to/switchgear_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/2158162.html

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

相关文章

国内比较有名的国学大师改名字专家颜廷利:量子纠缠与良知救善

国内比较有名的国学大师改名字专家颜廷利:量子纠缠与良知救善 在探索宇宙的奥秘和人类行为的伦理之间,存在着一种看似无形却实际牢不可破的联系。这种联系,在科学的视角下,可被视作量子纠缠的一种哲学体现;在人文的探…

【机器学习】TensorFlow编程基础

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 TensorFlow编程基础张量(Tensor)计算图(Computational Graph)会话(Session)基本…

解决Echarts:宽度100%,渲染的宽度却是100px

为什么我们宽度设置了100%&#xff0c;结果变为了100px&#xff1f; 源码这里没有获取到clientWidth&#xff0c;会将设置的width:100%转换称100px 解决办法&#xff1a; <div ref"numberPieRef"></div>let numberPieRef ref(null); let myChart nu…

鸿蒙OpenHarmony【轻量系统内核(异常调测)】子系统开发

异常调测 基本概念 OpenHarmony LiteOS-M提供异常接管调测手段&#xff0c;帮助开发者定位分析问题。异常接管是操作系统对运行期间发生的异常情况进行处理的一系列动作&#xff0c;例如打印异常发生时异常类型、发生异常时的系统状态、当前函数的调用栈信息、CPU现场信息、任…

SD教程:一键将真人照片转成插画风格头像,秒变二次元动漫主角~

大家好&#xff0c;我是灵魂画师向阳 如今AI技术日益成熟&#xff0c;今天给大家分享一个用AI绘画工具StableDiffusion制作真实头像转插画的教程&#xff0c;废话不多说&#xff0c;上操作。 本期教程我们将以SD为作图工具&#xff0c;如果你还没有安装使用过AI绘画工具Stable…

非root安装Augustus报错解决

git clone https://github.com/Gaius-Augustus/Augustus.git cd Augustus make augustus报错&#xff1a; 解决&#xff1a; wget -O boost_1_76_0.tar.gz https://sourceforge.net/projects/boost/files/boost/1.76.0/boost_1_76_0.tar.gz/downloadtar xzf boost_1_76_0.tar.…

寄大件快递用什么物流更便宜,寄20-200公斤大件价格对比

大件货物&#xff0c;大件行李&#xff0c;大件电器用什么物流快递更便宜呢&#xff1f; 新生入学&#xff0c;放寒暑假&#xff0c;新单位入职&#xff0c;搬家换工作的时候&#xff0c;都会遇到大件行李货物要邮寄的情况。这些都属于物流中的寄大件服务&#xff0c;在快递费…

【博弈强化学习】——多智能体博弈强化学习研究综述

【论文】&#xff1a;多智能体博弈强化学习研究综述 【引用】&#xff1a;王军, 曹雷, 陈希亮, 等. 多智能体博弈强化学习研究综述[J]. 计算机工程与应用, 2021, 57(21): 1-13.

开关电源自动测试系统的测试设备与特色

突破传统测试系统的操作维护困难等限制&#xff0c;NSAT-8000开关电源自动测试系统以其开放式架构和0代码模式&#xff0c;带来了不一样的开关电源自动化测试体验。 开关电源自动测试系统的测试设备 开关电源自动测试系统核心硬件包括&#xff1a;可编程交直流电源、电子负载、…

Qt --- 常用控件的介绍 --- 其他控件

一、QPushButton QWidget中设计到的各种属性/函数/使用方法&#xff0c;针对接下来要介绍的Qt的各种控件都是有效的。 使用QPushButton表示一个按钮&#xff0c;这也是当前我们最熟悉的一个控件了。这个类继承了QAbstractButton&#xff0c;这个类是一个抽象类&#xff0c;是…

包装器(C++11)

1. 三种可调用对象 在学习包装器之前&#xff0c;先回顾一下C中三种用于定义可调用对象的方式&#xff1a;函数指针、仿函数&#xff08;即函数对象&#xff09;和 lambda 表达式。它们各有优缺点&#xff0c;适用于不同的场景。 a. 函数指针 函数指针是指向函数的指针&…

Gitlab学习(008 gitlab开发工作流GitFlow)

尚硅谷2024最新Git企业实战教程&#xff0c;全方位学习git与gitlab 总时长 5:42:00 共40P 此文章包含第27p-第p29的内容 文章目录 工作流分类集中式工作流功能开发工作流GitFlow工作流Forking工作流 各个分支的功能模拟工作环境创建分支登录领导&#xff08;项目管理者&#…

【网络安全】TCP和UDP

一、TCP/UDP对比 1.共同点&#xff1a; 都是工作在TCP/IP体系结构的传输层的协议 工作主要都是把端口号往原始数据封装 在 TCP 协议中&#xff0c;原始数据指的是应用程序产生的需要通过网络进行传输的数据。这些数据可以是各种类型的信息&#xff0c;例如文本、图像、音频、…

STM32 通过软件模拟 I2C 驱动 24Cxx 系列存储器

目录 一、AT24CXXX 系列存储器介绍1、基本信息2、寻址方式3、页地址与页内单元地址4、I2C 地址5、AT24CXX 的数据读写5.1 写操作5.1.1 按字节写5.1.2 按页写 5.2 读操作5.2.1 当前地址读取5.2.2 随机地址读取5.2.3 顺序读取 二、代码实现1、ctl_i2c2、at24c3、测试程序 I2C 相关…

c++难点核心笔记(一)

文章目录 前言C的应用领域 核心编程内存分区模型1.程序运行前2.程序运行后3.new操作符引用 函数1.概述和函数原型2.函数的定义和参数3.使用函数处理不同类型的数据4.微处理器如何处理函数调用函数的分文件编写 指针和引用什么是指针动态内存分配使用指针时常犯的编程错误指针编…

为你介绍五款超实用免费报表工具,一文说清优缺点

1. 山海鲸可视化 山海鲸可视化是一款完全免费的报表工具&#xff0c;不仅能够处理各式复杂报表&#xff0c;而且提供了非常丰富的组件和模板&#xff0c;软件操作方式为零代码的拖拽式操作&#xff0c;新手用户也能快速上手。同时&#xff0c;它附送一个免费的网站后台&#x…

JVM java主流的追踪式垃圾收集器

目录 前言 分代垃圾收集理论 标记清除算法 标记复制算法 标记整理法 前言 从对象消亡的角度出发, 垃圾回收器可以分为引用计数式垃圾收集和追踪式垃圾收集两大类, 但是java主流的一般是追踪式的垃圾收集器, 因此我们重点讲解. 分代垃圾收集理论 分代收集这种理…

腾讯云负载均衡ssl漏洞(CVE-201602183)解决

绿盟漏洞扫描腾讯云应用&#xff0c;提示有1个高危、1个中危。 看IP是应用服务器前端的负载均衡。 漏洞详细信息如下&#xff1a; 根据腾讯云文档&#xff0c;可以通过设置负载均衡加密算法设置&#xff0c;来缓解漏洞风险。 登录 负载均衡控制台&#xff0c;在左侧导航栏单击…

宸励投资专注高新技术投资,助推中小企业快速发展

宸励投资&#xff0c;作为一家新兴的互联网式新轻创型投行公司&#xff0c;专注在人工智能、专精特新及数字化美业三大板块领域&#xff0c;展现了其深厚的专业背景和卓越的引领能力。这家公司不仅在各自的领域内深耕细作&#xff0c;更通过其前瞻性的视角和独到的战略布局&…

Windows X86 远线程注入问题解惑

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…