光伏板缺陷红外检测数据集

news2024/11/15 18:28:28

光伏板缺陷红外检测数据集 包含以下4个数据文件: /train:训练集 /valid:验证集 /test:测试集 README.txt:数据说明 【数据说明】检测目标以Pascal VOC格式进行标注,对每个图像进行以下预处理,统一调整大小为640x640。数据集共包含11599+光伏板红外图像样张,其中train包含11400+红外图像样张(带xml标注),valid包含119+红外图像样张(带xml标注),test包含80+红外图像样张(带xml标注),也可以自行划分训练集、验证集和测试集,数据集的增广方法如下: * Rotation: Between -45° and +45° * Brightness: Between -25% and +25% 最后,目标检测对应的缺陷类别包含2大类,分别为热点和局部热斑。

d10f2ee52f824a808b4bbf1e98da90a5.png

光伏板缺陷红外检测数据集

数据集描述

该数据集是一个专门用于光伏板缺陷红外图像检测的数据集,旨在帮助研究人员和开发者训练和评估基于深度学习的目标检测模型。光伏板是太阳能发电系统中的关键组件,其性能直接影响整个系统的效率。通过红外成像技术,可以有效检测光伏板上的热点和局部热斑等缺陷,从而及时发现并处理潜在问题。数据集提供了大量的高分辨率红外图像,并且所有标注都是通过Pascal VOC格式进行的,确保了高质量的标注信息。

数据规模

  • 总样本数量:11,599+张红外图像
    • 训练集 (train):11,400+张红外图像(带xml标注)
    • 验证集 (valid):119+张红外图像(带xml标注)
    • 测试集 (test):80+张红外图像(带xml标注)
  • 数据量:具体大小未提供
  • 标注格式:Pascal VOC格式XML标注
  • 目标类别
    • 热点 (Hot Spot)
    • 局部热斑 (Local Hot Spot)

图像特性

  • 统一预处理:每张图像都经过预处理,统一调整大小为640x640像素。
  • 多样化场景:覆盖了不同类型的光伏板、不同的光照条件以及各种背景环境下的红外图像情况。
  • 高质量手工标注:每张图像都有详细的边界框标注,支持直接用于训练目标检测模型。
  • 真实拍摄:所有图像均为实际拍摄的真实场景,增强了模型在实际应用中的鲁棒性。
  • 数据增广:数据集进行了以下增广方法:
    • 旋转 (Rotation):角度范围为-45°到+45°
    • 亮度 (Brightness):变化范围为-25%到+25%

应用场景

  • 光伏系统维护:通过自动检测光伏板上的热点和局部热斑,辅助运维人员及时发现和处理故障,提高光伏系统的可靠性和发电效率。
  • 智能巡检:集成到无人机或机器人巡检系统中,实现自动化巡检,减少人工成本。
  • 科研分析:用于研究目标检测算法在特定工业应用场景中的表现,特别是在复杂背景和光照条件下的鲁棒性。
  • 故障预警:通过早期检测光伏板上的温度异常,提前预警潜在故障,减少系统停机时间。

数据集结构

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

1solar_panel_defect_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):包含11,400+张红外图像样张(带xml标注)。
    • 验证集 (valid):包含119+张红外图像样张(带xml标注)。
    • 测试集 (test):包含80+张红外图像样张(带xml标注)。
  • 目标标签:目标检测对应的缺陷类别包含2大类,分别为热点 (Hot Spot) 和局部热斑 (Local Hot Spot)。
  • 数据增广:数据集进行了以下增广方法:
    • 旋转 (Rotation):角度范围为-45°到+45°
    • 亮度 (Brightness):变化范围为-25%到+25%
  • 自行划分:用户可以根据需要自行划分训练集、验证集和测试集。

示例代码

以下是一个使用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/solar_panel_defect_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/solar_panel_defect_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/2154626.html

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

相关文章

【Linux笔记】如何将内容从一个文件复制到另一个文件

比如:将文件tmp_file.txt中的部分数据,复制到file01.txt中去 tmp_file.txt文中内容: file01.txt为空文档 一、使用vi编辑器 I、文件中直接使用:e 目标文件进行切换文件复制 1、打开被复制文件 vi tmp_file.txt 2、进入一般命令模式 默认情况为…

2024年华为杯-研赛更新时间轴-资料分享

本次 助攻CDF题 问题一二三问均已完成更新,更新计划轴如图所示 由于赛题之间存在紧密的联系,单独发布问题一二,有可能与明天最终论文不相符,会根据后面问题对前面几问进行调整。个人建议,等明天上午的完整论文即可 题 …

ACT训练调参技巧

ACT Tuning Tips 这里是针对斯坦福Aloha机械臂远程训练调参技巧的中文解释,初学者可能会对此感到陌生,不过不用担心,多尝试,多实验。 - Chunk size is the most important param to tune when applying ACT to a new environment…

【YOLO目标检测学生课堂行为数据集】共4266张、已标注txt格式、有训练好的yolov5的模型

目录 说明图片示例 说明 数据集格式:YOLO格式 图片数量:4266 标注数量(txt文件个数):4266 标注类别数:3 标注类别名称:hand、read、write 数据集下载:学生课堂行为数据集 图片示例 数据集图片&#…

HTML5中新增元素介绍

引入了许多新元素,以增强网页的语义和功能。这些新元素大致可以按以下几类进行分类和介绍。 下面是对各标签的详解,section、header、footer、nav、article、aside、figure、code、dialog、meter、time、progress、video、audio、details、atagrid、menu…

