训练自有图片的目标检测模型,难点常常先出在数据集:类别 ID、图片与标签文件名、训练和验证集路径不一致,模型即使跑完也学不到你想检测的东西。下面用 Ultralytics YOLO 的检测训练流程,先做数据核对,再运行一次小规模训练并查看验证结果。
把图片和框标注组织成数据集
假设要检测“瓶子”和“杯子”,为训练和验证分别准备不同的图片。每张有目标的图片对应同名 .txt 标签;每行是 class x_center y_center width height,后四项按图宽高归一化。例如 0 0.5 0.5 0.2 0.4 是格式演示,并非真实框。类别 0 对应哪个物体以 data.yaml 的 names 顺序为准。Ultralytics 检测数据集文档说明目录及标签约定;导入前抽查至少几张图,把框画回原图。

dataset/
images/train/ images/val/
labels/train/ labels/val/
# data.yaml
path: ./dataset
train: images/train
val: images/val
names:
0: bottle
1: cup
真正创建 YAML 文件时只保存 path 以下内容;上面的目录行用于解释文件布局,不应复制进 YAML。确认验证图片与训练图片不同,避免把见过的图算成泛化能力。若从 CVAT 导出,请先辨别导出格式与训练库所需结构,类别 ID 也要核对。
运行训练并找到验证结果
按 Ultralytics 官方训练文档安装适合本机的 PyTorch 与 ultralytics,再在包含 data.yaml 的目录运行:
python -m pip install -U ultralytics
yolo detect train model=yolo26n.pt data=data.yaml epochs=10 imgsz=640
文档在核验时以 yolo26n.pt 为示例权重;下载和硬件需求依实际版本、环境而定。训练结束后查看运行日志中的验证指标、混淆情况及模型权重路径,再用未参与训练和验证的图片做一次预测,目视核对漏检与误检。epochs=10 只用于入门流程检查,不保证有可上线的精度。
结果异常时先回到数据
标签文件找不到,先检查图片与标签的相对目录及文件名;类别全错,检查 names 顺序与标注 ID;验证结果异常漂亮,检查是否有重复图片跨训练与验证集。样本少、场景单一或类别不平衡时,不要只调 epoch 数,要补充符合实际使用场景的标注数据。本文未在用户数据上训练,也不报告虚构的 mAP。
本题是自有检测数据集的训练;之前的 CVAT 导出教程只解决标注文件如何交付,不能替代训练与验证。官方资料核对于 2026 年 10 月 1 日。
Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/31575.html