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,可弥补这一不足,让你能够使用我们强大的导出和部署工具。
性能平衡与基准测试#
部署视觉模型时,速度与精度之间的取舍是最关键的因素。以下是模型尺寸、延迟和在标准 COCO 数据集上评估的平均精度均值的详细对比。
| 模型 | 尺寸 (像素) | 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 的参数与精度比表现出色。YOLOv9c 模型仅使用 25.5M 个参数,便达到了令人瞩目的 53.0% mAP。不过,在内存需求和加速硬件上的推理速度方面,YOLOv8 仍有明显优势,尤其是 YOLOv8n 在 NVIDIA TensorRT环境下的运行速度仅为 1.47ms。
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%,可带来显著优势。
- 小目标检测:适用于无人机航拍影像等具有挑战性的场景,或 IoT 传感器分析等需要 ProgLoss 和 STAL 大幅提升微小目标准确率的场景。
展望未来:YOLO26 登场#
YOLOv8 和 YOLOv9 都非常强大,但计算机视觉领域发展迅速。对于现代部署,我们强烈建议使用于 2026 年 1 月发布的Ultralytics YOLO26。
YOLO26 代表了目标检测器在生产环境中运行方式的一次范式转变。它采用原生的端到端无 NMS 设计(可通过 nms=False 启用),消除了后处理带来的延迟和非确定性行为。为更好地支持边缘设备和低功耗硬件,YOLO26 完全移除了 DFL(分布焦点损失),大幅简化了移动端导出。
此外,YOLO26 采用了突破性的MuSGD 优化器,它结合 SGD 和 Muon,将 LLM 级别的训练稳定性引入视觉任务,从而显著加快收敛速度。凭借最高提升 43% 的 CPU 推理速度以及可显著改善小目标识别的 ProgLoss + STAL,YOLO26 无疑是全新企业项目的首选。
根据你的硬件限制,你可能还想将这些模型与适用于均衡通用任务的 Ultralytics YOLO11进行比较,或探索 RT-DETR等基于 Transformer 的模型,以用于对保真度要求较高的专业研究。
实际应用与使用场景#
YOLOv8 和 YOLOv9 之间的选择,很大程度上取决于你的项目限制和目标硬件。
- 医疗保健与医学成像:在肿瘤检测系统等对每个像素都要求精准的场景中,YOLOv9 的 GELAN 架构能出色地保留细粒度信息,从而减少关键诊断中的漏检。
- 零售与库存分析:对于追踪商品密集货架的智能超市系统,YOLOv9 能提供所需的 mAP,从而可靠地区分相互重叠的商品。
- 智慧城市与交通监控:在节奏紧凑的物流与交通管理场景中,YOLOv8 的超低延迟和经过验证的稳健性,使其非常适合同时追踪多个摄像头视频流中的车辆。
- 边缘部署:如果你要部署到 Raspberry Pi 等受限设备或移动硬件上,YOLOv8 高度优化的 C2f 模块(以及 YOLO26 的 CPU 优化)能够提供更流畅、更省电的推理流程。