如何使用YOLOv5和YOLOv8训练一个高精度的模型来检测三角洲行动数据集中的摸金 3w数据集 内含一万摸金 全身标注 三角洲图片数据集三角洲行动数据集

三角洲行动数据集
yolov5-yolov11通用数据集
三角洲图片

3w数据集 内含一万摸金 全身标注在这里插入图片描述
在这里插入图片描述
讨论如何使用YOLOv5和YOLOv8训练一个包含三角洲行动数据集的模型。假设你的数据集包含3万张图片,其中1万张是摸金(全身标注)。

数据集准备

确保你的数据集按照以下结构组织:

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

数据集标注

确保你的数据集已经标注,并且标注文件是YOLO格式的txt文件。每个标注文件包含以下格式:

class_id x_center y_center width height

例如,一个标注文件可能如下所示:

0 0.5 0.5 0.2 0.2  # 摸金

数据配置文件 (data.yaml)

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

train: ./delta_dataset/images/train
val: ./delta_dataset/images/val
test: ./delta_dataset/images/test

nc: 1  # 类别数量(1类)
names: ['mogujin']  # 类别名称

安装YOLOv5和YOLOv8

确保你已经安装了YOLOv5和YOLOv8。你可以使用以下命令安装:

pip install yolov5
pip install ultralytics

训练模型

使用YOLOv5训练模型
python yolov5/train.py --img 640 --batch 16 --epochs 100 --data ./delta_dataset/data.yaml --weights yolov5s.pt --name yolov5_delta
使用YOLOv8训练模型
python train.py --data ./delta_dataset/data.yaml --img 640 --batch 16 --epochs 100 --name yolov8_delta --weights yolov8n.pt

示例代码

6.1. 数据预处理示例
import os
import shutil

def prepare_data(input_dir, output_dir, split='train'):
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)
    
    for filename in os.listdir(input_dir):
        if filename.endswith(('.jpg', '.png', '.jpeg')):
            img_path = os.path.join(input_dir, filename)
            label_path = os.path.join(input_dir, filename.replace('.jpg', '.txt'))
            if os.path.exists(label_path):
                shutil.copy(img_path, os.path.join(output_dir, 'images', split))
                shutil.copy(label_path, os.path.join(output_dir, 'labels', split))

# 示例用法
prepare_data('./raw_data/train', './delta_dataset', split='train')
prepare_data('./raw_data/val', './delta_dataset', split='val')
prepare_data('./raw_data/test', './delta_dataset', split='test')
6.2. 训练模型示例
import torch
from ultralytics import YOLO

# 加载预训练模型
model = YOLO('yolov8n.pt')

# 配置数据集
data_yaml_path = './delta_dataset/data.yaml'

# 训练模型
model.train(data=data_yaml_path, epochs=100, imgsz=640, batch=16, name='yolov8_delta')

评估模型

评估训练好的模型:

使用YOLOv5评估模型
python yolov5/val.py --data ./delta_dataset/data.yaml --weights runs/train/yolov5_delta/weights/best.pt
使用YOLOv8评估模型
python val.py --data ./delta_dataset/data.yaml --weights runs/train/yolov8_delta/weights/best.pt

使用模型进行检测

假设你已经训练好了模型,并且保存了权重文件(例如best.pt),你可以使用以下代码进行检测:

import cv2
import torch
from ultralytics import YOLO

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

# 加载图片
image_path = 'path_to_your_image.jpg'
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()
        cv2.rectangle(image, (int(x1), int(y1)), (int(x2), int(y2)), (0, 255, 0), 2)
        label = model.names[int(box.cls[0])]
        cv2.putText(image, label, (int(x1), int(y1) - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 255, 0), 2)

# 显示图像
cv2.imshow('Detection Result', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

总结

通过上述步骤,你可以使用YOLOv5和YOLOv8训练一个高精度的模型来检测三角洲行动数据集中的摸金。确保数据集标注正确,并且模型训练参数设置合理,可以进一步提高模型的精度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值