跳转至内容

YOLOv9 与 YOLOv5:技术比较

在快速发展的计算机视觉领域,选择正确的物体检测模型是项目成功的关键。本分析报告对 YOLOv9之间进行了详细的技术比较。 Ultralytics YOLOv5之间进行了详细的技术比较。我们将探讨它们的架构差异、性能基准和理想用例,帮助您做出明智的决定。

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

YOLOv9于2024年初发布,旨在通过解决深度学习信息流中的根本问题,挑战目标检测的理论极限。它专为精度至关重要的场景而设计。

作者: Chien-Yao Wang, Hong-Yuan Mark Liao
机构:台湾中央研究院资讯科学研究所
日期: 2024-02-21
Arxiv:arXiv:2402.13616
GitHub:WongKinYiu/yolov9
文档:YOLOv9 文档

核心架构

YOLOv9 引入了两项开创性概念:可编程梯度信息 (PGI)广义高效层聚合网络 (GELAN)。PGI 通过确保为 损失函数保留完整的输入信息,解决了深度神经网络固有的信息瓶颈问题,从而提高了梯度可靠性。GELAN 优化了参数效率,与以前使用深度可分离卷积的架构相比,使模型能够以更少的计算资源实现更高的精度。

优势与劣势

YOLOv9 的主要优势在于其在COCO 数据集等基准测试中表现出的最先进的准确性。它在检测其他模型可能失败的小型或被遮挡物体方面表现出色。然而,这种对检测准确性的关注伴随着权衡。训练过程可能更资源密集型,尽管它已集成到 Ultralytics 生态系统中,但与更早建立的模型相比,更广泛的社区支持和第三方工具仍在成熟中。此外,其主要关注点仍是检测,而其他模型则提供更广泛的原生多任务支持。

了解更多关于YOLOv9的信息。

Ultralytics YOLOv5:多功能行业标准

自 2020 年发布以来,Ultralytics YOLOv5 定义了实用、真实世界 AI 部署的标准。它在性能和可用性之间取得了精确的平衡,使其成为历史上使用最广泛的模型之一。

作者:Glenn JocherGlenn Jocher
组织:Ultralytics
日期:2020-06-26
GitHub:yolov5
文档:YOLOv5 文档

核心架构

YOLOv5 采用精细的基于锚框的架构,具有CSPDarknet53 主干网络PANet 颈部网络,用于鲁棒的特征聚合。其设计优先考虑推理速度和工程优化。该模型有多种尺寸(从 Nano 到超大),允许开发者根据其硬件限制完美适配模型,从嵌入式边缘设备到云端 GPU。

Ultralytics 优势

虽然YOLOv9推动学术边界,但YOLOv5在工程实用性方面表现出色。

  • 易用性: YOLOv5 以其“安装即运行”的体验而闻名。简化的 python API 和全面的文档显著缩短了开发时间。
  • 完善的生态系统:在Ultralytics的支持下,YOLOv5享有积极的维护、GitHub上的庞大社区以及与MLOps工具的无缝集成。
  • 多功能性:除了 detect 之外,YOLOv5 原生支持实例分割图像分类,为各种视觉任务提供统一的解决方案。
  • 内存效率:Ultralytics 模型在训练和推理期间都优化了更低的内存占用,与基于 Transformer 的替代方案的繁重要求形成对比。

了解更多关于 YOLOv5 的信息

性能指标:速度对比准确性

以下比较突出了这些模型的不同作用。YOLOv9 通常能实现更高的 mAP(平均精度均值),尤其是在较大的模型尺寸(c 和 e)中。这使其在需要精细细节的任务中表现更出色。

相反,YOLOv5 提供了无与伦比的推理速度,尤其是在其 Nano (n) 和 Small (s) 变体中。对于 实时应用,在 NVIDIA JetsonRaspberry Pi 等边缘硬件上,YOLOv5 因其轻量级特性和 TensorRT 优化成熟度而仍然是顶级竞争者。

模型尺寸
(像素)
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
YOLOv5n64028.073.61.122.67.7
YOLOv5s64037.4120.71.929.124.0
YOLOv5m64045.4233.94.0325.164.2
YOLOv5l64049.0408.46.6153.2135.0
YOLOv5x64050.7763.211.8997.2246.4

部署提示

为了最大限度地提高部署灵活性,两种模型都可以使用 Ultralytics 导出模式导出为 ONNX、TensorRT 和 Core ML 等格式。这确保了您的模型在任何目标硬件上高效运行。

训练与可用性

训练方法在用户体验方面存在显著差异。Ultralytics YOLOv5 旨在实现 训练效率,提供开箱即用的强大预设,适用于自定义数据集。它具有自动锚点计算、超参数演进和丰富的日志集成功能。

YOLOv9 虽然功能强大,但可能需要更仔细地调整超参数以实现稳定性和收敛性,尤其是在较小的数据集上。然而,由于它已集成到 ultralytics Python 包,开发者现在可以使用与 YOLOv5 相同的简单语法训练 YOLOv9,弥合了可用性差距。

代码示例

借助Ultralytics库,在这些架构之间切换就像更改模型名称一样简单。此代码片段演示了如何加载这两个模型并运行推理:

from ultralytics import YOLO

# Load the established industry standard YOLOv5 (nano version)
model_v5 = YOLO("yolov5nu.pt")

# Run inference on an image
results_v5 = model_v5("path/to/image.jpg")

# Load the high-accuracy YOLOv9 (compact version)
model_v9 = YOLO("yolov9c.pt")

# Run inference on the same image for comparison
results_v9 = model_v9("path/to/image.jpg")

理想用例

何时选择 YOLOv9

  • 高精度检测:制造装配线上检测微小缺陷,每一个像素都至关重要。
  • 高级研究: 探索新的深度学习架构的项目,如可编程梯度信息。
  • 复杂环境:在高遮挡或杂乱场景中,GELAN的先进特征聚合提供了决定性优势。

何时选择 YOLOv5

  • 边缘部署: 在电池供电设备或微控制器上运行,在这些场景中,功耗和 内存占用 至关重要。
  • 快速原型开发:当您需要利用详尽的教程和社区资源,在数小时而非数天内从数据收集到可工作的演示时。
  • 多任务系统:在单一代码库中需要姿势估计或分类以及 detect 的应用。
  • 生产稳定性:需要经过多年可靠性验证且久经考验的解决方案的企业环境。

结论

YOLOv9 和 YOLOv5 之间的选择取决于您的具体限制。YOLOv9 是最大化准确性的卓越选择,提供了尖端的架构改进。YOLOv5 仍然是多功能性和易用性的典范,提供了一个强大且支持良好的生态系统,简化了整个 AI 生命周期。

对于寻求两全其美——结合 YOLOv5 的易用性与超越 YOLOv9 的性能——的开发者而言,我们推荐探索 YOLO11。作为 Ultralytics 的最新迭代,YOLO11 在所有视觉任务中提供了最先进的速度和准确性,代表着 YOLO 家族的未来。

探索其他模型

  • YOLO11: Ultralytics 最新的、最强大的模型,用于 detect、segment 和 姿势估计。
  • YOLOv8: 是YOLO11强大的前代产品,在功能方面实现了很好的平衡。
  • RT-DETR: 一种基于 Transformer 的 detector,针对实时性能进行了优化。

评论