Ultralytics YOLO27:
Get Started

YOLOv9 与 YOLOv5#

计算机视觉领域发展迅猛,目标检测是无数工业和研究应用的基础。选择合适的架构通常需要仔细评估平均精度均值 (mAP)、推理速度和内存开销。在本文中,我们将探讨两款影响深远的模型:以梯度信息保留方面的架构突破而备受赞誉的 YOLOv9,以及经过实践检验的行业标准 Ultralytics YOLOv5,后者以极易上手和无与伦比的部署灵活性著称。

架构创新与技术起源#

了解这两款模型的底层机制,有助于深入理解各自的性能表现。

YOLOv9:可编程梯度信息#

YOLOv9 由台湾中央研究院资讯科学研究所的研究人员 Chien-Yao Wang 和 Hong-Yuan Mark Liao 开发,于 2024 年 2 月 21 日发布。该模型引入了两个突破性概念,以解决深度神经网络中常见的信息瓶颈:可编程梯度信息 (PGI) 和广义高效层聚合网络 (GELAN)。

借助 PGI,YOLOv9 确保关键信息在整个前馈过程中得以保留,从而实现高度准确的梯度更新。与此同时,GELAN 架构最大限度地提升了参数效率,使模型能够以出人意料的低计算开销达到最先进的精度。你可以在官方 YOLOv9 Arxiv 论文中了解技术细节,也可以查看 YOLOv9 GitHub 仓库。

了解有关 YOLOv9 的更多信息

Ultralytics YOLOv5:生产环境标准#

YOLOv5 由 Glenn Jocher 撰写,并于 2020 年 6 月 26 日由 Ultralytics 发布,彻底改变了计算机视觉的易用性。作为首批原生基于 PyTorch 框架构建的目标检测模型之一,它绕过了较早的 Darknet C 框架所带来的复杂性。YOLOv5 采用高度优化的 CSPNet 主干网络和 PANet 颈部结构,优先实现速度与精度之间的无缝平衡。

然而,YOLOv5 最突出的成就,是融入更广泛的 Ultralytics 生态系统。YOLOv5 针对快速训练效率和低内存环境进行了大量优化,因此在边缘设备部署时非常稳定。

内存效率

在为边缘设备评估模型时,请记住,与大型 Transformer 架构相比,Ultralytics YOLO 模型在训练和推理期间通常所需的 GPU 内存要少得多。

性能分析:速度与精度#

设计计算机视觉流程时,开发者必须权衡精度与延迟。下表展示了这些模型在标准 COCO 数据集上的性能差异。

模型尺寸
(像素)
mAP验证集
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(ms)
参数
(M)
FLOPs
(B)
YOLOv9t64038.3-2.32.07.7
YOLOv9s64046.8-3.547.226.7
YOLOv9m64051.4-6.4320.176.8
YOLOv9c64053.0-7.1625.5102.8
YOLOv9e64055.6-16.7758.1192.5
YOLOv5n64028.0-1.121.94.5
YOLOv5s64037.4-1.927.216.5
YOLOv5m64045.4-4.0321.249.0
YOLOv5l64049.0-6.6146.5109.1
YOLOv5x64050.7-11.8986.7205.7

权衡分析#

YOLOv9 在原始精度方面占据绝对优势。YOLOv9e 利用 GELAN 层保留细粒度细节,将 mAP 提升至 55.6%,进一步突破了精度界限。这使它成为医学影像或要求小目标检测精度极高场景的绝佳选择。

相比之下,YOLOv5 在原始部署速度和硬件灵活性方面表现出色。YOLOv5n (Nano) 以轻量著称,通过 TensorRT 在 T4 GPU 上仅需 1.12 毫秒即可完成推理。如果你要部署到资源受限的物联网设备、手机或 Raspberry Pi,YOLOv5 的内存占用会让它格外可靠。

Ultralytics 生态系统的优势#

选择模型时,一个重要的考量因素是其配套的软件生态系统。YOLOv9 虽然提供了顶尖的研究基准表现,但通过现代 Ultralytics Python API 使用这两款模型,可以弥合差距,为开发者提供统一而精简的体验。

