模型对比:YOLOv9 vs. YOLOv8 用于目标检测
选择合适的物体检测模型是一个至关重要的决定,它需要在准确性、速度和计算资源之间取得平衡。本页面提供了 Ultralytics YOLOv8(一种多功能且用户友好的模型)和 YOLOv9(一种以其新颖的架构进步而闻名的模型)之间的详细技术比较。我们将分析它们的架构、性能指标和理想用例,以帮助您确定最适合您的计算机视觉项目的模型。
YOLOv9:通过新颖架构提高准确性
YOLOv9 的推出是目标检测领域的一大进步,主要致力于克服深度神经网络中的信息损失,从而提高准确率。
- 作者: Chien-Yao Wang, Hong-Yuan Mark Liao
- 组织: 台湾中研院资讯所
- 日期: 2024-02-21
- Arxiv: https://arxiv.org/abs/2402.13616
- GitHub: https://github.com/WongKinYiu/yolov9
- 文档: https://docs.ultralytics.com/models/yolov9/
架构与关键创新
YOLOv9 引入了两项重大创新:可编程梯度信息 (PGI) 和广义高效层聚合网络 (GELAN)。PGI 旨在为损失函数计算提供完整的输入信息,这有助于缓解信息瓶颈问题,并确保为网络更新生成更可靠的梯度。GELAN 是一种新颖、高效的网络架构,可优化参数利用率和计算效率。这些特性共同使 YOLOv9 能够实现高精度,通常在 COCO 等数据集上设置新的最先进的基准。
优势
- 顶尖精度: YOLOv9 模型,特别是较大的变体,实现了顶级的 mAP 分数,突破了实时目标检测精度的界限。
- 高效性: 与其他一些具有类似准确率的模型相比,GELAN 架构使 YOLOv9 能够以更少的参数和计算要求 (FLOPs) 提供高性能。
- 信息保留: PGI 有效地解决了深度网络中的信息丢失问题,这对于训练非常深度和准确的模型至关重要。
弱点
- 生态系统与可用性: 作为来自研究仓库的模型,YOLOv9缺乏Ultralytics提供的完善的、可用于生产的生态系统。训练过程可能更复杂,社区支持和第三方集成也不够成熟。
- 任务通用性: 原始YOLOv9的实现主要集中在目标检测上。它不提供像Ultralytics模型中标准的对分割、姿势估计或分类等其他视觉任务的内置统一支持。
- 训练资源: 与 Ultralytics YOLOv8 提供的简化流程相比,训练 YOLOv9 可能需要更多的资源和时间。
Ultralytics YOLOv8:通用性和易用性
Ultralytics YOLOv8是由Ultralytics开发的先进模型,以其在速度、准确性以及最重要的易用性和多功能性方面的卓越平衡而闻名。它被设计为一个完整的框架,用于训练、验证和部署模型,以执行各种视觉AI任务。
- 作者: Glenn Jocher, Ayush Chaurasia, Jing Qiu
- 组织: Ultralytics
- 日期: 2023-01-10
- GitHub: https://github.com/ultralytics/ultralytics
- 文档: https://docs.ultralytics.com/models/yolov8/
架构和主要特性
YOLOv8在前代YOLO版本成功的基础上,进行了重大的架构改进,包括一个新的无anchor检测头和一个改进的C2f(带有2个卷积的CSP)骨干网络。这种设计不仅提高了性能,还简化了模型及其后处理步骤。然而,YOLOv8真正的优势在于其整体生态系统。
优势
- 卓越的性能平衡: YOLOv8 在速度和准确性之间提供了出色的权衡,使其非常适合从资源受限的 边缘设备 到高性能云服务器的各种实际应用。
- 无与伦比的通用性: YOLOv8是一个真正的多任务框架。它在单个统一框架内支持目标检测、实例分割、图像分类、姿势估计和旋转边界框 (OBB)。与YOLOv9等更专业的模型相比,这种通用性是一个主要优势。
- 易用性: Ultralytics 优先考虑简化的用户体验。借助简单的 Python API 和 CLI、广泛的文档以及大量的教程,开发人员可以在几分钟内入门。
- 完善的生态系统: YOLOv8 拥有 Ultralytics 的积极开发、强大的开源社区、频繁的更新以及与 Ultralytics HUB 的无缝集成,从而实现无代码训练和 MLOps 工作流程。
- 训练效率: 训练过程非常高效,与许多其他架构(尤其是基于Transformer的模型)相比,具有现成的预训练权重和更低的内存要求。
- 部署准备就绪: YOLOv8 专为轻松部署而设计,内置对各种格式(如 ONNX、TensorRT 和 OpenVINO)的导出支持,从而简化了生产路径。
弱点
- 峰值精度: 虽然非常准确,但最大的YOLOv9模型在纯目标检测任务中,在COCO基准测试中可能会获得稍高的mAP。然而,这通常以牺牲通用性和易用性为代价。
性能正面交锋:精度与速度
在性能对比时,务必全面考虑,包括精度 (mAP)、推理速度、模型大小(参数)和计算成本 (FLOPs)。
模型 | 尺寸 (像素) |
mAPval 50-95 |
速度 CPU ONNX (毫秒) |
速度 T4 TensorRT10 (毫秒) |
参数 (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
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.2 |
YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
从表中可以看出,YOLOv9-E 实现了最高的 mAP。 然而,YOLOv8 模型表现出卓越的推理速度,尤其是像 YOLOv8n 这样的小型变体,这对于实时应用至关重要。 YOLOv8 在不同的硬件上提供了更完整和实用的性能概况,并具有完善的速度基准,这对于生产计划至关重要。
结论:您应该选择哪种模型?
YOLOv9 和 YOLOv8 之间的选择很大程度上取决于您项目的优先级。
如果符合以下条件,请选择 YOLOv9:
- 您的主要和唯一目标是在 COCO 等基准测试中实现绝对最高的对象检测精度。
- 您正在研究环境中工作,探索像 PGI 和 GELAN 这样的新颖架构是主要目标。
- 您拥有大量的计算资源和专业知识来管理更复杂的训练和部署工作流程。
如果符合以下条件,请选择 Ultralytics YOLOv8:
- 您需要一个强大、可靠且易于使用的模型,适用于各种应用。
- 您的项目需要的不仅仅是目标检测,例如实例分割、姿势估计或分类。YOLOv8的通用性可以节省大量的开发时间。
- 您优先考虑从训练到部署的快速高效的工作流程。Ultralytics生态系统的设计旨在让您更快地投入生产。
- 您需要一个在速度和准确性之间提供出色平衡的模型,适用于边缘和云部署。
- 您重视强大的社区支持、持续的更新和全面的文档。
对于绝大多数开发人员、研究人员和企业来说,Ultralytics YOLOv8 是推荐的选择。它结合了强大的性能、令人难以置信的多功能性以及用户友好、良好支持的生态系统,使其成为构建现实世界 计算机视觉 解决方案的更实用和强大的工具。
如果您正在探索其他模型,您可能还会对Ultralytics YOLOv5(以其稳定性和广泛应用而闻名)或RT-DETR(一种基于Transformer的替代架构)感兴趣。您可以在我们的模型比较页面上找到更多比较。