YOLOv8 与 YOLOv9#
实时目标检测的发展始终围绕着提升准确率、降低延迟和提高硬件利用率展开。在这一发展历程中,Ultralytics YOLOv8 和 YOLOv9 是两个重要的里程碑。尽管这两种模型都代表了计算机视觉领域的先进水平,但它们面向不同的部署需求,采用不同的架构理念,并依托不同的开发者生态系统。
本指南将梳理技术差异、架构创新和实际部署注意事项,帮助你为下一个人工智能项目选择合适的模型。
模型发展脉络与核心理念#
在查看指标之前,先了解每个模型的起源和主要设计目标会很有帮助。
Ultralytics YOLOv8:多功能生态系统标准#
由 Ultralytics 团队发布的 YOLOv8 并非只作为独立的目标检测器设计,而是一个统一的多任务框架。它优先考虑流畅的开发者体验、较低的内存需求和广泛的硬件兼容性。
- 作者: Glenn Jocher、Ayush Chaurasia 和 Jing Qiu
- 组织: Ultralytics
- 日期: 2023-01-10
- GitHub: ultralytics/ultralytics
- 文档:YOLOv8 文档
YOLOv9:可编程梯度信息#
YOLOv9 由中央研究院的研究人员独立开发,重点关注架构理论,尤其是深度神经网络中的信息瓶颈现象。
- 作者:Chien-Yao Wang 和 Hong-Yuan Mark Liao
- 机构:台湾中央研究院信息科学研究所
- 日期:2024-02-21
- arXiv:2402.13616
- GitHub: WongKinYiu/yolov9
如果你计划进行大规模商业部署,可以考虑使用 Ultralytics Platform,简化云端训练、数据集管理和专用 API 端点的使用。
深入剖析架构#
深度学习中的架构选择决定了模型的学习效率,以及模型在 NVIDIA Jetson 或 Intel CPU 等目标硬件上的运行速度。
YOLOv8 架构:C2f 与解耦头#
YOLOv8 引入了 C2f 模块(带两个卷积的跨阶段局部瓶颈模块),取代了较早的 C3 模块。这一变化改善了梯度流,使网络能够学习更丰富的特征表示,同时不会过度占用 GPU 内存。
YOLOv8 还采用了无锚框设计和解耦检测头。通过不同路径分别处理分类和回归,模型在训练期间收敛更快,并能更好地泛化到不同的自定义数据集。
YOLOv9 架构:PGI 与 GELAN#
YOLOv9 引入了可编程梯度信息 (PGI) 和广义高效层聚合网络 (GELAN)。PGI 可确保关键数据在通过网络各层时不会丢失,为权重更新提供可靠的梯度。GELAN 能最大限度提高参数效率,让模型在控制 FLOPs 的同时达到较高准确率。
不过,YOLOv9 的辅助可逆分支仅在训练期间使用,这可能使训练代码比标准流水线更难自定义。
性能指标与基准测试#
下表直接比较了不同尺寸的模型。性能指标在MS COCO 数据集上测得,该数据集是目标检测的标准基准。
| 模型 | 尺寸 (像素) | mAPval50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (ms) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.1 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.2 | 26.7 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.1 | 76.8 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.5 | 102.8 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 58.1 | 192.5 |
注意:每列中的最佳值以 粗体 标出。
权衡分析#
YOLOv9 在各个相当尺寸下都能取得更高准确率(mAP),并且各尺寸的参数都更少。不过,在 GPU 上,Ultralytics YOLOv8 的推理速度更快;例如,使用 TensorRT 编译时,YOLOv8n 耗时 1.47 毫秒,而 YOLOv9t 耗时 2.3 毫秒,而且它可以轻松导出为 ONNX 等格式。对于需要在资源受限的边缘硬件(如 Raspberry Pi 或较旧的移动芯片)上实现高帧率 (FPS) 的应用,YOLOv8 的 n 和 s 变体提供了实用的性能平衡。
训练效率与生态系统集成#
选择模型不能只看准确率表,开发者体验同样重要。
Ultralytics 的优势:易于使用#
训练 YOLOv9 通常需要克隆复杂的 GitHub 仓库、仔细管理 PyTorch 环境,并手动配置辅助损失权重。
相比之下,Ultralytics YOLOv8 配备了精简的 Python API。该 API 易于使用,原生支持数据增强、日志记录(可接入 Weights & Biases 和 Comet ML 等工具)以及多 GPU 训练。
from ultralytics import YOLO
# 加载一个预训练的 YOLOv8 small 模型
model = YOLO("yolov8s.pt")
# 使用自定义数据高效地训练模型
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# 导出以部署到边缘设备
model.export(format="engine", quantize=16) # TensorRT 导出这个统一 API 缩短了从原型到生产的周期。此外,YOLOv8 在训练期间通常需要更少的 CUDA 内存,让开发者可以在消费级硬件上使用更大的批次大小。
任务通用性#
YOLOv9 虽然是优秀的边界框检测器,但实际的视觉 AI 往往不止于此。YOLOv8 原生支持实例分割、图像分类、姿态估计和有向边界框 (OBB)。使用一个框架处理多种任务,可降低软件复杂度和维护开销。
如果你正在启动新项目,也可以评估 Ultralytics YOLO11 或 YOLO26。YOLO26 是当前推荐模型,支持可选的端到端无 NMS 推理。
实际应用场景#
这些模型在生产环境中的表现如何?
自主无人机与机器人#
对于需要快速避障的机器人应用,YOLOv8 是首选。YOLOv8n 的低延迟有助于自主系统实时响应周围环境并避免碰撞。原生支持导出到 OpenVINO 和 CoreML,因此可以轻松部署到商用无人机常用的低功耗芯片上。
高分辨率缺陷检测#
在需要检测微小异常且可接受离线处理的专业制造场景中,YOLOv9 效果出色。PGI 架构有助于网络保留精细的视觉细节,从而识别细微裂纹或 PCB 焊接错误。
智能零售与安防分析#
对于在商店过道跟踪顾客或管理自动结账系统,YOLOv8 能提供最佳平衡。它能够使用 BoT-SORT 等标准算法同时运行检测和多目标跟踪,是多摄像头零售部署的可靠解决方案。
用例与建议#
选择 YOLOv8 还是 YOLOv9,取决于你的具体项目需求、部署限制和生态系统偏好。
何时选择 YOLOv8#
YOLOv8 适用于:
- 多任务灵活部署:项目需要在 Ultralytics 生态系统中使用经过验证的模型来完成检测、分割、分类和姿态估计。
- 成熟的生产系统: 已经基于 YOLOv8 架构构建、并拥有稳定且经过充分测试的部署流水线的现有生产环境。
- 广泛的社区与生态系统支持: 能够受益于 YOLOv8 丰富教程、第三方集成和活跃社区资源的应用。
何时选择 YOLOv9#
以下场景推荐使用 YOLOv9:
- 信息瓶颈研究:研究可编程梯度信息 (PGI) 和广义高效层聚合网络 (GELAN) 架构的学术项目。
- 梯度流优化研究:重点研究如何理解并缓解训练期间深层网络层中的信息损失。
- 高准确率检测基准测试:需要将 YOLOv9 在 COCO 基准测试中的出色表现作为架构对比参照的场景。
何时选择 Ultralytics (YOLO26)#
对于大多数新项目,Ultralytics YOLO26 能提供性能与开发者体验的最佳组合:
- 无 NMS 边缘部署:需要稳定、低延迟推理,同时不想处理非极大值抑制(NMS)后处理复杂性的应用。
- 仅使用 CPU 的环境: 没有专用 GPU 加速的设备中,YOLO26n 的 CPU 推理速度最高比 YOLO11n 快 43%,优势显著。
- 小目标检测:具有挑战性的场景,例如无人机航拍图像或 IoT 传感器分析。在这些场景中,ProgLoss 和 STAL 可以提升微小目标的检测精度。
新一代进化:YOLO26#
YOLOv8 和 YOLOv9 都是功能强大的模型,但 AI 领域发展迅速。对于新项目,YOLO26 于 2026 年 1 月发布,在前几代模型优势的基础上进一步改进。
YOLO26 引入了可选的端到端无 NMS 设计 (nms=False),该设计免去 NMS 后处理,让部署更简单、延迟更可预测。借助MuSGD 优化器、ProgLoss + STAL(渐进式损失和小目标感知标签分配)以及移除 DFL(移除分布焦点损失,以简化导出并提升对边缘/低功耗设备的兼容性),YOLO26n 的 CPU 推理速度比 YOLO11n 最高快 43%,同时小目标检测能力也有所提升。对于边缘计算项目,YOLO26 是推荐的起点。
总而言之,YOLOv9 在架构研究方面颇具价值,峰值准确率也很出色;但对于大多数希望快速交付可靠软件的计算机视觉工程师来说,Ultralytics YOLOv8 仍是实用、支持完善且用途广泛的选择。