YOLOv9 与 YOLOv8#
近年来,实时计算机视觉领域发展迅速,每一代新模型都在拓展边缘设备和云服务器所能实现的能力。对比较新的 YOLOv9 架构与广受欢迎的 Ultralytics YOLOv8 框架时,开发者往往需要在新颖的梯度路径研究与经过实战验证、可用于生产的生态系统之间做出选择。
本指南将比较这两种模型,分析它们的架构创新、性能指标和理想部署场景,帮助你为下一个人工智能项目选出合适的模型。
技术规格与作者信息#
了解这些模型的发展脉络,有助于理解各自设计选择的背景。
YOLOv9 YOLOv9 由台湾中央研究院信息科学研究所的 Chien-Yao Wang 和 Hong-Yuan Mark Liao 撰写,于 2024 年 2 月 21 日发布。其核心研究聚焦于解决深度神经网络中的信息瓶颈。你可以在 arXiv 上阅读原始的 YOLOv9 研究论文,也可以在官方 YOLOv9 GitHub 仓库中查看源代码。
Ultralytics YOLOv8 YOLOv8 由 Ultralytics 的 Glenn Jocher、Ayush Chaurasia 和 Jing Qiu 开发,于 2023 年 1 月 10 日发布。它凭借多功能性确立了行业标准地位,为各种视觉任务提供统一 API。源代码由主要的 Ultralytics GitHub 仓库维护,确保持续更新和长期稳定性。
架构创新#
YOLOv9:可编程梯度信息#
YOLOv9 的标志性特点是引入了可编程梯度信息(PGI)和广义高效层聚合网络(GELAN)。随着卷积神经网络不断加深,它们通常会在前馈过程中丢失关键特征信息。PGI 通过保留用于更新权重的准确梯度来解决这一信息瓶颈,从而支持可靠的特征提取。这种架构最大限度地提升了参数效率,使 YOLOv9 能以更少的浮点运算(FLOPs)实现高精度。
YOLOv8:通用型主力模型#
YOLOv8 引入了简化的无锚框检测机制,减少边界框预测数量,并加快后处理阶段的非极大值抑制(NMS)。与较早的模型相比,其 C2f 模块(带两个卷积的跨阶段部分瓶颈)改善了网络中的梯度流。更重要的是,YOLOv8 从设计之初就考虑了多功能性,开箱即支持目标检测、实例分割、图像分类、姿态估计和有向边界框(OBB)提取。
虽然 YOLOv9 的原始检测指标表现出色,但将其原生集成到复杂流水线中可能颇具挑战。通过 Ultralytics 框架使用 YOLOv9 可以弥补这一差距,并使用 Ultralytics 的导出和部署工具。
性能平衡与基准测试#
部署视觉模型时,速度与精度之间的权衡是最关键的因素。下文将详细比较在标准 COCO 数据集上评估的模型大小、延迟和平均精度均值(mAP)。
| 模型 | 尺寸 (像素) | mAP验证集 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (ms) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| 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 |
分析这些指标可以发现,YOLOv9 的参数与精度比表现出色,在每种尺寸下的 mAP 都高于 YOLOv8。YOLOv9c 仅使用 25.5M 个参数,就达到了 53.0% mAP。不过,YOLOv8 在大多数尺寸下的 GPU 速度更快,其中 YOLOv8n 在 NVIDIA TensorRT 环境下的运行时间为 1.47 ms。
Ultralytics 生态系统的优势#
选择架构时,一个重要考量因素是易用性及其周边软件生态系统。管理依赖项、编写自定义数据加载器和处理复杂的导出脚本都可能拖慢开发进度。Ultralytics 集成生态系统能够处理这些复杂工作。
无论你选择 YOLOv8 还是 YOLOv9(两者都由 Ultralytics 库全面支持),都能使用统一 API、自动数据增强技术和简化的 ONNX 格式导出流程。Ultralytics 架构的训练效率也很高,并避免了大型 Transformer 模型常见的高 CUDA 内存占用。
训练代码示例#
使用 Python API 训练任一模型都很简单,只需几行代码。
from ultralytics import YOLO
# 加载首选模型(根据需要将 'yolov9c.pt' 替换为 'yolov8n.pt')
model = YOLO("yolov8n.pt")
# 在你的自定义数据集上训练模型
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# 验证模型的性能指标
metrics = model.val()
# 导出为 ONNX,以便部署到生产环境
model.export(format="onnx")用例与建议#
在 YOLOv9 和 YOLOv8 之间进行选择,取决于你的具体项目需求、部署限制和生态系统偏好。
何时选择 YOLOv9#
YOLOv9 适用于:
- 信息瓶颈研究:研究可编程梯度信息 (PGI) 和广义高效层聚合网络 (GELAN) 架构的学术项目。
- 梯度流优化研究:重点研究如何理解并缓解训练期间深层网络层中的信息损失。
- 高准确率检测基准测试:需要将 YOLOv9 在 COCO 基准测试中的出色表现作为架构对比参照的场景。
何时选择 YOLOv8#
以下情况推荐使用 YOLOv8:
- 多任务通用部署: 项目需要在 Ultralytics 生态系统中使用经过验证的模型,完成检测、分割、分类和姿态估计。
- 成熟的生产系统: 已经基于 YOLOv8 架构构建、并拥有稳定且经过充分测试的部署流水线的现有生产环境。
- 广泛的社区与生态系统支持: 能够受益于 YOLOv8 丰富教程、第三方集成和活跃社区资源的应用。
何时选择 Ultralytics (YOLO26)#
对于大多数新项目,Ultralytics YOLO26在性能与开发体验之间实现了最佳平衡:
- 无 NMS 的边缘部署:适用于要求推理延迟稳定且较低,同时不希望增加非极大值抑制后处理复杂度的应用。
- 仅使用 CPU 的环境: 没有专用 GPU 加速的设备;YOLO26 的 CPU 推理速度最高可提升 43%(YOLO26n 对比 YOLO11n),具有决定性优势。
- 小目标检测:具有挑战性的场景,例如无人机航拍图像或 IoT 传感器分析。在这些场景中,ProgLoss 和 STAL 可以提升微小目标的检测精度。
展望未来:YOLO26 登场#
YOLOv8 和 YOLOv9 都具备出色的能力,但计算机视觉领域发展迅速。对于现代部署,Ultralytics 推荐于 2026 年 1 月发布的 Ultralytics YOLO26。
YOLO26 改变了目标检测器在生产环境中的运行方式。它采用原生的端到端无 NMS 设计(可通过 nms=False 选择启用),消除 NMS 后处理带来的延迟及其波动。为更好地支持边缘和低功耗硬件,YOLO26 还采用移除 DFL(分布焦点损失)的设计,简化移动端导出。
训练时,YOLO26 使用 MuSGD 优化器,这是一种结合 SGD 和 Muon 的混合优化器,将受 LLM 启发的训练稳定性引入视觉任务,并加快收敛。YOLO26n 的 CPU 推理速度最高提升 43%(对比 YOLO11n),而 ProgLoss + STAL(渐进式损失和小目标感知标签分配)可改善小目标检测,因此 YOLO26 是新企业项目的推荐选择。
根据你的硬件限制,你可能还想将这些模型与适用于均衡通用任务的 Ultralytics YOLO11进行比较,或探索 RT-DETR等基于 Transformer 的模型,以用于对保真度要求较高的专业研究。
实际应用与使用场景#
YOLOv8 和 YOLOv9 之间的选择,很大程度上取决于你的项目限制和目标硬件。
- 医疗保健与医学影像:在肿瘤检测系统等像素至关重要的场景中,YOLOv9 的 GELAN 架构有助于保留细粒度细节,从而可能减少关键诊断中的假阴性。
- 零售与库存分析:对于追踪商品密集货架的智能超市系统,YOLOv9 能提供所需的 mAP,从而可靠地区分相互重叠的商品。
- 智慧城市与交通监控:在快速变化的物流与交通管理场景中,YOLOv8 的低延迟和久经验证的鲁棒性使其非常适合同时跟踪多个摄像头画面中的车辆。
- 边缘部署:如果你要将模型部署到 Raspberry Pi 或移动硬件等受限设备上,YOLOv8 高效的 C2f 模块(以及 YOLO26 的 CPU 优化)可带来更加流畅且省电的推理流水线。