高压电红外过热目标检测数据集(8类,4075 张)
数据集包含大量通过红外热成像设备采集的高压电力设备图像,图像中涵盖了多个典型的电气部件以及可能的发热区域。类别编号类别名说明0core铁心:变压器核心部件,热异常可能影响变压性能1connection电连接点:包括导线连接、端子等,接触不良易过热2body设备主体部分:评估整体温升情况3LBS负荷开关(Load Break Switch):常用于中压配电4LA避雷器(Lightning Arres
在电力系统的日常运维中,高压电设备的过热故障是一类典型的隐患问题。传统人工巡检方式存在效率低、危险性高、漏检率大等缺陷。随着红外热成像与人工智能技术的快速发展,借助图像识别模型对红外图像中的高压设备进行智能识别与过热检测,成为了当前电力智能巡检的重要方向。
本文将为大家介绍一个专用于此类任务的真实工程数据集:高压电红外过热目标检测数据集。
一、数据集简介
数据集包含大量通过红外热成像设备采集的高压电力设备图像,图像中涵盖了多个典型的电气部件以及可能的发热区域。共包含 8 个类别,名称如下所示:
| 类别编号 | 类别名 | 说明 |
|---|---|---|
| 0 | core |
铁心:变压器核心部件,热异常可能影响变压性能 |
| 1 | connection |
电连接点:包括导线连接、端子等,接触不良易过热 |
| 2 | body |
设备主体部分:评估整体温升情况 |
| 3 | LBS |
负荷开关(Load Break Switch):常用于中压配电 |
| 4 | LA |
避雷器(Lightning Arrester):击穿、老化可导致发热 |
| 5 | CT |
电流互感器(Current Transformer):异常热源风险高 |
| 6 | MCCB |
塑壳断路器(Molded Case Circuit Breaker):开关故障易升温 |
| 7 | PT |
电压互感器(Potential Transformer):内部故障可产生热斑 |
-
📊 图像总数:4075 张
-
🏷 目标类别数:8类
-
📁 标注格式:YOLO 格式、VOC 格式、Json格式
数据集目标是:检测图像中的电力设备部件,并识别其是否存在过热现象。每张图像都配有精确的目标标注(bounding box),并标注了对应的部件类别,用于支持目标检测任务。标注后的数据集如下所示:



二、数据集划分
下面代码主要作用是将原始数据集按比例划分为训练集、验证集和测试集,并分别保存对应的图像和YOLO格式标签文件。具体过程如下:
- 读取数据源路径:程序首先定义了包含所有图像和YOLO标签的原始路径。
- 获取图像列表并打乱顺序:通过读取图像文件名列表并使用 random.shuffle() 随机打乱,实现数据的随机分布。
- 按照7:2:1的比例划分数据集:分别确定训练集、验证集和测试集的数量,并获取对应文件名。(可自行地定义划分比例)
- 创建目标文件夹并复制文件:程序依次为训练集、验证集和测试集创建对应的图像与标签保存路径,并将图像文件和标签文件分别复制过去。
import os
import random
import shutil
root_dir = r"./data_sum"
save_root_dir = r"./data_split"
image_sum_dir = os.path.join(root_dir, "images")
label_yolo_sum_dir = os.path.join(root_dir, "labels_yolo")
# 获取文件夹下所有图片名称
image_list = os.listdir(image_sum_dir)
image_list = [name for name in image_list if name.endswith(".jpg")]
# 随机打乱文件名列表
random.shuffle(image_list)
# 划分训练集和验证集
train_ratio = 0.7
val_ratio = 0.2
test_ratio = 0.1
num_images = len(image_list)
num_train = int(num_images * train_ratio)
num_val = int(num_images * val_ratio)
num_test = num_images - num_train - num_val
print("num_images:{} num_train:{} num_val:{} num_test:{}".format(num_images, num_train, num_val, num_test))
# 获取训练集和验证集名字
train_names = image_list[:num_train]
val_names = image_list[num_train: num_train + num_val]
test_names = image_list[num_train + num_val: num_images]
# 训练集图片及标签保存路径
save_train_images_path = os.path.join(save_root_dir, "images", "train")
save_train_labels_path = os.path.join(save_root_dir, "labels", "train")
if not os.path.exists(save_train_images_path):
os.makedirs(save_train_images_path)
if not os.path.exists(save_train_labels_path):
os.makedirs(save_train_labels_path)
for name in train_names:
# 图像
image_path = os.path.join(image_sum_dir, name)
label_path = os.path.join(label_yolo_sum_dir, name.split(".jpg")[0] + ".txt")
assert os.path.exists(image_path), "file:{} not exist ...".format(image_path)
assert os.path.exists(label_path), "file:{} not exist ...".format(label_path)
shutil.copy(image_path, save_train_images_path)
shutil.copy(label_path, save_train_labels_path)
# 验证集图片及标签保存路径
save_val_images_path = os.path.join(save_root_dir, "images", "val")
save_val_labels_path = os.path.join(save_root_dir, "labels", "val")
if not os.path.exists(save_val_images_path):
os.makedirs(save_val_images_path)
if not os.path.exists(save_val_labels_path):
os.makedirs(save_val_labels_path)
for name in val_names:
# 图像
image_path = os.path.join(image_sum_dir, name)
label_path = os.path.join(label_yolo_sum_dir, name.split(".jpg")[0] + ".txt")
assert os.path.exists(image_path), "file:{} not exist ...".format(image_path)
assert os.path.exists(label_path), "file:{} not exist ...".format(label_path)
shutil.copy(image_path, save_val_images_path)
shutil.copy(label_path, save_val_labels_path)
# 测试图片及标签保存路径
save_test_images_path = os.path.join(save_root_dir, "images", "test")
save_test_labels_path = os.path.join(save_root_dir, "labels", "test")
if not os.path.exists(save_test_images_path):
os.makedirs(save_test_images_path)
if not os.path.exists(save_test_labels_path):
os.makedirs(save_test_labels_path)
for name in test_names:
# 图像
image_path = os.path.join(image_sum_dir, name)
label_path = os.path.join(label_yolo_sum_dir, name.split(".jpg")[0] + ".txt")
assert os.path.exists(image_path), "file:{} not exist ...".format(image_path)
assert os.path.exists(label_path), "file:{} not exist ...".format(label_path)
shutil.copy(image_path, save_test_images_path)
shutil.copy(label_path, save_test_labels_path)
三、应用场景
该数据集主要应用于以下几个方向:
✅ 智能巡检系统
集成到无人机、巡检机器人或摄像头系统中,实现高压场景下的实时设备识别与预警。
✅ AI模型训练与研究
可用于训练 YOLO、Faster R-CNN、SSD 等主流目标检测模型,在红外图像中提升电力场景感知能力。
如果你正在从事电力设备识别、红外图像分析、目标检测等方向的研究或开发,这个数据集值得你深入探索!
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)