风力发电机叶片表面缺陷识别检测数据集yolo数据集 共7000张

news2024/9/25 7:11:17

风力发电机叶片表面缺陷识别检测数据集yolo数据集 共7000张

风力发电机叶片表面缺陷识别数据集(Wind Turbine Blade Defects Recognition Dataset, WTBDRD)

摘要

WTBDRD 是一个专门为风力发电机叶片表面缺陷识别而设计的数据集,旨在为相关领域的研究人员提供一个标准化的训练和评估平台。该数据集包含了7000张高分辨率的叶片图像,这些图像来自多个不同型号的风力发电机叶片。每张图像都被详细地标注了叶片表面的各种缺陷类型和位置,包括腐蚀、裂纹、隐藏裂纹、表面附着物、表面腐蚀、表面损伤、表面油污以及雷击痕迹等。数据集的设计目标是帮助研究人员更好地理解叶片表面缺陷的特征和规律,从而提高叶片维护和管理的效率。

数据集特点

  • 全面的叶片缺陷分类:数据集涵盖了常见的叶片表面缺陷类型,包括腐蚀、裂纹、隐藏裂纹、表面附着物、表面腐蚀、表面损伤、表面油污以及雷击痕迹等。
  • 高质量的叶片图像:所有的图像都是由专业的工业相机拍摄,具有高分辨率和清晰度,能够准确反映叶片的真实状态。
  • 详细的标注信息:每张图像都经过专业人员的仔细标注,包括缺陷的位置、形状、大小等关键信息。
  • 丰富的叶片型号:数据集中的叶片来自多种型号的风力发电机,可以满足不同研究需求。
  • 易于使用:数据集已经按照YOLO格式整理,可以直接用于训练和评估YOLO系列的目标检测模型。
  • 广泛的应用场景:适用于风电行业叶片维护与管理、故障预测等领域。
数据集构成

  • 图像数量:总共有7000张叶片图像。
  • 类别数:8类
  • 类别名称及对应数量
    • corrosion: 腐蚀 (1058张)
    • craze: 裂纹 (36张)
    • hide_craze: 隐藏裂纹 (1172张)
    • surface_attach: 表面附着物 (1410张)
    • surface_corrosion: 表面腐蚀 (6714张)
    • surface_eye: 表面损伤 (206张)
    • surface_injure: 表面油污 (3182张)
    • thunderstrike: 雷击痕迹 (240张)
示例代码

以下是一个简单的Python脚本示例,用于加载数据集中的一对图像-标签对,并可视化其中的标注信息:

 

python

深色版本

import os
import cv2
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle

# 数据集目录路径
data_dir = 'path/to/wtbdrd_dataset'
train_image_dir = os.path.join(data_dir, 'images/train')
train_label_dir = os.path.join(data_data, 'labels/train')

# 选取一张训练图像及其对应标签
image_files = os.listdir(train_image_dir)
image_file = image_files[0]  # 假设取第一张图
label_file = os.path.splitext(image_file)[0] + '.txt'

image_path = os.path.join(train_image_dir, image_file)
label_path = os.path.join(train_label_dir, label_file)

# 加载图像
image = cv2.imread(image_path, cv2.IMREAD_COLOR)
height, width, _ = image.shape

# 解析YOLO格式标签
def parse_yolo_label(label_path, image_width, image_height):
    bboxes = []
    with open(label_path, 'r') as f:
        lines = f.readlines()
        for line in lines:
            class_id, x_center, y_center, box_width, box_height = map(float, line.strip().split())
            x_min = int((x_center - box_width / 2) * image_width)
            y_min = int((y_center - box_height / 2) * image_height)
            box_width = int(box_width * image_width)
            box_height = int(box_height * image_height)
            bboxes.append((class_id, x_min, y_min, box_width, box_height))

    return bboxes

# 解析标签
bboxes = parse_yolo_label(label_path, width, height)

