YOLOv11 快速上手:训练你的第一个目标检测模型

引言

YOLOv11 是最新的 YOLO(You Only Look Once)版本,专注于高效的目标检测任务,适用于图像分割、姿态估计等任务。本文将详细介绍如何通过 YOLOv11 进行模型的训练和配置,并指导你如何使用自己的数据集进行目标检测模型的训练。

环境准备

链接: 一文带你了解 YOLOv11:入门操作与配置详解

数据集准备

使用自己的数据集时,需要将其格式化为 YOLOv11 支持的格式。以下是常用的数据集配置方法。

1. 数据集结构

你的数据集应该按照如下结构组织:

datasets/
    my_dataset/
        images/
            train/  # 训练图片
            val/    # 验证图片
        labels/
            train/  # 训练标签 (YOLO格式)
            val/    # 验证标签 (YOLO格式)

注意: 标签文件应为 .txt 格式,每一行代表一个物体,格式为: <x_center> <y_center> ,所有值均为相对比例(0-1 之间)。

2. 数据集配置文件

你需要为你的数据集创建一个 .yaml 文件,定义训练、验证集的路径及类别。创建一个类似于 my_dataset.yaml 的文件:

path: ../datasets/my_dataset  # 数据集的根目录
train: images/train           # 训练集图片路径
val: images/val               # 验证集图片路径
names:                        # 类别名称映射表
  0: people

将 path 指向你的数据集根目录,train 和 val 分别指向训练和验证图片的相对路径,names 包含你的数据集中所有类别的名称。

示例:数据集配置文件存储路径

ultralytics/cfg/datasets/people.yaml

示例:数据集配置文件内容

path: ../datasets/people # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images

# Classes for DOTA 1.0
names:
  0: people

YOLOv11 训练步骤

基于预训练模型进行训练

yolo detect train data=my_dataset.yaml model=yolo11n.pt epochs=100 imgsz=640

在这里,model=yolo11n.pt 使用预训练模型作为初始权重,这可以加快收敛速度,并提高模型性能。

示例:训练文件命令

yolo detect train data=./cfg/datasets/people.yaml model=yolo11n.pt epochs=10 

模型验证

在训练完成后,可以使用以下命令对模型进行验证:

yolo predict model=.model.pt source=./test.jpg

此命令将使用最优权重文件 best.pt 评估模型在验证集上的性能。

示例:推理验证命令

yolo predict model=./runs/detect/train4/weights/best.pt source=./VOC2007_28.jpg

参数调优

在 YOLOv11 中,您可以通过调整多种参数来优化训练过程。以下是常用的参数配置:

参数 默认值 描述
epochs 100 训练的总轮数。每个 epoch 表示对整个数据集的一次完整遍历。
batch 16 每个批次的图像数量,可以根据 GPU 内存进行调整。
imgsz 640 输入图像的大小。较大的图像尺寸有助于提高检测精度,但需要更多的计算资源。
device None 指定使用的设备,如 0 使用 GPU,cpu 使用 CPU。
lr0 0.01 初始学习率,通常可以根据数据集的复杂性进行调整。
momentum 0.937 优化器动量参数。
weight_decay 0.0005 L2 正则化项,防止过拟合。

可以通过修改这些参数进一步优化模型的训练效果。

实验结果和模型评估

在训练期间和结束后,YOLOv11 会自动生成训练日志、损失曲线和预测图像。你可以通过以下命令查看训练日志:

tensorboard --logdir runs/detect/train

打开浏览器访问 http://localhost:6006/ 即可查看训练过程中的详细统计数据和模型评估结果。

相关推荐
SYC_MORE1 个月前
YOLOv11快速上手:如何在本地使用TorchServe部署目标检测模型
yolov11教程·模型部署与推理·torchserve应用·目标检测模型训练·yolo模型导出