深度学习目标检测 YOLOV11如何训练自己的数据集 YOLOv11训练配置环境教程 以气球检测数据集为例

whdahanh 发布于 2025-09-29 160 次阅读


深度学习目标检测 YOLOV11训练自己的数据集流程 训练配置环境教程 修改yaml.在这里插入图片描述

Balloon/
├── test/                  # 测试数据集
│   ├── images
│   └── labels
├── train/                 # 训练数据集
│   ├── images
│   └── labels
├── ultralytics/           # Ultralytics相关文件夹
│   └── ...                # yolov11.yaml就在子目录下
├── valid/                 # 验证数据集
│   ├── images
│   └── labels
├── data.yaml              # 数据集配置文件(定义数据集结构和类别等)
├── README.md              # 项目说明文件
├── yolov11x.pt            # 预训练模型文件
└── yolov11_train.py       # YOLOv11训练脚本

1. 配置好yolov11的环境,参考https://github.com/ultralytics/ultralytics
   pip install ultralytics

2. 修改data.yaml文件,把train、val、test的路径改为你自己的路径。

3. 修改训练文件yolov11_train.py里面相关文档的路径:
   第5行修改为你的yolov11.yaml路径,yolov11.yaml文件放在ultralytics/cfg/models/11/yolo11.yaml路径下
   第7行修改data.yaml路径,就是你第二步修改的文件的路径。

4. 命令行运行python yolov11_train.py就可以开始训练了

在这里插入图片描述
1
在这里插入图片描述
基于 YOLOv11(Ultralytics 官方最新稳定版),训练一个 单类气球检测模型(2365张图片,YOLO格式)


✅ 一、项目结构

Balloon/
├── test/                  
│   ├── images/
│   └── labels/
├── train/                 
│   ├── images/
│   └── labels/
├── valid/                 
│   ├── images/
│   └── labels/
├── data.yaml              # 数据集配置
├── yolov8n.pt             # 官方预训练权重(替代 yolov11x.pt)
├── train.py               # 训练脚本(替代 yolov11_train.py)
└── README.md

📌 注意:ultralytics/ 是通过 pip install ultralytics 安装的库,无需手动创建。


✅ 二、环境配置(“YOLOv11”)

# 1. 创建虚拟环境
conda create -n yolo python=3.9-y
conda activate yolo

# 2. 安装 PyTorch + CUDA(推荐 11.8)
pip installtorch==2.0.1+cu118 torchvision==0.15.2+cu118 -f https://download.pytorch.org/whl/torch_stable.html

# 3. 安装 Ultralytics(YOLOv8 官方库)
pip install ultralytics

# 4. 验证安装
yolo version

✅ 当前最新官方版本是 YOLOv11,支持 yolov8n/s/m/l/x


✅ 三、数据集配置文件:data.yaml

# data.yaml
train: ./train/images
val: ./valid/images
test: ./test/images

nc:1
names:['balloon']

✅ nc: 1 表示单类检测,names 中为类别名。


✅ 四、训练脚本:train.py

# train.py
from ultralytics import YOLO

# 1. 加载预训练模型(使用官方 yolov8n.pt,替代 yolov11x.pt)
model = YOLO('yolov8n.pt')# 可换为 yolov8s.pt 等

# 2. 开始训练
results = model.train(
    data='data.yaml',# 指向你的 data.yaml
    epochs=150,# 训练轮数
    imgsz=640,# 输入图像大小
    batch=16,# 批次大小(根据显存调整)
    name='balloon_yolov8n_640',# 实验名称
    device='cuda',# 使用 GPU
    workers=8,# 数据加载线程
    optimizer='AdamW',# 优化器
    lr0=0.001,# 初始学习率
    weight_decay=0.0005,
    momentum=0.937,
    patience=50,# 早停:50轮无提升则停止
    project='runs/balloon',# 保存路径
    amp=True,# 混合精度训练
    close_mosaic=30,# 关闭 Mosaic 增强的轮数
    cache='disk'# 缓存图像到磁盘
)

print("训练完成!")

✅ 五、评估与推理

1. 评估模型(在验证集上)

# val.py
from ultralytics import YOLO

model = YOLO('runs/balloon/balloon_yolov8n_640/weights/best.pt')

metrics = model.val(
    data='data.yaml',
    imgsz=640,
    batch=16,
    device='cuda'
)

print(f"mAP50: {metrics.box.map50:.4f}")
print(f"mAP50-95: {metrics.box.map:.4f}")

2. 推理(检测图片/视频)

# detect.py
from ultralytics import YOLO

model = YOLO('runs/balloon/balloon_yolov8n_640/weights/best.pt')

# 检测图片
results = model.predict(
    source='test/images/img001.jpg',
    conf=0.3,
    save=True,
    project='runs/detect',
    name='balloon_result'
)

Ultralytics 官方仓库中并无此文件。可以手动创建它来定义网络结构,例如:

ultralytics/cfg/models/11/yolov11.yaml(示例)

# ultralytics/cfg/models/11/yolov11.yaml
# YOLOv11 自定义模型配置(非官方)
nc:80
scales:
n:[0.33,0.25]
s:[0.33,0.5]
m:[0.67,0.75]
l:[1.00,1.00]
x:[1.00,1.25]

backbone:
-[-1,1, Conv,[64,3,2]]# 0
-[-1,1, Conv,[128,3,2]]# 1
-[-1,3, C2f,[128,True]]# 2
-[-1,1, Conv,[256,3,2]]# 3
-[-1,6, C2f,[256,True]]# 4
-[-1,1, Conv,[512,3,2]]# 5
-[-1,6, C2f,[512,True]]# 6
-[-1,1, Conv,[1024,3,2]]# 7
-[-1,3, C2f,[1024,True]]# 8

head:
-[-1,1, nn.Upsample,[None,2,'nearest']]# 9
-[[-1,6],1, Concat,[1]]# 10
-[-1,3, C2f,[512]]# 11
-[-1,1, nn.Upsample,[None,2,'nearest']]# 12
-[[-1,4],1, Concat,[1]]# 13
-[-1,3, C2f,[256]]# 14
-[-1,1, Conv,[256,3,2]]# 15
-[[-1,11],1, Concat,[1]]# 16
-[-1,3, C2f,[512]]# 17
-[-1,1, Conv,[512,3,2]]# 18
-[[-1,8],1, Concat,[1]]# 19
-[-1,3, C2f,[1024]]# 20
-[[14,17,20],1, Detect,[nc, anchors]]# 21

⚠️ 此文件需手动创建,且需确保 ultralytics 库能加载自定义模型。


✅ 七、运行训练

# 激活环境
conda activate yolo

# 运行训练
python train.py

训练完成后,最佳模型保存在:

runs/balloon/balloon_yolov8n_640/weights/best.pt

在这里插入图片描述



微信扫描下方的二维码阅读本文

此作者没有提供个人介绍
最后更新于 2025-09-29