# 可视化标注
fig, ax = plt.subplots(figsize=(10, 10))
ax.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
colors = ['red', 'blue', 'green', 'orange', 'purple', 'yellow', 'pink', 'brown', 'gray']
names = ['corrosion', 'craze', 'hide_craze', 'surface_attach', 'surface_corrosion', 'surface_eye', 'surface_injure', 'thunderstrike']
for bbox, color_name in zip(bboxes, colors):
    class_id, x, y, w, h = bbox
    rect = Rectangle((x, y), w, h, linewidth=2, edgecolor=color_name, facecolor='none')
    ax.add_patch(rect)
    ax.text(x, y - 10, names[int(class_id)], color=color_name, fontsize=8)

plt.title('Wind Turbine Blade Defects Recognition Dataset')
plt.axis('off')
plt.show()
数据集使用指南
  1. 数据准备

    • 确认数据集路径是否正确,并且图像和标签文件均存在指定的目录下。
    • 检查数据集是否有损坏或缺失的文件,确保所有图像和对应的标注文件都是完整的。
  2. 数据集划分

    • 数据集已经划分为训练集、验证集和测试集,可以直接使用。
  3. 配置文件

    • 根据所使用的深度学习框架创建相应的配置文件。对于YOLOv5等模型,通常需要一个data.yaml文件来描述数据集路径和类别信息。

    • data.yaml示例内容如下:

       yaml 

      深色版本

      train: path/to/wtbdrd_dataset/images/train
      val: path/to/wtbdrd_dataset/images/validation
      test: path/to/wtbdrd_dataset/images/test
      
      nc: 8
      names: ['corrosion', 'craze', 'hide_craze', 'surface_attach', 'surface_corrosion', 'surface_eye', 'surface_injure', 'thunderstrike']
  4. 模型训练

    • 选择适合任务的深度学习框架(如YOLOv5, YOLOv7, Detectron2等)。
    • 配置训练参数,包括学习率、批次大小、迭代次数等。
    • 使用提供的数据集开始训练模型。确保在训练过程中监控模型的

 

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

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

相关文章

【目标检测】隐翅虫数据集386张VOC+YOLO

隐翅虫数据集:图片来自网页爬虫,删除重复项后整理标注而成 数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):386 标注…

Oracle逻辑备份脚本【生产环境适用】

1 说明 从Oracle10g开始,引入了数据泵(Data Pump),是一种高效的数据传输工具,它通过导出(Export)和导入(Import)的方式帮助用户迁移数据。 在Oracle的产品设计中&#…

IntraWeb开发Web网站时对数据库“增、删、改、查”的操作

delphi源代码:示例两列布局带顶部汉堡菜单,对数据库“增、删、改、查”的操作(兼容电脑与手机) 功能:交互式网页,两列布局,顶部汉堡菜单,点击汉堡图标关闭左侧栏,这里演示…

责任链模式优化 文章发布的接口(长度验证,敏感词验证,图片验证等环节) 代码,示例

需求:后端需要提供一个文章发布的接口,接口中需要先对文章内容进行如下校验,校验通过后才能发布 1. 文章长度不能超过1万个字符 2. 不能有敏感词 3. 文章中图片需要合规 责任链相当于一个链条一样,链条上有很多节点,节…

Flask学习之项目搭建

一、项目基本结构 1、 exts.py 存在的目的:在Python中,如果两个或更多模块(文件)相互导入对方,就会形成导入循环。例如,模块A导入了模块B,同时模块B又导入了模块A,这就会导致导入循环。 比如在这个项目中…

拦截器filter

使用拦截器对请求进行拦截,查看请求头是否携带token 可以看到,拦截器引入了web的依赖 前端的请求会经过网关(gateway),网关用的是netty服务器,会和web默认的tomcat服务器冲突,但是前端过来的请求…

SMTP/IMAP服务发在线邮件时要用到

SMTP/IMAP服务 require PHPMailerAutoload.php; // 或 require class.phpmailer.php;// 创建实例 $mail new PHPMailer();// 设定邮件服务器 $mail->isSMTP(); $mail->Host smtp.example.com; // 邮件服务器地址 $mail->SMTPAuth true; $mail->Username your…

Golang | Leetcode Golang题解之第434题字符串中的单词数

题目: 题解: func countSegments(s string) (ans int) {for i, ch : range s {if (i 0 || s[i-1] ) && ch ! {ans}}return }

