跳转至内容

YOLOv8 与 YOLOv9:目标检测技术对比

选择最优的计算机视觉模型是一个关键决策,它影响着AI项目的成功,需要在准确性、推理速度和计算效率之间取得平衡。本综合指南比较了Ultralytics YOLOv8(一款多功能且生产就绪的模型)与YOLOv9(一款通过新颖梯度最大化detect准确性的架构)。我们分析了它们的架构区别、性能指标和理想部署场景,以帮助您做出明智的选择。

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

由 Ultralytics 推出,YOLOv8 代表了 YOLO 系列的一次重大演进,它不仅被设计为一个模型,更是一个用于实际 AI 的完整框架。它优先考虑无缝的用户体验、跨硬件的强大性能,并支持超越简单 detect 的广泛视觉任务。

架构与生态系统

YOLOv8 引入了无锚点检测头以及 C2f(带有 2 个卷积的跨阶段部分)模块,在保持轻量级执行的同时,改进了特征集成。与以研究为中心的模型不同,YOLOv8 在设计时就考虑到了部署。它原生支持图像分类实例分割姿势估计旋转框检测 (OBB)

YOLOv8 的真正强大之处在于Ultralytics 生态系统。开发者受益于统一的Python APICLI,它们标准化了训练、验证和部署。这种“开箱即用”的方法大大缩短了计算机视觉应用的上市时间。

优势

  • 无与伦比的多功能性: 在一个库中处理 detect、segment、classify 和姿势估计任务。
  • 部署就绪:ONNXOpenVINOTensorRT 和 CoreML 的原生导出支持简化了与边缘设备和云服务器的集成。
  • 内存效率:与基于 Transformer 的架构相比,优化了训练期间的 CUDA 内存使用,使其可在标准消费级 GPU 上运行。
  • 速度-精度平衡: 提供卓越的实时推理速度,在CPU和边缘硬件上通常优于竞争对手。
  • 积极支持: 由庞大的开源社区和 Ultralytics 的频繁更新提供支持,确保与最新的库和硬件兼容。

了解更多关于 YOLOv8 的信息

YOLOv9:实现高精度的架构创新

YOLOv9 发布时着重解决深度学习中的“信息瓶颈”问题。它引入了旨在保留数据信息在通过深层网络时的理论概念,主要目标是达到目标检测准确性的上限。

核心创新

YOLOv9 的架构依赖于两个主要组件:可编程梯度信息 (PGI)广义高效层聚合网络 (GELAN)。PGI 旨在防止深度网络在前向传播过程中丢失关键输入信息,确保为更新生成可靠的梯度。GELAN 旨在优化参数效率,使模型能够在具有可观计算开销的情况下实现高精度。

优势

  • 高精度:最大的变体YOLOv9-E在COCO数据集的mAP上树立了令人印象深刻的基准,在精度至关重要的场景中表现出色。
  • 参数效率:得益于GELAN,中型YOLOv9模型在参数量少于一些旧架构的情况下,实现了具有竞争力的精度。
  • 理论进展:解决了深度网络训练中信息保存方面的基本问题。

弱点

  • 有限的多功能性: 主要专注于目标检测。尽管功能强大,但它缺乏Ultralytics核心产品线中可见的对分割、姿势估计和分类的原生、流线型支持。
  • 复杂训练: PGI 辅助分支的引入会使训练过程相比于精简的 YOLOv8 流程更耗费资源且难以调优。
  • 推理速度:尽管高效,但与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) 上,这对于 边缘 AI 应用 至关重要。例如,在 T4 GPU 上,YOLOv8n 显著快于 YOLOv9t(1.47 毫秒 vs 2.3 毫秒)。相反,YOLOv9e 实现了最高的 mAP (55.6%),使其适用于对延迟要求不高,但对检测微小细节要求较高的服务器端处理。

您知道吗?

Ultralytics YOLOv8:原生支持设计 所有 主要计算机视觉任务。您可以从目标检测切换到 实例分割 仅通过更改模型权重文件(例如, yolov8n.ptyolov8n-seg.pt),这是标准 YOLOv9 仓库中不具备的灵活性水平。

理想用例

选择Ultralytics YOLOv8如果:

  • 您需要生产就绪的解决方案:详尽的文档、社区支持以及预构建的集成(如MLFlowTensorBoard)简化了从原型到产品的路径。
  • 速度至关重要: 对于实时视频分析、自主导航或移动应用程序,YOLOv8优化的推理速度提供了显著优势。
  • 您需要多种视觉任务:涉及姿势估计或segment以及detect的项目,最适合使用YOLOv8的统一框架。
  • 资源限制:YOLOv8模型针对各种硬件进行了高度优化,确保在从树莓派到NVIDIA Jetson等设备上高效运行。

如果满足以下条件,请选择 YOLOv9:

  • 最大精度是唯一指标:适用于学术研究或专业检测任务,其中mAP的每一个百分点都比速度或可用性更为重要。
  • 您正在研究架构:PGI和GELAN概念对于研究深度网络中梯度流的研究人员来说很有价值。

代码实现

Ultralytics生态系统的一个主要优势是它通过相同的简单API支持这两种模型。这使您可以在自己的自定义数据集上轻松地对它们进行基准测试。

以下是您如何仅用几行代码训练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 在相同的稳健管道中试验 YOLOv9,尽管原生 YOLOv8 模型通常受益于与部署工具更紧密的集成。

结论

对于绝大多数开发者和商业应用,Ultralytics YOLOv8仍然是推荐的选择。它在速度和精度之间实现了卓越的平衡,结合成熟且维护良好的生态系统,确保项目具有前瞻性且更易于维护。在单一框架内处理detection、segmentation和姿势估计的能力提供了无与伦比的多功能性。

虽然YOLOv9引入了令人兴奋的架构理论并实现了高高峰值准确性,但它通常最适合特定的研究领域或推理延迟不是限制的场景。

对于那些寻求计算机视觉技术绝对最新成果的用户,务必关注 YOLO11,它进一步提升了 YOLOv8 所确立的效率和性能。此外,对基于 Transformer 方法感兴趣的研究人员可以探索 RT-DETR 以了解不同的架构权衡。

在我们的模型比较页面上探索更多比较。


评论