Link to this sectionYOLOv5 与 YOLOv9:深度技术对比#
过去几年,计算机视觉和实时目标检测领域取得了显著进展。对于机器学习工程师而言,在成熟、经过实战检验的模型与较新的研究架构之间做出选择是一个常见挑战。本指南对 YOLO 家族中两个极具影响力的模型:YOLOv5 和 YOLOv9 进行了全面的技术对比。
无论你是要部署到受限的边缘设备,进行高保真特征提取的研究,还是构建复杂的 目标检测 流水线,了解这些模型的架构细微差别、性能指标和生态系统差异都至关重要。
Link to this section模型概述#
在深入探讨架构对比之前,了解每个模型的起源和主要目标会很有帮助。
Link to this sectionUltralytics YOLOv5#
YOLOv5 由 Glenn Jocher 开发并由 Ultralytics 于 2020 年 6 月 26 日发布,它标志着开发者与视觉模型交互方式的范式转变。通过全面拥抱 PyTorch 框架,YOLOv5 用直观的 Python 优先用户体验取代了早期基于 Darknet 的模型复杂的编译步骤。
- 作者: Glenn Jocher
- 组织: Ultralytics
- 日期: 2020-06-26
- GitHub: YOLOv5 存储库
- 文档: YOLOv5 文档
YOLOv5 以其 易用性 和在各种硬件环境下的稳定性能而闻名。它不仅支持检测,还支持 图像分类 和 实例分割。
Link to this sectionYOLOv9#
YOLOv9 由台湾中央研究院信息科学研究所的王建尧 (Chien-Yao Wang) 和廖弘源 (Hong-Yuan Mark Liao) 提出,重点关注架构理论,以缓解深度神经网络中的信息瓶颈问题。
- 作者: Chien-Yao Wang 和 Hong-Yuan Mark Liao
- 组织: 台湾中央研究院信息科学研究所
- 日期: 2024-02-21
- Arxiv: 2402.13616
- GitHub: YOLOv9 存储库
- 文档: YOLOv9 文档
YOLOv9 的核心依赖于两大理论创新:可编程梯度信息 (PGI) 和通用高效层聚合网络 (GELAN)。这些概念有助于模型通过深度网络层保留关键的空间特征。
虽然 YOLOv5 和 YOLOv9 功能强大,但最新发布的 YOLO26 代表了速度与精度的终极平衡。YOLO26 采用端到端无 NMS 设计,CPU 推理速度最高提升 43%,非常适合现代边缘计算和生产部署。
Link to this section架构与技术差异#
了解这些视觉模型背后的驱动力,对于优化 模型部署 策略至关重要。
Link to this section特征提取与信息保留#
YOLOv5 利用跨阶段局部网络 (CSPNet) 主干,在反向传播期间有效地减少了计算开销并保持了准确的梯度流。这种设计针对传统的 GPU 操作 进行了高度优化,并确保了与笨重的 Transformer 替代方案相比,在训练期间对内存的需求更低。
YOLOv9 引入了 GELAN,这是一种扩展了 CSPNet 原则的通用架构。结合作为辅助可逆分支的 PGI,YOLOv9 确保深层不会丢失精确目标函数所需的语义数据。这使得 YOLOv9 能够获得高 精度,特别是在较小目标上,尽管复杂的辅助分支有时会使导出流水线对深度受限的边缘硬件变得复杂。
Link to this section内存需求与训练效率#
在训练效率方面,YOLOv5 仍然非常稳健。维护良好的 Ultralytics 生态系统 确保 YOLOv5 模型消耗的 CUDA 内存显著减少,允许研究人员在消费级 GPU 上最大化 批次大小。虽然 YOLOv9 实现了出色的参数效率(相对于其大小的高精度),但如果不使用优化框架,其训练过程可能会更加消耗资源。幸运的是,将 YOLOv9 集成到 Ultralytics API 中使其在资源管理方面更接近 YOLOv5 的精简水平。
Link to this section性能与指标#
为了客观地评估这些架构,我们在 COCO 等标准数据集上比较了它们的性能。以下是 mAP(平均精度均值)、推理速度和参数数量等指标的详细分解。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (ms) | 速度 T4 TensorRT10 (ms) | 参数量 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
如表所示,YOLOv9 在同等层级上实现了更高的原始精度,反映了其较新的架构。然而,YOLOv5n 保持了 1.12ms 的极低 TensorRT 延迟,凸显了其在高速、本地化 边缘计算 应用中的持久优势。
Link to this section训练方法与易用性#
今天利用 计算机视觉 的真正优势在于工具链的可访问性。
Link to this sectionUltralytics 的优势#
虽然像 YOLOv9 这样的模型的原始研究存储库是基础,但它们通常带有复杂的依赖矩阵和样板脚本。而 Ultralytics Python API 则完全抽象了这种复杂性。通过 Ultralytics 生态系统,你可以使用相同、统一的语法来训练、评估和导出 YOLOv5 和 YOLOv9。
from ultralytics import YOLO
# Load a pre-trained YOLOv5 model for fast deployment
model_v5 = YOLO("yolov5s.pt")
# Or leverage a YOLOv9 model for high-fidelity accuracy
model_v9 = YOLO("yolov9c.pt")
# Train seamlessly on custom data with automatic MLflow logging
results = model_v9.train(data="coco8.yaml", epochs=50, imgsz=640)
# Export the trained model to ONNX
model_v9.export(format="onnx")这种单一 API 方法提供了巨大的 通用性,不仅支持检测,还根据所选模型支持 姿态估计 和 旋转边界框 (OBB)。此外,与 Comet ML 和 Weights & Biases 等工具的稳健集成被直接植入到了训练循环中。
Link to this section理想用例与实际应用#
选择这些架构在很大程度上取决于你的硬件限制以及应用领域所需的精度。
Link to this section何时选择 YOLOv5#
YOLOv5 是一位久经沙场的老将,在优先考虑稳定性、低内存占用和极端导出兼容性的部署场景中表现出色。
- 移动端部署: 将 YOLOv5 导出到 TFLite 或 CoreML 以在旧款智能手机上进行设备端推理非常顺畅。
- 传统边缘硬件: 对于 Raspberry Pi 或早期版本的 NVIDIA Jetson Nano 等设备,YOLOv5 的简单卷积确保了诸如 智能停车管理 等应用的一致帧率。
- 快速原型设计: 大量社区教程、自定义 预训练权重 和对海量数据集的兼容性,使其成为验证概念验证 (PoC) 最快的方式。
Link to this section何时选择 YOLOv9#
YOLOv9 非常适合捕获复杂细节和最大限度减少漏报至关重要的场景,即使这需要稍多的计算开销。
- Aerial and Satellite Imagery: The PGI framework is highly adept at maintaining the fidelity of small objects, making YOLOv9 excellent for drone-based agricultural monitoring.
- 医学影像诊断: 在高分辨率扫描中检测微小异常或病灶时,GELAN 的精确梯度流在召回率方面提供了必要的优势。
- 高端零售分析: 在密集货架上跟踪重叠产品,得益于 YOLOv9 卓越的特征保留能力,效果显著提升。
Link to this section拓展你的视野#
虽然对比 YOLOv5 和 YOLOv9 可以清楚地了解架构如何从 2020 年演进到 2024 年,但人工智能领域的发展比以往任何时候都快。对于追求极致性能的开发者,强烈建议探索最新的 YOLO26 模型。通过用原生的 端到端无 NMS 设计 取代传统的非极大值抑制,并利用先进的 MuSGD 优化器,YOLO26 弥合了研究级精度与生产级速度之间的鸿沟。借助 DFL 移除(移除分布焦点损失以简化导出并改善边缘/低功耗设备兼容性),YOLO26 可实现高达 43% 的 CPU 推理加速,非常适合边缘计算。此外,ProgLoss + STAL 提供了改进的损失函数,在小目标识别方面有显著提升,这对物联网、机器人和航空影像至关重要。
你可能还有兴趣将这些架构与其他最先进的模型进行比较,例如 RT-DETR 或功能强大的 YOLO11。利用统一的 Ultralytics 框架可以确保无论你选择哪个模型,你的开发流水线都保持整洁、高效,并随时准备扩展。