Redis面试笔记

1.什么是Redis 简单来说 redis 就是一个数据库,不过与传统数据库不同的是 redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向。另外,redis 也经常用来做分布式锁。redis 提供了多种数据类型来支持…

如何在算家云搭建DiffSynth-Kolors-Painter(图像生成)

一、DiffSynth-Kolors-Painter简介 DiffSynth 画板提供了 Prompt 分区控制技术,可以通过创建图层、调整不同的提示(Prompt)精细地控制画面的每一部分,影响画面的特定区域,从而实现对画面的精细操控,实现了…

LobeChat:使用服务端数据库部署 - Docker+NextAuth(github)+腾讯云

总流程 Docker部署 身份验证服务-NextAuth github S3存储服务 腾讯云COS 1. 安装Docker brew install docker --cask2. 创建pgvector容器(PostgresSQL) docker run --name [myPgvector] -p 5432:5432 -e POSTGRES_PASSWORD[pwd] -d -e POSTGRES_USER[username] pgvector/…

MySQL—存储过程详解

基本介绍 存储过程和函数是数据库中预先编译并存储的一组SQL语句集合。它们的主要目的是提高代码的复用性、减少数据传输、简化业务逻辑处理,并且一旦编译成功,可以永久有效。 存储过程和函数的好处 提高代码的复用性:存储过程和函数可以在…

【NPL】daydayup基本概念,词嵌入

NLP基础 基本概念 NLP,自然语言处理,目标是让计算机能够理解、解释、生成人类语言的数据。包括语言理解,语言生成,机器翻译,情感分享,语音识别,语音合成等 应用方向 自然语言理解 情感分析&a…

Python办公自动化案例:实现XMind文件转换成Excel文件

案例:实现XMind文件转换成Excel文件 将XMind文件转换为Excel文件的过程可以通过几个步骤来实现,主要涉及到读取XMind文件,解析其内容,然后创建一个Excel文件并将解析的内容写入。以下是一个简化的Python脚本,展示了如何使用xmindparser库来解析XMind文件,并使用pandas库…

搜索引擎简介

搜索引擎架构 整个搜索引擎分为三个系统 爬虫系统 索引系统 线上搜素服务 爬虫系统 爬虫分为两个阶段: 第一阶段:根据目标网站的列表页,爬对应的文档 URL 第二阶段:根据文档 URL,下载文档内容 触发器&#xff1…

多级目录SQL分层查询

需求&#xff1a;有多级目录&#xff0c;而目录的层级是不固定的&#xff0c;如下图所示&#xff1a; 数据结构&#xff1a; sql语句&#xff1a; <select id"getList" resultType"com.hikvision.idatafusion.dhidata.bean.vo.knowledgebase.KnowledgeBaseT…

基于SSM的“银发在线教育云平台”的设计与实现(源码+数据库+文档)

基于SSM的“银发在线教育云平台”的设计与实现&#xff08;源码数据库文档) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SSM 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 首页页面图 健身养生详情页面 在线课堂界面 …

C++ | Leetcode C++题解之第434题字符串中的单词数

题目&#xff1a; 题解&#xff1a; class Solution { public:int countSegments(string s) {int segmentCount 0;for (int i 0; i < s.size(); i) {if ((i 0 || s[i - 1] ) && s[i] ! ) {segmentCount;}}return segmentCount;} };

一种单目标A*算法设计与实现

一种单目标A*算法设计与实现 作者&#xff1a;吴屏珊 最近在学习简单的单目标A*算法&#xff0c;其中在CSDN上阅读到的一篇博文给了我很大启发&#xff0c;于是在该博文的基础上&#xff0c;笔者记录了一点自己对于A*算法的体会和感悟。原文链接 目录 文章目录 一种单目标A*…

如何破解西门子博途V19里的密码设置

现在使用TIA Portal V19的工程师是越来越多了&#xff0c;V19有个显著的变化就是访问密码的设置&#xff0c;很多小伙伴忽然发现已经用了很多年的功能&#xff0c;在改动以后都不会设置了&#xff0c;那我们今天就带着您看一下如何才能在 V19 中正确的设置 S7-1500 访问密码。 …