易用性与导出#

Ultralytics 将复杂的工程难题抽象化。自动数据增强和超参数调优等功能都开箱即用。将模型投入生产同样轻松,内置导出命令可将模型转换为 ONNX、OpenVINO 或 LiteRT 格式。

任务通用性#

虽然两款模型都擅长目标检测,但现代 Ultralytics 模型旨在应对各种计算机视觉挑战。更广泛的框架原生支持图像分类、实例分割、姿态估计和有向边界框 (OBB),让开发者无需切换代码库即可解决多种视觉问题。

用例与建议#

如何在 YOLOv9 和 YOLOv5 之间选择,取决于你的具体项目需求、部署限制和生态系统偏好。

何时选择 YOLOv9#

YOLOv9 适用于:

  • 信息瓶颈研究:研究可编程梯度信息 (PGI) 和广义高效层聚合网络 (GELAN) 架构的学术项目。
  • 梯度流优化研究:重点研究如何理解并缓解训练期间深层网络层中的信息损失。
  • 高准确率检测基准测试:需要将 YOLOv9 在 COCO 基准测试中的出色表现作为架构对比参照的场景。

何时选择 YOLOv5#

推荐在以下情况下选择 YOLOv5:

  • 经过验证的生产系统: 现有部署重视 YOLOv5 长期积累的稳定记录、详尽文档和庞大社区支持。
  • 资源受限的训练: GPU 资源有限的环境中,YOLOv5 高效的训练流水线和较低的内存需求具有优势。
  • 广泛支持导出格式: 需要跨多种格式部署的项目,包括 ONNX、TensorRT、CoreML和 LiteRT。

何时选择 Ultralytics (YOLO26)#

对于大多数新项目,Ultralytics YOLO26在性能与开发体验之间实现了最佳平衡:

  • 无 NMS 的边缘部署:适用于要求推理延迟稳定且较低,同时不希望增加非极大值抑制后处理复杂度的应用。
  • 仅使用 CPU 的环境:适用于没有专用 GPU 加速的设备,此时 YOLO26 的 CPU 推理速度最高提升 43%,可带来显著优势。
  • 小目标检测:适用于无人机航拍影像等具有挑战性的场景,或 IoT 传感器分析等需要 ProgLoss 和 STAL 大幅提升微小目标准确率的场景。

实现示例#

Ultralytics 生态系统的优势在于,只需更改权重字符串,就能在 YOLOv5 模型和 YOLOv9 模型之间切换。

from ultralytics import YOLO

# 加载预训练的 YOLOv9 模型(将其替换为 "yolov5su.pt" 即可使用 YOLOv5u)
model = YOLO("yolov9c.pt")

# 在自定义数据集上高效训练模型
train_results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# 对新图像运行推理
predictions = model.predict("https://ultralytics.com/images/zidane.jpg")

# 导出为 ONNX,以便顺畅部署
model.export(format="onnx")

探索更新的架构#

YOLOv5 和 YOLOv9 都是各具优势的出色模型,但该领域仍在不断发展。探索新项目的用户也可以评估 Ultralytics 的最新迭代版本。

  • YOLO11: YOLOv8 系列的强大升级版本,在各类视觉任务中实现了出色的速度与精度平衡。
  • YOLO26: YOLO26 于 2026 年发布,是现代流程的首选。它引入了可选的端到端无 NMS 设计(nms=False),消除了 NMS 后处理瓶颈。通过移除 DFL(移除 Distribution Focal Loss,以简化导出并提升与边缘设备及低功耗设备的兼容性),CPU 推理速度最高可提升 43%。全新的 MuSGD 优化器大幅增强了训练稳定性,而 ProgLoss + STAL(渐进式损失和小目标感知标签分配)则显著提升了小目标识别能力,这对物联网、机器人和航拍图像至关重要,使其成为适用于边缘端和云端部署的最稳健架构。

对于管理大型数据集和复杂部署流程的团队,使用 Ultralytics Platform 可通过无代码方式轻松训练、跟踪和部署这些前沿模型。

评论