跳转至内容

YOLOv8 与YOLOv9:物体检测技术比较

选择最佳计算机视觉模型是影响人工智能项目成败的关键决策,它需要在准确性、推理速度和计算效率之间取得平衡。本综合指南比较了 Ultralytics YOLOv8YOLOv9进行了比较。我们分析了它们的架构区别、性能指标和理想部署方案,以帮助您做出明智的选择。

Ultralytics YOLOv8:多功能和易用性的标准

由Ultralytics 推出、 YOLOv8代表了YOLO 系列的重大发展,它不仅是一个模型,还是一个实用人工智能的完整框架。它优先考虑无缝的用户体验、跨硬件的强大性能,以及对简单检测之外的各种视觉任务的支持。

建筑与生态系统

YOLOv8 引入了无锚检测头和 C2f(带 2 个卷积的跨阶段部分)模块,在保持轻量级执行的同时提高了功能集成度。与以研究为中心的模型不同,YOLOv8 在构建时就考虑到了部署问题。它原生支持图像分类实例分割姿势估计 定向边界框(旋转框检测)检测。

YOLOv8 的真正优势在于Ultralytics 生态系统。开发人员可以从统一的Python APICLI实现了训练、验证和部署的标准化。这种 "包含电池 "的方法大大缩短了计算机视觉应用的上市时间。

优势

  • 无与伦比的多功能性:在一个库中处理检测、分割、分类和姿势估计 。
  • 部署就绪:本机导出支持 ONNX, OpenVINO, TensorRT和CoreML 简化了与边缘设备和云服务器的集成。
  • 内存效率:经过优化,与transformer架构相比,训练期间的CUDA 内存使用量更低,因此可在标准消费级 GPU 上使用。
  • 速度与精度的平衡:提供卓越的实时推理速度,在CPU 和边缘硬件上往往优于竞争对手。
  • 积极支持:以庞大的开源社区为后盾,Ultralytics 频繁更新,确保与最新的库和硬件兼容。

了解更多关于 YOLOv8 的信息

YOLOv9:高精度的建筑创新

YOLOv9 的发布主要是为了解决深度学习中的 "信息瓶颈 "问题。它引入了一些理论概念,目的是在数据通过深度层时保留数据信息,主要针对物体检测精度的上限。

核心创新

YOLOv9 的架构依赖于两个主要组件:可编程梯度信息 (PGI)广义高效层聚合网络 (GELAN )。PGI 用于防止深度网络前馈过程中关键输入信息的丢失,确保为更新生成可靠的梯度。GELAN 的设计目的是优化参数效率,使模型在达到高精度的同时,还能节省大量的计算资源。

优势

  • 高精确度:最大的变体YOLOv9 为 COCO 数据集上的mAP 设定了令人印象深刻的基准,在精度要求极高的场景中表现出色。
  • 参数效率:得益于 GELAN,中型YOLOv9 模型只需比一些旧架构更少的参数,就能达到具有竞争力的精度。
  • 理论进展:解决深度网络训练中有关信息保存的基本问题。

弱点

  • 通用性有限:主要侧重于物体检测。虽然功能强大,但它缺乏Ultralytics 核心产品对分割、姿势估计和分类的原生精简支持。
  • 复杂的培训:与精简的YOLOv8 管道相比,为 PGI 引入辅助分支会使训练过程变得更加资源密集,调整起来也更加复杂。
  • 推理速度:虽然高效,但与YOLOv8 中使用的高度优化块相比,架构的复杂性可能导致某些硬件的推理时间较慢。

了解有关YOLOv9的更多信息

性能正面交锋

在比较YOLOv8 和YOLOv9 时,选择往往取决于部署环境的具体限制。YOLOv8 在推理速度和部署灵活性方面占优势,而YOLOv9 则将检测指标的上限推高。

模型尺寸
(像素)
mAPval
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(毫秒)
参数
(M)
FLOPs
(B)
YOLOv8n64037.380.41.473.28.7
YOLOv8s64044.9128.42.6611.228.6
YOLOv8m64050.2234.75.8625.978.9
YOLOv8l64052.9375.29.0643.7165.2
YOLOv8x64053.9479.114.3768.2257.8
YOLOv9t64038.3-2.32.07.7
YOLOv9s64046.8-3.547.126.4
YOLOv9m64051.4-6.4320.076.3
YOLOv9c64053.0-7.1625.3102.1
YOLOv9e64055.6-16.7757.3189.0

这些数据凸显了一个明显的区别:YOLOv8 的速度更快,尤其是在GPU TensorRT)和CPU ONNX)上,这对边缘人工智能应用至关重要。例如,在 T4 GPU 上,YOLOv8n 的速度明显快于 YOLOv9t(1.47ms 对 2.3ms)。相反,YOLOv9e 实现了最高的mAP(55.6%),使其适用于服务器端处理,在这种情况下,延迟比检测微小细节更不重要。

你知道吗?

Ultralytics YOLOv8 在设计上原生支持以下功能 一应俱全 主要的计算机视觉任务。您可以从物体检测切换到 实例分割 只需更改模型权重文件(如 yolov8n.ptyolov8n-seg.pt),这是标准YOLOv9 资源库所不具备的灵活性。

理想用例

在以下情况下选择Ultralytics YOLOv8 :

  • 您需要一个生产就绪的解决方案:丰富的文档、社区支持和预建集成(如MLFlowTensorBoard)简化了从原型到产品的过程。
  • 速度至关重要:对于实时视频分析、自主导航或移动应用程序而言,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进行不同的架构权衡。

在我们的机型对比页面了解更多对比信息。


评论