Ultralytics YOLO:模型类别、训练方式与使用全解析

【投稿赢 iPhone 17】「我的第一个开源项目」故事征集:用代码换C位出道! 10w+人浏览 1.7k人参与


📺 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 的输出、标签格式与训练方式。整体可归纳为以下五类:

任务类型模型后缀输出内容数据集来源典型场景
目标检测 Detectionbbox + class + confidenceCOCO工业检测、行人检测、机器人视觉
实例分割 Segmentation-segbbox + maskCOCO-Seg医疗、分割计数、自动标注
分类 Classification-clsclassImageNet图像质量检测、产品分选
姿态估计 Pose-pose人体关键点COCO-Pose健身动作识别、安防、人机交互
旋转框检测 OBB-obbangle + bboxDOTAv1航拍、遥感、目标倾斜检测

从工程角度理解:Ultralytics YOLO 是一个多任务统一框架,每种任务对应一类模型,选择任务类型通常比选择模型大小更重要,因为这决定数据格式与输出结构。


2. YOLO 模型命名规则:模型规模与任务类别如何对应?

Ultralytics 的 YOLO 模型名称由两部分组成:

[模型家族][模型规模][-任务类型]

具体解释如下:

2.1 模型家族:YOLO11 是当前最新官方系列

如:YOLO11n、YOLO11s、YOLO11m。

2.2 模型规模(从轻到重)

后缀含义参数量特点
nnano最轻、最快
ssmall较小、速度快
mmedium平衡型
llarge精度高
xextra large精度最高、计算量最大

规律:越大的模型精度越高,但速度越慢

2.3 任务类型后缀

任务后缀示例
检测YOLO11s
分割-segYOLO11s-seg
姿态-poseYOLO11s-pose
分类-clsYOLO11s-cls
旋转框-obbYOLO11s-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 NanoYOLO11n / YOLO11s
Jetson Orin NanoYOLO11n/s/m
Jetson Orin NXYOLO11m/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-95CPU速度(ms)TensorRT速度(ms)参数量(M)FLOPs(B)
YOLO11n39.556.11.52.66.5
YOLO11s47.090.02.59.421.5
YOLO11m51.5183.2
6.2.020.168.0
YOLO11l53.4238.66.225.386.9
YOLO11x54.7462.811.356.9194.9

从表格可见:模型规模越大,精度越高,但速度越慢,这与一般深度学习模型的复杂度规律高度一致。


8. YOLO 标签格式与任务差异(一目了然)

为了训练不同任务,YOLO 的标签格式也不同,建议使用以下表格掌握:

任务类型标签格式示例
检测 Detectionclass x_center y_center width height0 0.5 0.5 0.3 0.4
分割 Segmentationmasks + bbox0 polygon_points...
姿态 Posekeypoints + bbox0 x1 y1 v1 ...
分类 Classification单标签 txt 或分类目录结构cat, dog
OBBclass x y w h angle0 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 的学习路径

  1. 理解任务类型(detect / seg / cls / pose / obb)
  2. 根据场景选择模型规模(n/s/m/l/x)
  3. 准备符合 YOLO 标签格式的数据集
  4. 使用简单命令进行训练
  5. 使用 predict 或 Python API 推理
  6. 优化部署(TensorRT、量化、剪枝)

YOLO 的优势在于:结构统一、接口统一、训练简单、部署方便、多任务兼容性强,非常适合 Jetson 等边缘 AI 项目。



📺 B站视频讲解(Bilibili)https://www.bilibili.com/video/BV1k1C9BYEAB/

📘 《Yocto项目实战教程》京东购买链接Yocto项目实战教程


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值