YOLOv8 与YOLOv9:物体检测技术比较
选择最佳计算机视觉模型是影响人工智能项目成败的关键决策,它需要在准确性、推理速度和计算效率之间取得平衡。本综合指南比较了 Ultralytics YOLOv8和 YOLOv9进行了比较。我们分析了它们的架构区别、性能指标和理想部署方案,以帮助您做出明智的选择。
Ultralytics YOLOv8:多功能和易用性的标准
由Ultralytics 推出、 YOLOv8代表了YOLO 系列的重大发展,它不仅是一个模型,还是一个实用人工智能的完整框架。它优先考虑无缝的用户体验、跨硬件的强大性能,以及对简单检测之外的各种视觉任务的支持。
- 作者: Glenn Jocher, Ayush Chaurasia, Jing Qiu
- 组织机构Ultralytics
- 日期: 2023-01-10
- GitHub:https://github.com/ultralytics/ultralytics
- 文件:https://docs.ultralytics.com/models/yolov8/
建筑与生态系统
YOLOv8 引入了无锚检测头和 C2f(带 2 个卷积的跨阶段部分)模块,在保持轻量级执行的同时提高了功能集成度。与以研究为中心的模型不同,YOLOv8 在构建时就考虑到了部署问题。它原生支持图像分类、实例分割、姿势估计 和定向边界框(旋转框检测)检测。
YOLOv8 的真正优势在于Ultralytics 生态系统。开发人员可以从统一的Python API和 CLI实现了训练、验证和部署的标准化。这种 "包含电池 "的方法大大缩短了计算机视觉应用的上市时间。
优势
- 无与伦比的多功能性:在一个库中处理检测、分割、分类和姿势估计 。
- 部署就绪:本机导出支持 ONNX, OpenVINO, TensorRT和CoreML 简化了与边缘设备和云服务器的集成。
- 内存效率:经过优化,与transformer架构相比,训练期间的CUDA 内存使用量更低,因此可在标准消费级 GPU 上使用。
- 速度与精度的平衡:提供卓越的实时推理速度,在CPU 和边缘硬件上往往优于竞争对手。
- 积极支持:以庞大的开源社区为后盾,Ultralytics 频繁更新,确保与最新的库和硬件兼容。
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 数据集上的mAP 设定了令人印象深刻的基准,在精度要求极高的场景中表现出色。
- 参数效率:得益于 GELAN,中型YOLOv9 模型只需比一些旧架构更少的参数,就能达到具有竞争力的精度。
- 理论进展:解决深度网络训练中有关信息保存的基本问题。
弱点
- 通用性有限:主要侧重于物体检测。虽然功能强大,但它缺乏Ultralytics 核心产品对分割、姿势估计和分类的原生精简支持。
- 复杂的培训:与精简的YOLOv8 管道相比,为 PGI 引入辅助分支会使训练过程变得更加资源密集,调整起来也更加复杂。
- 推理速度:虽然高效,但与YOLOv8 中使用的高度优化块相比,架构的复杂性可能导致某些硬件的推理时间较慢。
性能正面交锋
在比较YOLOv8 和YOLOv9 时,选择往往取决于部署环境的具体限制。YOLOv8 在推理速度和部署灵活性方面占优势,而YOLOv9 则将检测指标的上限推高。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (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.2 |
| 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.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 |
这些数据凸显了一个明显的区别:YOLOv8 的速度更快,尤其是在GPU TensorRT)和CPU ONNX)上,这对边缘人工智能应用至关重要。例如,在 T4 GPU 上,YOLOv8n 的速度明显快于 YOLOv9t(1.47ms 对 2.3ms)。相反,YOLOv9e 实现了最高的mAP(55.6%),使其适用于服务器端处理,在这种情况下,延迟比检测微小细节更不重要。
你知道吗?
Ultralytics YOLOv8 在设计上原生支持以下功能 一应俱全 主要的计算机视觉任务。您可以从物体检测切换到 实例分割 只需更改模型权重文件(如 yolov8n.pt 到 yolov8n-seg.pt),这是标准YOLOv9 资源库所不具备的灵活性。
理想用例
在以下情况下选择Ultralytics YOLOv8 :
- 您需要一个生产就绪的解决方案:丰富的文档、社区支持和预建集成(如MLFlow和TensorBoard)简化了从原型到产品的过程。
- 速度至关重要:对于实时视频分析、自主导航或移动应用程序而言,YOLOv8 经过优化的推理速度具有明显优势。
- 您需要完成多项视觉任务: YOLOv8 的统一框架可为涉及姿势估计 估计或分割检测的项目提供最佳服务。
- 存在资源限制: YOLOv8 模型针对各种硬件进行了高度优化,可确保在从 Raspberry Pis 到NVIDIA Jetsons 等各种设备上高效运行。
如果选择YOLOv9 ,那么
- 最大精度是唯一的衡量标准:适用于学术研究或专业检测任务,在这些任务中,mAP 的每零点几个百分点都比速度或可用性更重要。
- 您正在研究架构:PGI 和 GELAN 概念对于研究深度网络中梯度流的研究人员非常有价值。
代码执行
Ultralytics 生态系统的主要优势之一是,它使用相同的简单应用程序接口支持这两种模型。这样,您就可以轻松地在自己的自定义数据集上对它们进行基准测试。
以下是如何通过几行代码训练YOLOv8 模型:
from ultralytics import YOLO
# Load a YOLOv8 model
model = YOLO("yolov8n.pt")
# Train the model on your data
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("path/to/image.jpg")
由于Ultralytics 集成了YOLOv9,因此您可以将模型字符串换成 yolov9c.pt 尽管原生YOLOv8 模型经常受益于与部署工具更紧密的集成,但在同一个强大的流水线中试验YOLOv8 也是可行的。
结论
对于绝大多数开发人员和商业应用而言,Ultralytics YOLOv8仍然是值得推荐的选择。YOLOv8 在速度和准确性之间取得了出色的平衡,再加上成熟、维护良好的生态系统,确保了项目面向未来且更易于维护。在单一框架内处理检测、细分和姿势估计 的能力提供了无与伦比的多功能性。
虽然YOLOv9 引入了令人兴奋的架构理论,并实现了较高的峰值精度,但它通常只适用于特定的研究领域或推理延迟不受限制的情况。
如果您正在寻找绝对最新的计算机视觉技术,请务必查看 YOLO11进一步完善了YOLOv8 的效率和性能。此外,对transformer方法感兴趣的研究人员可以探索 RT-DETR进行不同的架构权衡。
在我们的机型对比页面了解更多对比信息。