跳转至内容

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

选择最优的对象detect模型需要在架构创新与实际部署需求之间取得平衡。这项技术比较分析了YOLOv9(一个引入新颖梯度信息技术的以研究为重点的模型)和Ultralytics YOLOv8(一个为多功能性和速度而设计的生产就绪框架)。我们考察了它们的架构、在COCO数据集上的性能指标以及理想用例,以帮助您决定哪个模型适合您的计算机视觉管线。

YOLOv9:通过新颖架构解决信息损失

YOLOv9于2024年初发布,旨在解决深度神经网络中信息丢失的根本问题。随着网络变得更深,重要的输入数据可能在到达最终层之前消失,从而使训练过程复杂化。

主要创新:PGI 和 GELAN

YOLOv9引入了两项主要的架构改进,以解决信息瓶颈问题:

  1. 可编程梯度信息 (PGI):一种辅助监督框架,生成可靠梯度以更新网络权重,确保关键输入关联在各层中得以保留。这对于训练非常深的模型尤其有效。
  2. 广义高效层聚合网络 (GELAN):一种轻量级网络架构,优先考虑参数效率和计算速度 (FLOPs)。GELAN 使 YOLOv9 能够在保持可观推理速度的同时实现高准确性。

优势与局限性

YOLOv9 在学术基准测试中表现出色,凭借 YOLOv9-E 达到顶尖水平的变体 mAP 分数。对于旨在突破检测精度极限的研究人员来说,这是一个绝佳的选择。然而,作为一个深深植根于研究的模型,它缺乏在更成熟的生态系统中发现的广泛的多任务支持。它的主要实现侧重于边界框检测,并且与简化的工业解决方案相比,训练工作流程可能需要更多的资源。

了解更多关于YOLOv9的信息。

Ultralytics YOLOv8:生产级 AI 的标准

Ultralytics YOLOv8 代表了一种 Vision AI 的整体方法。YOLOv8 并非仅关注单个指标,而是经过精心设计,旨在提供最佳的用户体验、部署多功能性和性能平衡。它是广泛的 Ultralytics 生态系统 的一部分,确保它对于所有技能水平的开发人员来说都保持强大且易于使用。

架构与生态系统优势

YOLOv8 采用无锚框检测头和 C2f(带有 2 个卷积的跨阶段部分瓶颈)主干网络,这在保持轻量级占用的同时增强了梯度流。除了架构之外,其优势在于其集成性:

  • 易用性: 通过统一的 python API 和命令行界面 (CLI),训练和部署模型只需几行代码。
  • 多功能性:与通常仅限于detect的竞争对手不同,YOLOv8原生支持实例分割姿势估计旋转框检测 (OBB)图像分类
  • 性能平衡: 它在延迟和精度之间提供了卓越的权衡,使其适用于NVIDIA Jetson或树莓派等边缘设备上的实时推理
  • 内存效率:与基于 Transformer 的架构相比,YOLOv8 在训练期间通常需要更少的CUDA 内存,从而降低了硬件的入门门槛。

集成工作流

Ultralytics 模型可与 TensorBoard 等工具无缝集成用于可视化,与 MLflow 集成用于实验跟踪,从而简化了 MLOps 生命周期。

了解更多关于 YOLOv8 的信息

性能分析:速度、准确性和效率

模型之间的选择通常归结为项目对速度与纯准确性的具体要求。下表比较了 COCO 验证集上的标准变体。

模型尺寸
(像素)
mAPval
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(毫秒)
参数
(M)
FLOPs
(B)
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
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

主要内容

  1. 高端精度: 字段 YOLOv9e 模型达到了惊人的 55.6% mAP,超越了 YOLOv8x。如果您的应用需要检测最困难的对象并且延迟是次要的,那么 YOLOv9e 是一个强大的竞争者。
  2. 实时速度: 对于依赖于速度的应用, YOLOv8nYOLOv8s 表现出卓越的性能。 YOLOv8n 对于...特别有效 移动部署,提供了一种轻量级解决方案,在 CPU 和 GPU 上都非常快。
  3. 部署就绪性: 该表突出显示了 YOLOv8 的 CPU ONNX 速度,这是非 GPU 环境的关键指标。这种数据透明度反映了 YOLOv8 针对广泛部署场景的设计,而 YOLOv9 在研究环境中通常主要在 V100 或 T4 等高端 GPU 上进行基准测试。

训练与可用性

最显著的区别之一在于开发者体验。Ultralytics 优先采用“开箱即用”的方法。

Ultralytics 的简洁性

训练 YOLOv8 模型只需最少的设置。该库自动处理数据增强、超参数调整和预训练权重的下载。

from ultralytics import YOLO

# Load a pre-trained YOLOv8 model
model = YOLO("yolov8n.pt")

# Train on a custom dataset with a single command
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")

研究复杂性

虽然YOLOv9已集成到Ultralytics代码库中以便更轻松地访问,但原始研究仓库通常需要复杂的环境配置和手动超参数管理。Ultralytics的完善生态系统确保无论您使用YOLOv8还是移植的YOLOv9,都能受益于稳定的CI/CD管道、广泛的文档以及通过Discord提供的社区支持。

理想用例

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

  • 最大精度至关重要:例如医学图像分析(如肿瘤检测)等项目,其中mAP的每一个百分点都至关重要。
  • 学术研究: 您正在研究像 PGI 这样的新型架构,或者对神经网络效率进行比较研究。
  • 高算力环境:部署目标是强大的服务器(例如 NVIDIA A100),在这些环境中,更高的 FLOPs 是可接受的。

如果符合以下条件,请选择 Ultralytics YOLOv8:

  • 需要执行多样化任务:您需要在单一项目结构中执行 对象 track、segmentation 或姿势估计。
  • 边缘部署:智能相机或无人机等受限硬件上运行的应用程序,这些设备的内存和CPU周期稀缺。
  • 快速开发:需要使用ONNX、TensorRT或OpenVINO等导出格式快速从概念到生产的初创公司和企业团队。
  • 稳定性与支持:您需要一个有频繁更新和庞大社区支持的模型,以高效解决问题。

结论

尽管 YOLOv9 引入了令人印象深刻的理论进步并实现了高 detect 准确率,但 Ultralytics YOLOv8 对于绝大多数实际应用而言仍然是更实用的选择。它在速度、准确性和多功能性方面的平衡,结合用户友好的 API 和高效的训练过程,使其成为开发人员的首选解决方案。

对于那些寻求 Ultralytics 产品线中绝对最新成果的用户,可以考虑探索 YOLO11,它进一步优化了这些特性,以实现最先进的性能。然而,在这两个讨论的模型中,YOLOv8 提供了成熟、可投入生产的体验,加速了从数据到部署的路径。

探索其他模型

如果您对其他架构感兴趣,Ultralytics 文档提供了多种其他模型的比较:

  • RT-DETR:一种基于 Transformer 的检测器,可提供高精度,但具有不同的资源需求。
  • YOLOv5: 传奇的前身,以其极高的稳定性和广泛的应用而闻名。
  • YOLO11:Ultralytics 的最新迭代,进一步提高了效率。

评论