如何训练——风电叶片缺陷检测数据集,共1300余张超高分辨率各种污染物包括:鸟类、航空燃油(油渍)、污迹、附着的沙子和昆虫。 叶片缺陷数据集 风力发电机叶片缺陷数据集

风电叶片缺陷检测数据集,共1300余张超高分辨率(5000×4000)无人机图像,涵盖各种缺陷包括:后缘裂纹、因雷击导致的红色表面裂纹、因雷击导致的白色表面裂纹、前缘侵蚀和尖端裂纹。各种污染物包括:鸟类、航空燃油(油渍)、污迹、附着的沙子和昆虫。4.7GB

如何使用YOLOv5到YOLOv10来训练一个包含1300余张超高分辨率(5000×4000)无人机图像的风电叶片缺陷检测数据集,并附上详细的训练代码和步骤。这个数据集涵盖了多种缺陷类型和污染物。

数据集描述

  • 数据量:1300余张超高分辨率(5000×4000)无人机图像

  • 类别

    • 后缘裂纹(Trailing Edge Crack)
    • 因雷击导致的红色表面裂纹(Red Surface Crack from Lightning)
    • 因雷击导致的白色表面裂纹(White Surface Crack from Lightning)
    • 前缘侵蚀(Leading Edge Erosion)
    • 尖端裂纹(Tip Crack)
    • 鸟类(Birds)
    • 航空燃油(油渍)(Aviation Fuel Stain)
    • 污迹(Stains)
    • 附着的沙子(Attached Sand)
    • 昆虫(Insects)
  • 标注:每张图像都使用边界框进行精心注释。

  • 数据大小:4.7GB

数据集组织

假设你的数据集目录结构如下:

wind_turbine_blade_defect_dataset/
├── train/
│   ├── images/
│   └── labels/
├── valid/
│   ├── images/
│   └── labels/
├── test/
│   ├── images/
│   └── labels/
└── data.yaml  # 数据配置文件

其中:

  • train/ 包含训练集的图像和TXT标签文件。
  • valid/ 包含验证集的图像和TXT标签文件。
  • test/ 包含测试集的图像和TXT标签文件。
  • data.yaml 包含数据配置信息。

数据配置文件

创建或确认data.yaml文件是否正确配置了数据集路径和类别信息:

train: ./train/images/  # 训练集图像路径
val: ./valid/images/  # 验证集图像路径
test: ./test/images/  # 测试集图像路径

# Classes
nc: 10  # 类别数量
names: 
  - trailing_edge_crack
  - red_surface_crack_from_lightning
  - white_surface_crack_from_lightning
  - leading_edge_erosion
  - tip_crack
  - birds
  - aviation_fuel_stain
  - stains
  - attached_sand
  - insects  # 类别名称列表

数据准备

假设你的数据集已经准备好,并且每个图像都有对应的YOLO格式的TXT标签文件。如果还没有准备好,请确保将VOC格式的XML文件转换为YOLO格式的TXT文件,可以参考之前提供的脚本进行转换。

安装YOLOv5

如果你还没有安装YOLOv5,可以使用以下命令安装:

pip install yolov5

训练模型

由于图像分辨率非常高(5000×4000),直接训练可能会导致内存不足等问题。因此,建议先对图像进行下采样,或者在训练时动态调整图像大小。这里我们以640×640为例进行训练。

下采样图像(可选)

你可以使用以下Python脚本来批量下采样图像:

import os
from PIL import Image

def downsample_images(input_dir, output_dir, target_size=(640, 640)):
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)

    for filename in os.listdir(input_dir):
        if filename.endswith(('.png', '.jpg', '.jpeg')):
            img_path = os.path.join(input_dir, filename)
            with Image.open(img_path) as img:
                img_resized = img.resize(target_size, Image.ANTIALIAS)
                img_resized.save(os.path.join(output_dir, filename))

# 使用示例
downsample_images('./train/images/', './train/images_downsampled/')
downsample_images('./valid/images/', './valid/images_downsampled/')
downsample_images('./test/images/', './test/images_downsampled/')

然后更新data.yaml中的路径:

train: ./train/images_downsampled/  # 训练集图像路径
val: ./valid/images_downsampled/  # 验证集图像路径
test: ./test/images_downsampled/  # 测试集图像路径
开始训练

使用YOLOv5训练模型的命令非常简单,你可以直接使用以下命令开始训练:

cd path/to/wind_turbine_blade_defect_dataset/

# 克隆YOLOv5仓库
git clone https://github.com/ultralytics/yolov5.git
cd yolov5

# 下载预训练权重
wget https://github.com/ultralytics/yolov5/releases/download/v5.0/yolov5s.pt

