📺 B站视频讲解(Bilibili):https://www.bilibili.com/video/BV1k1C9BYEAB/
📘 《Yocto项目实战教程》京东购买链接:Yocto项目实战教程
Ultralytics YOLO:模型类别、训练方式与使用全解析
Ultralytics YOLO(以下简称 YOLO)已成为目标检测领域最主流的开源框架之一。它不仅延续了 YOLO 系列“一次前向推理即可得到所有预测”的高效理念,更通过 Ultralytics 官方库将检测(Detection)、分割(Segmentation)、分类(Classification)、姿态估计(Pose)、旋转框检测(OBB)整合成统一的任务体系,使其成为当前最易上手、最完善的 YOLO 工具链。本篇博文旨在系统、客观、完整地解析 YOLO 的模型类别、任务分类体系、训练方式及使用目标,帮助你在工程中高效选择模型、构建训练流程,并理解不同模型在实际应用中的适用逻辑。

1. YOLO 模型体系全景图:Ultralytics 的任务分类
在 Ultralytics YOLO 中,所有模型都按“任务(Task)”划分,而任务类型决定模型的结构、Head 的输出、标签格式与训练方式。整体可归纳为以下五类:
| 任务类型 | 模型后缀 | 输出内容 | 数据集来源 | 典型场景 |
|---|---|---|---|---|
| 目标检测 Detection | 无 | bbox + class + confidence | COCO | 工业检测、行人检测、机器人视觉 |
| 实例分割 Segmentation | -seg | bbox + mask | COCO-Seg | 医疗、分割计数、自动标注 |
| 分类 Classification | -cls | class | ImageNet | 图像质量检测、产品分选 |
| 姿态估计 Pose | -pose | 人体关键点 | COCO-Pose | 健身动作识别、安防、人机交互 |
| 旋转框检测 OBB | -obb | angle + bbox | DOTAv1 | 航拍、遥感、目标倾斜检测 |
从工程角度理解:Ultralytics YOLO 是一个多任务统一框架,每种任务对应一类模型,选择任务类型通常比选择模型大小更重要,因为这决定数据格式与输出结构。
2. YOLO 模型命名规则:模型规模与任务类别如何对应?
Ultralytics 的 YOLO 模型名称由两部分组成:
[模型家族][模型规模][-任务类型]
具体解释如下:
2.1 模型家族:YOLO11 是当前最新官方系列
如:YOLO11n、YOLO11s、YOLO11m。
2.2 模型规模(从轻到重)
| 后缀 | 含义 | 参数量特点 |
|---|---|---|
| n | nano | 最轻、最快 |
| s | small | 较小、速度快 |
| m | medium | 平衡型 |
| l | large | 精度高 |
| x | extra large | 精度最高、计算量最大 |
规律:越大的模型精度越高,但速度越慢。
2.3 任务类型后缀
| 任务 | 后缀 | 示例 |
|---|---|---|
| 检测 | 无 | YOLO11s |
| 分割 | -seg | YOLO11s-seg |
| 姿态 | -pose | YOLO11s-pose |
| 分类 | -cls | YOLO11s-cls |
| 旋转框 | -obb | YOLO11s-obb |
例如:
- YOLO11n:轻量检测模型
- YOLO11s-seg:小型实例分割模型
- YOLO11m-pose:中型人体姿态模型
- YOLO11x-obb:最大规模的旋转框检测模型
3. 不同任务类型的结构差异与适用领域
不同任务选择不同模型 Head,因此训练方式、标签格式与推理结果都不同。
3.1 检测(Detection)
- 输出: bbox(x,y,w,h)+ class + confidence
- 标签格式:
class x_center y_center width height - 代表模型: YOLO11n / s / m / l / x
- 适合: 所有通用视觉任务
这是 YOLO 的主战场,也是 Jetson 最常部署的模型类型。
3.2 实例分割(Segmentation)
- 输出: bbox + instance mask
- 标签格式: bbox + 多边形 mask
- 适合: 医疗、计数、自动标注、精准分割场景
3.3 姿态估计(Pose)
- 输出: 人体关键点(如 17 点)
- 标签格式: keypoints
- 适合: 健身动作、安防行为检测、人机交互
3.4 分类(Classification)
- 输出: class
- 标签格式: ImageNet 风格分类标签
- 使用场景: 产品质量检测、外观筛选、预分类
3.5 旋转框检测(OBB)
- 输出: 旋转矩形(5D:x,y,w,h,angle)
- 适合: 航拍遥感、倾斜检测、OCR
4. 如何选择适合的 YOLO 模型?(实战指南)
选择模型时你需要问三个问题:
4.1 你的任务是什么?(Detection / Segmentation / Classification…)
例如:
- 跟踪物体 → detection
- 分割缺陷 → segmentation
- 检测人体姿态 → pose
- 分类产品类型 → classification
- 无人机航拍 → obb
4.2 你的设备算力多强?
| 设备 | 推荐模型 |
|---|---|
| Jetson Nano | YOLO11n / YOLO11s |
| Jetson Orin Nano | YOLO11n/s/m |
| Jetson Orin NX | YOLO11m/l |
| AGX Orin | 任意模型(含 YOLO11x) |
| 服务器 T4/V100/A100 | 可用 YOLO11x |
4.3 你的实时要求是多少 FPS?
- ≥ 60 FPS:YOLO11n/s
- ≥ 30 FPS:YOLO11m
- 高精度优先:YOLO11l/x
5. YOLO 的训练方式:从零开始构建训练管线
Ultralytics 提供了极其简单的训练接口。
5.1 训练检测模型
yolo train model=yolo11s.pt data=coco128.yaml epochs=100 imgsz=640
参数说明:
| 参数 | 含义 |
|---|---|
| model | 使用的预训练模型 |
| data | 数据集配置文件 |
| epochs | 训练轮数 |
| imgsz | 输入图像尺寸 |
5.2 训练自定义数据集
数据集格式示例:
train/images
train/labels
val/images
val/labels
标签格式(YOLO txt):
class x_center y_center width height
训练命令:
yolo train model=yolo11s.pt data=mydataset.yaml epochs=100 imgsz=640
6. YOLO 的推理与验证
6.1 命令行推理:
yolo predict model=yolo11s.pt source="image.jpg"
6.2 推理视频:
yolo predict model=yolo11s.pt source="0"
6.3 Python 推理
from ultralytics import YOLO
model = YOLO("yolo11s.pt")
results = model("image.jpg")
results.show()
7. Ultralytics YOLO 模型性能对比表(Detection)
下面以 YOLO11 检测模型为例:
| 模型 | mAP50-95 | CPU速度(ms) | TensorRT速度(ms) | 参数量(M) | FLOPs(B) |
|---|---|---|---|---|---|
| YOLO11n | 39.5 | 56.1 | 1.5 | 2.6 | 6.5 |
| YOLO11s | 47.0 | 90.0 | 2.5 | 9.4 | 21.5 |
| YOLO11m | 51.5 | 183.2 | |||
| 6.2.0 | 20.1 | 68.0 | |||
| YOLO11l | 53.4 | 238.6 | 6.2 | 25.3 | 86.9 |
| YOLO11x | 54.7 | 462.8 | 11.3 | 56.9 | 194.9 |
从表格可见:模型规模越大,精度越高,但速度越慢,这与一般深度学习模型的复杂度规律高度一致。
8. YOLO 标签格式与任务差异(一目了然)
为了训练不同任务,YOLO 的标签格式也不同,建议使用以下表格掌握:
| 任务类型 | 标签格式 | 示例 |
|---|---|---|
| 检测 Detection | class x_center y_center width height | 0 0.5 0.5 0.3 0.4 |
| 分割 Segmentation | masks + bbox | 0 polygon_points... |
| 姿态 Pose | keypoints + bbox | 0 x1 y1 v1 ... |
| 分类 Classification | 单标签 txt 或分类目录结构 | cat, dog |
| OBB | class x y w h angle | 0 120 233 50 20 45 |
掌握标签格式是训练模型前最关键的一步。
9. YOLO 训练常见问题(FAQ)
❓ 9.1 为什么我的模型训练不收敛?
常见原因:
- 数据集标签错误
- 类别数不匹配
- 学习率过高
- imgsz 太小
❓ 9.2 如何为 Jetson 加速推理?
建议使用:
- TensorRT 导出:
yolo export format=engine - FP16 精度
- imgsz=640 或 512
❓ 9.3 如何选择 Batch Size?
- 显存足够 → 越大越好
- Jetson → 建议 8 或 16
10. 总结:Ultralytics YOLO 的学习路径
- 理解任务类型(detect / seg / cls / pose / obb)
- 根据场景选择模型规模(n/s/m/l/x)
- 准备符合 YOLO 标签格式的数据集
- 使用简单命令进行训练
- 使用 predict 或 Python API 推理
- 优化部署(TensorRT、量化、剪枝)
YOLO 的优势在于:结构统一、接口统一、训练简单、部署方便、多任务兼容性强,非常适合 Jetson 等边缘 AI 项目。
📺 B站视频讲解(Bilibili):https://www.bilibili.com/video/BV1k1C9BYEAB/
📘 《Yocto项目实战教程》京东购买链接:Yocto项目实战教程
1738

被折叠的 条评论
为什么被折叠?



