如何使用YOLOv8训练河道漂浮物检测数据集,模型测试和推理 河道漂浮物水面垃圾数据集,5类:水污染物,废弃船只,漂浮物,捕鱼养殖,废弃垃圾,支持直接YOLO训练,无人机视角 已标注好 3000张

目标检测数据集:河道漂浮物,5种目标:水污染物,废弃船只,漂浮物,捕鱼养殖,废弃垃圾,支持直接YOLO训练,已标注好 3000张在这里插入图片描述
好的,让我们继续详细地介绍如何使用YOLOv8训练河道漂浮物检测数据集,并附上可视化代码,以便在训练和推理过程中查看检测结果。以下是完整的步骤:在这里插入图片描述

1. 数据集准备

确保你的数据集已经按照YOLO格式标注,并且数据集结构如下:
在这里插入图片描述

river_debris_dataset/
│
├── images/
│   ├── train/
│   ├── val/
│   └── test/
│
├── labels/
│   ├── train/
│   ├── val/
│   └── test/
│
└── data.yaml

在这里插入图片描述

2. 数据集标注

确保每个标注文件是YOLO格式的,例如:

# Example YOLO format label file
0 0.5 0.5 0.1 0.1  # Class ID, x_center, y_center, width, height
1 0.6 0.6 0.1 0.1  # Class ID, x_center, y_center, width, height

3. 数据配置文件 (data.yaml)

创建一个data.yaml文件,用于配置数据集:

train: ./river_debris_dataset/images/train
val: ./river_debris_dataset/images/val
test: ./river_debris_dataset/images/test

nc: 5  # 类别数量(5类)
names: ['water_pollutant', 'abandoned_ship', 'floating_debris', 'fishing_culture', 'abandoned_garbage']  # 类别名称

4. 安装依赖

在这里插入图片描述
确保你已经安装了ultralytics库。如果没有安装,可以使用以下命令安装:

pip install ultralytics

5. 训练模型

使用以下命令训练YOLOv8模型:

python train.py --data ./river_debris_dataset/data.yaml --img 640 --batch 16 --epochs 100 --name yolov8_river_debris --weights yolov8n.pt

6. 可视化代码

6.1 训练过程中的可视化

在训练过程中,YOLOv8会自动保存中间结果,并在训练完成后生成一个results.mp4文件,用于展示训练过程中的检测结果。

6.2 推理过程中的可视化

以下是一个简单的Python脚本,用于使用训练好的模型进行推理,并可视化检测结果:

import cv2
from ultralytics import YOLO

def detect_and_visualize(image_path, model):
    # 读取图像
    image = cv2.imread(image_path)
    
    # 进行检测
    results = model(image)
    
    # 获取检测结果
    for result in results:
        boxes = result.boxes
        for box in boxes:
            x1, y1, x2, y2 = box.xyxy[0].tolist()
            label = box.cls[0].item()
            confidence = box.conf[0].item()
            
            # 绘制边界框
            cv2.rectangle(image, (int(x1), int(y1)), (int(x2), int(y2)), (0, 255, 0), 2)
            cv2.putText(image, f"{model.names[int(label)]}: {confidence:.2f}", (int(x1), int(y1) - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 255, 0), 2)
    
    # 显示结果
    cv2.imshow('Detection Results', image)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

# 加载模型
model = YOLO('runs/train/yolov8_river_debris/weights/best.pt')

# 示例图像路径
image_path = 'path/to/image.jpg'

# 运行检测和可视化
detect_and_visualize(image_path, model)

7. 模型测试

训练完成后,你可以使用以下命令测试模型:

python val.py --data ./river_debris_dataset/data.yaml --weights runs/train/yolov8_river_debris/weights/best.pt

8. 模型推理

使用训练好的模型进行推理:

python detect.py --weights runs/train/yolov8_river_debris/weights/best.pt --source path/to/image_or_video

9. 示例代码

以下是一个完整的Python脚本,用于使用训练好的模型进行推理,并可视化检测结果:

import cv2
from ultralytics import YOLO

def detect_and_visualize(image_path, model):
    # 读取图像
    image = cv2.imread(image_path)
    
    # 进行检测
    results = model(image)
    
    # 获取检测结果
    for result in results:
        boxes = result.boxes
        for box in boxes:
            x1, y1, x2, y2 = box.xyxy[0].tolist()
            label = box.cls[0].item()
            confidence = box.conf[0].item()
            
            # 绘制边界框
            cv2.rectangle(image, (int(x1), int(y1)), (int(x2), int(y2)), (0, 255, 0), 2)
            cv2.putText(image, f"{model.names[int(label)]}: {confidence:.2f}", (int(x1), int(y1) - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 255, 0), 2)
    
    # 显示结果
    cv2.imshow('Detection Results', image)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

# 加载模型
model = YOLO('runs/train/yolov8_river_debris/weights/best.pt')

# 示例图像路径
image_path = 'path/to/image.jpg'

# 运行检测和可视化
detect_and_visualize(image_path, model)

总结

通过上述步骤,你可以使用YOLOv8训练河道漂浮物检测数据集,并进行模型测试和推理。同时,提供了可视化代码,以便在训练和推理过程中查看检测结果。确保数据集结构正确,标注文件格式正确,并且路径配置正确。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值