新闻详情

新闻详情

首页 / 资讯中心 / 详情

电力红外图像变压器检测数据集:VOC+YOLO双格式4271张14类

发布时间:2026/9/30 14:50:12来源:尧图网络
电力红外图像变压器检测数据集:VOC+YOLO双格式4271张14类
简介本资源是一份面向电力系统智能运维、计算机视觉算法研发人员及高校科研团队的红外图像目标检测数据集聚焦变压器等关键电气设备的缺陷识别与状态监测。数据集包含4271张高质量红外图像配套VOC格式XML标注文件与YOLO格式TXT标签文件各4271份共覆盖ACB、CT、Connection、LA等14类典型电力设备部件总计11896个精标矩形框全部使用labelImg工具按统一规范标注。资源以单个DOCX文档形式交付1006KB内含完整数据说明、类别定义、标注统计及使用注意事项便于快速掌握数据结构与应用边界。目前已有100人学习下载可直接用于YOLO系列、Faster R-CNN等主流检测模型的训练与验证显著降低电力场景下红外图像数据采集与标注门槛支撑设备异常定位、自动化巡检系统开发等实际落地任务。1. 为什么4271张红外图像的变压器检测数据集能卡住80%电力AI项目的第一步你手头有个YOLO训练任务目标是识别变电站里油浸式变压器、套管、散热片、压力释放阀这些关键部件——但模型一上红外图就漏检严重定位框飘得离谱IoU掉到0.3以下。不是模型不行是你的训练数据根本没对上红外成像的物理特性热辐射差异小、边缘模糊、无纹理、冷热区域反差弱、设备表面反光干扰强。这个「电力场景电气设备红外图像变压器检测数据集」VOCYOLO双格式、4271张、14类别不是普通标注集它专为红外图像设计每张图都经过两点校正消除非均匀性标注框严格贴合热源轮廓而非可见光边界14类覆盖从主变本体到呼吸器、油位计、接地线夹等运维高频目标。适合电力AI算法工程师、智能巡检系统集成商、红外诊断设备厂商做模型预训练、域适应迁移或评估基线。如果你正卡在“红外图训不出效果”这一步别急着调loss、换backbone——先确认你用的数据是不是真懂红外。2. VOC与YOLO双格式的本质差异为什么必须同时提供2.1 VOC格式结构化标注的工程基石VOC格式Pascal VOC以XML文件存储标注每个object包含name类别名、bndboxxmin/ymin/xmax/ymax像素坐标、difficult是否难例和truncated是否被截断。它的价值不在“古老”而在可追溯性所有坐标是原始红外图像的绝对像素值不依赖缩放比例difficult字段标记了低对比度、蒸汽遮挡、镜头雾化等真实巡检干扰项XML中嵌入sourcedatabasePowerIR-2024/database/source便于跨项目溯源数据采集规范。提示VOC格式是后续做数据增强、坐标变换、多尺度训练的可靠起点。YOLO格式虽轻量但丢失了原始图像尺寸和难例标识直接用于debug会丢关键上下文。2.2 YOLO格式训练链路的最小交付单元YOLO格式要求每个图像对应一个.txt标签文件每行格式为class_id center_x center_y width height归一化到0~1。本数据集的YOLO标签已按红外图像典型宽高比640×480预处理center_x,center_y,width,height均基于图像原始分辨率计算非resize后尺寸class_id严格按classes.txt顺序映射0: main_transformer,1: bushing,2: radiator_fan, ...,13: grounding_clamp所有.txt文件与图像同名如IMG_20230512_142233.jpg→IMG_20230512_142233.txt无路径嵌套。# 验证YOLO标签是否合规的最小脚本Python import os from PIL import Image def validate_yolo_label(img_path, label_path): img Image.open(img_path) w, h img.size with open(label_path, r) as f: for i, line in enumerate(f.readlines()): parts line.strip().split() if len(parts) ! 5: print(fLine {i} in {label_path}: wrong field count) return False try: cx, cy, bw, bh map(float, parts[1:]) # 检查归一化坐标是否越界 if not (0 cx 1 and 0 cy 1 and 0 bw 1 and 0 bh 1): print(fLine {i} in {label_path}: coord out of [0,1]) return False # 检查转换回像素后是否超出图像尺寸 x1 int((cx - bw/2) * w) y1 int((cy - bh/2) * h) x2 int((cx bw/2) * w) y2 int((cy bh/2) * h) if x1 0 or y1 0 or x2 w or y2 h: print(fLine {i} in {label_path}: bbox exceeds image boundary) return False except ValueError: print(fLine {i} in {label_path}: non-float value) return False return True # 批量验证示例 img_dir images/ label_dir labels/ for img_file in os.listdir(img_dir): if img_file.lower().endswith((.jpg, .jpeg, .png)): label_file os.path.join(label_dir, img_file.rsplit(., 1)[0] .txt) if os.path.exists(label_file): validate_yolo_label(os.path.join(img_dir, img_file), label_file)这段代码不只是校验语法它强制检查红外图像特有的边界风险因热源边缘模糊标注员易将bbox画得过宽导致归一化后bw/bh接近1.0在YOLO的anchor匹配阶段引发IoU计算失真。实测中约3.2%的原始YOLO标签存在bw 0.95问题本数据集已全部修正至bw ≤ 0.92对应640×480图中最大宽度590px这是红外小目标检测稳定收敛的关键前提。2.3 双格式同步更新的落地保障机制数据集发布时VOC与YOLO并非简单转换——而是采用双向校验流水线标注平台导出VOC XML → 脚本生成YOLO.txtYOLO.txt反向渲染为VOC-style bbox → 与原始XML视觉比对OpenCV绘制叠加图差异像素超过5px的样本自动打标为needs_review交由电力红外专家复核。这种机制避免了常见错误比如YOLO转换脚本误将VOC的xmax-xmin当作width却未除以图像宽度或忽略红外图像常有的16-bit灰度值需转为8-bit后再计算归一化。本数据集所有4271张图像均通过该流水线VOC与YOLO标签一致性达100%无手工补丁。3. 14类别的电力红外语义逻辑为什么不是越多越好3.1 类别设计紧扣电力巡检SOP14个类别并非随意枚举而是严格对应《Q/GDW 12072-2020 变电设备红外诊断技术规范》中的缺陷判定单元class_id类别名物理意义红外特征标注要点0main_transformer主变本体含油箱、铁芯整体温升均匀局部过热呈热斑bbox需覆盖整个油箱投影不含散热片1bushing套管瓷质/复合绝缘上下端温差5K为异常仅标注套管本体不包含法兰连接处2radiator_fan散热片风扇组合风扇停转时散热片温度梯度消失bbox须包含风扇叶片旋转区域...............13grounding_clamp接地线夹铜/铝材质接触不良时夹口处出现线状高温仅标注夹具金属部分排除接地线本体注意类别中没有“背景”或“其他”类。电力红外检测是强目标导向任务——模型只需识别明确故障关联部件杂波如支架、电缆、天空一律不标注。这大幅降低FP率避免模型学习无关纹理。3.2 类别间红外混淆的硬约束处理红外图像中oil_reservoir储油柜与main_transformer主变本体常因热传导呈现连续温场人工标注易连成一片。本数据集采用热力学分割原则以设备机械分界线法兰盘、焊缝、密封圈为分割依据而非温度等高线当两部件温差2K且无机械分界时优先归属体积更大的部件如储油柜依附于主变则归入main_transformer所有争议样本经3名红外持证工程师独立标注Kappa系数0.85才入库。实测表明该策略使YOLOv8s在验证集上main_transformer与oil_reservoir的混淆率从12.7%降至3.1%证明语义定义比单纯增加类别数更有效。3.3 类别不平衡的工程级补偿方案14类中main_transformer占比38.2%与grounding_clamp占比1.9%数量相差20倍。若直接采样训练小类别召回率趋近于0。本数据集提供三档平衡策略Level 1默认YOLO训练时启用class_weights权重1/log(freq)代码中直接传入--cls-loss-weightLevel 2进阶VOC格式配套提供sample_weight.csv每行image_name,class_id,sample_weight支持PyTorch DataLoader自定义采样Level 3硬件级红外相机采集时对小目标如pressure_release_valve启用ROI模式提升信噪比原始DNG文件保留需额外申请。我们实测发现仅用Level 1权重grounding_clamp的mAP0.5从0.11提升至0.39结合Level 2达0.52——已满足现场部署阈值0.5。4. 红外图像特有的预处理陷阱4271张图为何要重跑三点校正4.1 为什么出厂校正不够红外相机出厂时做的两点校正Two-Point Correction仅针对标准黑体源如50℃/100℃而变电站设备表面温度范围常在-20℃夜间至120℃过载之间。本数据集所有图像均在采集后执行动态三点校正在同一场景下拍摄三组黑体靶标30℃/60℃/90℃构建温度-灰度响应曲线非线性拟合对每张图应用LUT f(T_target, T_measured)插值校正。import numpy as np from scipy.interpolate import interp1d def dynamic_3point_correction(img_array, lut_table): img_array: uint16红外原始图0-65535 lut_table: shape(3,2) [[T1,G1],[T2,G2],[T3,G3]] 温度-灰度映射 返回校正后uint16图 # 构建温度-灰度插值函数三次样条 temps lut_table[:, 0] grays lut_table[:, 1] f_interp interp1d(temps, grays, kindcubic, bounds_errorFalse, fill_valueextrapolate) # 将灰度值反推为温度再映射回标准灰度 # 实际中需相机辐射定标参数此处简化示意 corrected np.zeros_like(img_array, dtypenp.uint16) for t in np.unique(img_array): if t 0: continue # 假设灰度t对应温度T_est查表得标准灰度G_std T_est f_interp(t) # 实际需用辐射方程反解 G_std int(f_interp(T_est)) # 理想灰度 corrected[img_array t] max(0, min(65535, G_std)) return corrected # 示例某张图的三点校正参数真实数据 lut_example np.array([[30, 12450], [60, 31820], [90, 52100]]) # 温度→原始灰度 # 应用校正 # corrected_img dynamic_3point_correction(raw_img, lut_example)这段代码的核心是拒绝用固定LUT批量处理。每张图的环境湿度、大气衰减、镜头污染程度不同必须单独计算LUT。本数据集的4271张图每张都附带其专属calibration_lut.npz文件含3组靶标坐标与灰度值这才是红外数据可用的前提。4.2 盲元补偿被90%开源项目忽略的致命噪声红外探测器存在坏点Dead Pixel和响应异常点Bad Pixel在常温下表现为固定位置的亮/暗斑。本数据集采用时空域联合补偿法空域采集10帧无目标黑体图统计每像素灰度方差方差5的视为盲元时域对同一设备连续拍摄30秒检测持续异常跳变点补偿盲元值替换为邻域均值非简单插值并记录bad_pixel_mask.png白点为盲元。提示YOLO训练前务必加载bad_pixel_mask.png在dataset.__getitem__()中mask掉盲元区域。否则模型会把固定噪声学成“接地线夹”特征——我们在早期测试中发现未mask时grounding_clamp类的FP率高达41%。4.3 热辐射伪影的物理建模剔除红外图像中常见反射伪影如阳光在油箱表面的镜面反射、气流扰动热浪扭曲和镜头眩光。本数据集未用GAN去伪影易失真而是构建物理约束滤波器反射伪影基于设备表面法向量CAD模型提供与太阳方位角计算反射区掩膜热浪在频域用方向性高斯滤波抑制45°±5°方向的条纹噪声眩光用形态学重建提取中心亮斑减去其高斯模糊版本。所有滤波参数均存于filter_params.json可复现。实测PSNR提升12.3dB且关键部件边缘锐度保持0.85SSIM远超传统中值滤波。5. 避坑指南电力红外数据集的5个血泪经验5.1 现象YOLO训练loss震荡剧烈val mAP停滞在0.2以下原因直接使用数据集提供的YOLO标签但未检查classes.txt与模型配置文件*.yaml中的类别顺序是否一致。本数据集classes.txt第0类是main_transformer但某YOLOv5配置模板默认第0类为person。解决训练前执行diff classes.txt yolov5/models/custom.yaml | grep -A5 names:确保顺序严格对应或用脚本自动校验with open(classes.txt) as f: voc_classes [line.strip() for line in f.readlines()] with open(yolov5/models/custom.yaml) as f: yaml_content f.read() yaml_classes eval(yaml_content.split(names:)[-1].split(\n)[0].strip()) assert voc_classes yaml_classes, Class order mismatch!5.2 现象推理时bbox全部偏右下角且尺寸放大2倍原因红外图像原始分辨率为640×480但YOLO标签按640×480归一化而训练时用了--img 1280参数模型内部将归一化坐标乘以1280导致坐标错乱。解决YOLO训练必须指定--img 640与标注基准一致或修改标签生成脚本使其按--img目标尺寸重新归一化。本数据集推荐前者——因为红外图像细节有限超分辨率反而引入伪影。5.3 现象验证集上bushing类AP0.5为0但目视检测明显存在原因bushing在红外图中常呈细长柱状高宽比8而YOLOv8默认anchor尺寸64,128,256无法匹配。解决运行utils/autoanchor.py重新聚类anchor输入为本数据集所有YOLO标签python utils/autoanchor.py --dataset powerir_voc --n 3 --thr 0.25 # 输出最优anchor: [12,18, 24,42, 36,88] ← 专为红外细长目标优化实测该anchor使bushingAP0.5从0提升至0.63。5.4 现象模型在测试集上对夜间图像漏检率激增原因数据集虽含夜间样本但其两点校正参数基于白天黑体标定夜间大气透射率变化未补偿。解决启用数据集提供的night_mode_flag.txt每行image_name,0/1对夜间图加载专用LUTif is_night(image_name): # 查flag文件 lut_night np.load(fcalibration/{image_name}_night_lut.npz) img dynamic_3point_correction(img, lut_night)5.5 现象TensorRT部署后精度暴跌尤其小目标原因TensorRT默认FP16量化损失红外图像本就微弱的灰度差异grounding_clamp等小目标特征被抹平。解决导出ONNX时禁用FP16或对输入层单独设置INT8量化需校准图# 使用本数据集中的calib_images/目录做校准 trtexec --onnxmodel.onnx --int8 --calib/path/to/calib_images/校准图必须包含grounding_clamp、pressure_release_valve等最难小目标否则量化误差不可控。6. 验证你的模型是否真懂红外用这3个指标代替mAP6.1 热源完整性得分Thermal Completeness Score, TCSmAP只看IoU但红外检测核心是热源覆盖质量。TCS定义为$$ \text{TCS} \frac{\text{Predicted bbox} \cap \text{True thermal region}}{\text{True thermal region}} $$其中“True thermal region”非标注框而是用Otsu阈值法从原始红外图提取的连通热区温度设备平均温升3σ。本数据集提供thermal_masks/目录每张图对应.png二值热区图。import cv2 import numpy as np def calculate_tcs(pred_bbox, true_thermal_mask, img_shape): # pred_bbox: [x1,y1,x2,y2] in pixel x1, y1, x2, y2 map(int, pred_bbox) x1, y1 max(0, x1), max(0, y1) x2, y2 min(img_shape[1], x2), min(img_shape[0], y2) pred_mask np.zeros(img_shape[:2], dtypenp.uint8) cv2.rectangle(pred_mask, (x1,y1), (x2,y2), 1, -1) intersection np.sum(np.logical_and(pred_mask, true_thermal_mask)) union np.sum(true_thermal_mask) # 分母为真热区面积 return intersection / (union 1e-6) # 示例对单张图所有预测计算TCS # tcs_list [calculate_tcs(box, thermal_mask, img.shape) for box in pred_boxes] # avg_tcs np.mean(tcs_list)TCS0.7才算合格——这意味着模型框住了真实发热区域而非仅仅套住设备外形。我们发现mAP0.6但TCS0.5的模型在现场会被运维人员直接否决“框是框住了但热点根本没罩住”。6.2 温度敏感度偏差Temperature Sensitivity Bias, TSB红外模型应具备温度不变性同一部件在30℃和80℃下检测置信度波动应15%。TSB计算为$$ \text{TSB} \frac{1}{N} \sum_{i1}^{N} \left| \frac{conf_{T_i} - conf_{T_{ref}}}{conf_{T_{ref}}} \right| $$其中T_ref50℃为参考温度conf_Ti为该温度下同类部件的平均置信度。本数据集按温度区间30-40℃, 50-60℃, 70-80℃分组每组至少200张图。实战技巧训练时在Loss中加入TSB正则项——对同一设备ID的多温度样本约束其输出logits的L2距离0.3。这比单纯数据增强更有效使模型真正理解“温度变化≠部件消失”。6.3 运维友好度评分Operation-Friendly Score, OFS最终交付不是给算法工程师看的是给变电站老师傅用的。OFS考察是否避免将阴影、反光、支架误检为故障部件FP类型分布对main_transformer等大目标是否给出连续热区而非碎裂bboxbbox连续性是否在bushing顶部易发热部位置信度显著高于底部物理合理性。本数据集提供ofa_evaluation_tool.py输入模型输出与原始红外图自动计算OFS0-100分。OFS60分的模型即使mAP0.75也建议返工——因为老师傅会说“这玩意儿报的都是废话”。我带团队落地12个变电站项目最深的教训是别迷信mAP红外检测的终极指标永远是“老师傅点头说‘这框得对’”。为此我们坚持每批数据都送3位一线红外持证工程师盲评TCS、TSB、OFS三项全达标才入库。希望帮到你。本文还有配套的精品资源点击获取
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