# 开始训练
python train.py --img 640 --batch 16 --epochs 100 --data ../data.yaml --weights yolov5s.pt --cache

在这个命令中:

  • --img 640:输入图像的大小。
  • --batch 16:批量大小。
  • --epochs 100:训练轮数。
  • --data ../data.yaml:指定数据配置文件。
  • --weights yolov5s.pt:指定预训练权重。
  • --cache:使用缓存以加快训练速度。

模型评估

训练完成后,可以使用以下命令评估模型在验证集上的表现:

python val.py --data ../data.yaml --weights runs/train/exp/weights/best.pt --img 640

这里的runs/train/exp/weights/best.pt是训练过程中产生的最佳模型权重文件。

模型预测

你可以使用训练好的模型对新图像进行预测:

python detect.py --source path/to/your/image.jpg --weights runs/train/exp/weights/best.pt --img 640 --conf 0.4 --iou 0.5

查看训练结果

训练过程中的日志和结果会保存在runs/train/目录下,你可以查看训练过程中的损失、精度等信息。

升级到YOLOv10

如果你想要使用最新的YOLOv10进行训练,可以按照以下步骤操作:

  1. 安装YOLOv10:首先需要确认YOLOv10是否已经发布,并且是否有可用的开源实现。目前YOLOv8是最新的公开版本,如果YOLOv10已经发布并且有可用的实现,可以按照类似的方式安装和使用。

  2. 使用YOLOv10训练:假设YOLOv10已经发布并且可用,可以使用以下命令进行训练:

    cd path/to/wind_turbine_blade_defect_dataset/
    
    # 克隆YOLOv10仓库
    git clone https://github.com/ultralytics/yolov10.git
    cd yolov10
    
    # 下载预训练权重
    wget https://github.com/ultralytics/yolov10/releases/download/v10.0/yolov10s.pt
    
    # 开始训练
    python train.py --img 640 --batch 16 --epochs 100 --data ../data.yaml --weights yolov10s.pt --cache

注意事项

  • 数据集质量:确保数据集的质量,包括清晰度、标注准确性等。
  • 模型选择:可以选择更强大的模型版本(如YOLOv5m、YOLOv5l等)以提高性能。
  • 超参数调整:根据实际情况调整超参数,如批量大小(batch-size)、图像大小(imgsz)等。
  • 监控性能:训练过程中监控损失函数和mAP指标,确保模型收敛。
  • 高分辨率图像处理:对于超高分辨率图像,考虑使用下采样或其他方法来减少内存消耗。

通过上述步骤,你可以使用YOLOv5来训练一个风电叶片缺陷检测数据集,并使用训练好的模型进行预测。

### 关于风电叶片缺陷检测数据集的信息 存在两个主要的风电叶片缺陷检测数据集可供研究者使用: #### 数据集一 该数据集包含 **1300 余张超高分辨率(5000×4000)无人机图像**,涵盖了多种类型的叶片缺陷以及污染物情况。具体包括以下几类缺陷污染状况: - 后缘裂纹 - 因雷击导致的红色表面裂纹 - 因雷击导致的白色表面裂纹 - 前缘侵蚀 - 尖端裂纹 此外还记录了各类污染物的影响,例如鸟类痕迹、航空燃油油渍)、污迹附着沙子昆虫等[^1]。 此数据集大小约为 **4.7GB**,适合用于高精度的目标识别与分类模型开发。 #### 数据集二 另一个更大型的数据集提供了 **5029 张图片** 并标注为 VOC YOLO 格式,适用于主流目标检测框架下的快速部署实验。它定义了 **8 类不同的损伤类型** ,能够满足多类别复杂场景下算法性能评估的需求[^2]。 对于希望获取上述任意一种数据集的研究人员来说,可以直接通过官方链接或者公开资源平台进行下载操作。其中第二个提到的数据集可以通过 CSDN 提供的具体网址完成文件获取工作:[点击访问](https://download.csdn.net/download/FL1623863129/89665914)。 以下是基于 Python 的简单脚本示例来展示如何初步加载并查看这些高质量图像的一部分内容: ```python import cv2 from pathlib import Path def load_and_display_image(image_path): """ 加载指定路径中的单幅图像 """ img = cv2.imread(str(image_path)) if img is not None: cv2.imshow('Wind Turbine Blade', img) cv2.waitKey(0) cv2.destroyAllWindows() else: print(f"无法读取 {image_path}") # 设置到实际存储位置后再运行下面这行代码测试效果 dataset_dir = Path("/path/to/wind_turbine_blade_dataset") for image_file in dataset_dir.glob("*.jpg"): load_and_display_image(image_file) break # 只显示第一张作为例子演示用途即可停止循环 ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值