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 仓库。
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) |
|---|---|---|---|---|---|---|
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.2 | 26.7 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.1 | 76.8 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.5 | 102.8 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 58.1 | 192.5 |
| YOLOv5n | 640 | 28.0 | - | 1.12 | 1.9 | 4.5 |
| YOLOv5s | 640 | 37.4 | - | 1.92 | 7.2 | 16.5 |
| YOLOv5m | 640 | 45.4 | - | 4.03 | 21.2 | 49.0 |
| YOLOv5l | 640 | 49.0 | - | 6.61 | 46.5 | 109.1 |
| YOLOv5x | 640 | 50.7 | - | 11.89 | 86.7 | 205.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 可通过无代码方式轻松训练、跟踪和部署这些前沿模型。