AIGC7: 高通骁龙AIPC开发者沙龙过程记录A

图中是一座高耸的宫殿。 就像AI的出现,慢慢初现端倪,头角峥嵘。 背景 一直以来都比较关注AI的发展,有幸再一次参加异常AI的盛会。 从我的角度看。 高通是一家生产芯片的公司,国内的小米,荣耀,Oppo , Vi…

Qt_窗口界面QMainWindow的介绍

目录 1、菜单栏QMenuBar 1.1 使用QMainWindow的准备工作 1.2 在ui文件中设计窗口 1.3 在代码中设计窗口 1.4 实现点击菜单项的反馈 1.5 菜单中设置快捷键 1.6 菜单中添加子菜单 1.7 菜单项中添加分割线和图标 1.8 关于菜单栏创建方式的讨论 2、工具栏QToolBar …

[产品管理-32]:NPDP新产品开发 - 30 - 文化、团队与领导力 - 领导力与团队的可持续发展

目录 一、团队领导的领导力 1.1 领导力 1、领导力的定义 2、领导力的重要性 3、领导力的构成要素 4、如何提升领导力 1.2 情商 二、虚拟团队 1、团队定义与特征 2、团队优势 3、团队挑战与应对策略 三、可持续发展 四、团队管理和领导力中的度量指标 4.1 激励创新…

unix中的进程标识以及使用场景

一、前言 本文将介绍unix系统中的进程标识以及使用场景。进程标识和用户标识类似,只不过其指代的对象是一个进程。我们常把进程标识称为进程ID,本文将讨论如下内容: 1.什么是进程标识? 2.特殊的进程标识 3.如果获取以及使用进程标…

深度学习02-pytorch-09(pytorch完结篇)-基本使用介绍-线性回归案例

使用PyTorch的基本流程:数据准备:通过make_regression生成回归数据,使用 TensorDataset 和 DataLoader 来封装数据。 模型定义:使用 nn.Module 或内置层(如 nn.Linear)来定义模型结构。 损失函数和优化器…

【全网最全】2024年华为杯研赛D题成品论文获取入口(后续会更新)

您的点赞收藏是我继续更新的最大动力! 一定要点击如下的卡片,那是获取资料的入口! 点击链接加入【2024华为杯研赛资料汇总】:https://qm.qq.com/q/XzdIsvbiM0https://qm.qq.com/q/XzdIsvbiM0 你是否在寻找数学建模比赛的突破点…

【他山之石】优化 JavaScript 的乐趣与价值(下)

前言 继本文的 上篇 发表之后,没想到反响还挺好,看来大家在 JS 优化的问题上越来越注重“与国际接轨”了。一起来看本文的下篇,也是干货满满。 文章目录 6. Avoid large objectsWhat the eff should I do about this? 7. Use eval8. Use str…

多元形式助力商业价值最大化,王鹤棣商业影响力遥遥领先

明星商业代言层出不穷,但在个人影响力的升级玩法上,当代青年偶像王鹤棣以其独特的个人魅力和卓越的商业头脑,正逐步搭建起一个以个人形象为核心,与各大品牌相互成就的立体商业模型。通过一系列创新的商务合作模式,王鹤…

[Java并发编程] synchronized(含与ReentrantLock的区别)

文章目录 1. synchronized与ReentrantLock的区别2. synchronized的作用3. synchronized的使用3.1 修饰实例方法,作用于当前实例,进入同步代码前需要先获取实例的锁3.2 修饰静态方法,作用于类的Class对象,进入修饰的静态方法前需要…

React组件如何暴露自身的方法

一、研究背景 最近遇到一个如何暴露React组件自身方法的问题。在某些时候,我们需要调用某个组件内部的方法以实现某个功能,因此我们需要了解如何暴露组件内部API的方法。 二、实践过程 本文主要介绍React组件暴露子组件API的方法,以下是实…

2024年研赛-华为杯数模竞赛C题论文首发+论文讲解+代码分享

2024年华为杯-研赛分享资料(论文分享部分代码)(已更新部分代码):链接:https://pan.baidu.com/s/1HGIYjV3lqzUc_3H0vg5H8w 提取码:sxjm 题 目: _基于数据驱动下磁性元件的磁芯损耗建模…

leetcode第十三题:罗马数字转整数

罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如&#x…

OpenCV特征检测(7)角点检测函数goodFeaturesToTrack()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 确定图像上的强角点。 该函数根据 240中所描述的方法查找图像中最显著的角点或者指定图像区域内的最显著角点。 函数使用 cornerMinEigenVal 或…

华南理工大学信息工程高频电子线路课程设计——基于锁相环的调试解调器设计

完整报告链接如下: 通过网盘分享的文件:高频课设报告.docx 链接: https://pan.baidu.com/s/1J83UCDSU0UHcv4ONYxfyhg?pwdzqyr 提取码: zqyr --来自百度网盘超级会员v5的分享 懒得贴上来了,放一下截图。

ICM20948 DMP代码详解(34)

接前一篇文章:ICM20948 DMP代码详解(33) 上一回解析了inv_icm20948_initialize_lower_driver函数中设置FIFO_RST和FIFO_CFG寄存器相关的代码,本回继续往下解析inv_icm20948_initialize_lower_driver函数的后续代码。为了便于理解和…