深度学习目标检测 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
微信扫描下方的二维码阅读本文

Comments NOTHING