Advertisement

如何用Yolov8训练——风力发电风扇检测数据集 附:数据集+weight 风力发电叶片数据集

阅读量:

在这里插入图片描述
在这里插入图片描述
数据集目录结构
假设你的数据集目录结构如下:

深色版本
dataset/
├── images/
│ ├── train/
│ ├── val/
│ └── test/
└── labels/
├── train/
├── val/
└── test/

  1. 创建数据集配置文件
    创建一个名为 wind_turbine.yaml 的文件,内容如下:

yaml
深色版本

数据集路径

train: ./dataset/images/train/
val: ./dataset/images/val/
test: ./dataset/images/test/

类别数量

nc: 4
在这里插入图片描述

类别名称

names: [‘blade’, ‘hub’, ‘tower’, ‘nacelle’]
2. 安装必要的库
确保已经安装了 ultralytics 库和其他依赖项:

bash
深色版本
pip install ultralytics
3. 编写训练脚本
以下是一个详细的训练脚本:

python
深色版本
import os
from ultralytics import YOLO

1. 加载预训练模型

你可以使用官方提供的预训练权重,或者使用你自己的预训练权重

model = YOLO(‘yolov8n.yaml’) # 你可以选择不同的预训练权重,如’yolov8s’, 'yolov8m’等

如果你有自己的预训练权重文件,可以这样加载

model = YOLO(‘path/to/your/weights.pt’)

2. 设置数据集路径

data_yaml_path = ‘wind_turbine.yaml’

3. 配置训练参数

training_config = {
‘data’: data_yaml_path, # 数据集配置文件路径
‘epochs’: 100, # 训练轮次
‘imgsz’: 640, # 输入图像大小
‘batch’: 16, # 批量大小
‘name’: ‘wind_turbine_detection’, # 日志保存名称
‘patience’: 50, # 如果验证集上的性能没有提升,等待多少个epoch后停止训练
‘device’: ‘cuda’, # 使用GPU进行训练
‘cache’: False, # 是否缓存数据
‘project’: ‘runs/train’, # 项目保存路径
‘exist_ok’: False, # 如果项目已存在是否覆盖
‘save_period’: -1, # 每隔多少个epoch保存一次模型
‘rect’: False, # 是否使用矩形训练
‘cos_lr’: False, # 是否使用余弦退火学习率
‘label_smoothing’: 0.0, # 标签平滑
‘upload_dataset’: False, # 是否上传数据集到HUB
‘bbox_interval’: -1, # 每隔多少个epoch保存一次bbox
‘artifact_alias’: ‘latest’ # 保存的模型别名
}

4. 开始训练

results = model.train(**training_config)

5. 模型评估

metrics = model.val()

6. 保存模型

model.save(‘wind_turbine_model.pt’)

7. 可视化训练结果

if results:
print(“Training completed successfully!”)
print(f"Final validation metrics: {metrics}")
else:
print(“Training failed.”)

8. 清理临时文件

if training_config[‘cache’]:
os.system(‘rm -rf runs/dataset_cache’)

print(“Training and evaluation complete.”)
4. 运行训练脚本
将上述脚本保存为 train_wind_turbine.py,然后在终端中运行:

bash
深色版本
python train_wind_turbine.py
5. 监控训练过程
训练过程中,你可以在 runs/train/wind_turbine_detection 目录下找到训练日志和模型保存文件。你可以使用TensorBoard等工具来监控训练过程:

bash
深色版本
tensorboard --logdir runs/train
6. 测试模型
训练完成后,你可以使用以下代码测试模型:

python
深色版本
from ultralytics import YOLO
import cv2

加载训练好的模型

model = YOLO(‘wind_turbine_model.pt’)

加载测试图像

test_image_path = ‘path/to/test/image.jpg’
image = cv2.imread(test_image_path)

进行推理

results = model(image)

显示结果

for result in results:
boxes = result.boxes # 获取检测框
for box in boxes:
x1, y1, x2, y2 = box.xyxy[0] # 获取边界框坐标
conf = box.conf # 获取置信度
cls = int(box.cls) # 获取类别
label = model.names[cls] # 获取类别名称
color = (0, 255, 0) # 绿色框
thickness = 2
cv2.rectangle(image, (int(x1), int(y1)), (int(x2), int(y2)), color, thickness)
cv2.putText(image, f’{label} {conf:.2f}', (int(x1), int(y1) - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, color, 2)

显示图像

cv2.imshow(‘Result’, image)
cv2.waitKey(0)
cv2.destroyAllWindows()
7. 模型优化
如果你发现模型性能不佳,可以尝试以下方法进行优化:

数据增强:增加数据增强策略,如随机裁剪、翻转等。
调整超参数:调整学习率、批量大小、训练轮次等。
使用更强大的模型:尝试使用更大的YOLOv8模型,如yolov8l或yolov8x。
增加训练数据:如果可能,增加更多标注数据以提高模型泛化能力。
希望这些详细的步骤能帮助你成功训练风力发电风扇检测模型。

全部评论 (0)

还没有任何评论哟~