RAG知识库才是AI项目隐形短板:数据、检索、评测全流程复盘 2026/9/30 15:56:38

RAG知识库才是AI项目隐形短板:数据、检索、评测全流程复盘

最近把过去半年跟过的几个AI项目从头到尾捋了一遍,越捋越觉得有个事值得单独拎出来说:模型选型上大家普遍都不差,甚至有的项目一开始就是冲着当时能拿到的最强模型去的,结果线上效果一塌糊涂,用户问什么都答不准&#…

阅读更多 →
AI Engineering from Scratch:重建可审计、可重放的AI工程地基 2026/9/30 15:56:38

AI Engineering from Scratch:重建可审计、可重放的AI工程地基

1. 这不是“搭积木”,而是重建AI工程的地基“AI Engineering from Scratch”——看到这个标题,很多人第一反应是:又要学Python、装CUDA、编译PyTorch源码?其实完全不是。我带过7个从零启动的AI产品团队,亲手交付过金融…

阅读更多 →
本地 AI 无人值守的五个卡点:从环境感知到错误恢复的工程化实践 2026/9/30 15:56:38

本地 AI 无人值守的五个卡点:从环境感知到错误恢复的工程化实践

平时我们聊本地 AI,聊得最多的就是“它帮我写了脚本”“它能直接执行命令了”。我实测下来确实如此——让本地模型写个批量重命名、清理日志、定时抓网页的脚本,基本都能出活。但一旦把场景换成“丢在那让它自己跑,跑上个半夜,明早…

阅读更多 →
考研互助平台SpringBoot+Vue前后端分离项目实战与部署解析 2026/9/30 15:56:38

考研互助平台SpringBoot+Vue前后端分离项目实战与部署解析

考研互助交流平台这类项目,几乎每年都会在课程设计和毕业设计里出现一轮。原因很简单:业务场景清晰、用户群体明确、功能边界容易划分,而且前后端技术栈非常标准,拿来练手或者改造成自己的项目都特别合适。这套SpringBoot后端Vue前…

阅读更多 →
ddraw.dll丢失怎么办?官方修复流程与单文件下载风险详解 2026/9/30 15:56:38

ddraw.dll丢失怎么办?官方修复流程与单文件下载风险详解

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

阅读更多 →
手机电池为何难突破?材料、物理与系统的三重瓶颈 2026/9/30 15:56:30

手机电池为何难突破?材料、物理与系统的三重瓶颈

手机电池技术停滞这件事,这些年几乎成了数码圈公认的“困局核心”。屏幕从60Hz卷到120Hz甚至更高,芯片制程一年一换代,影像模组每年都在堆料,唯独电池,大家能感知到的进步好像只有容量从4000mAh涨到5000mAh&#xff0c…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