YOLOv5 与 YOLOv9:深入技术对比
在过去几年中,计算机视觉和实时目标检测领域取得了显著进展。对于机器学习工程师来说,在久经考验的成熟模型和较新的研究架构之间做出选择是一个常见的挑战。本指南对 YOLO 系列中两个极具影响力的模型 YOLOv5 和 YOLOv9 进行了全面的技术对比。
无论你是要部署到受限的边缘设备,还是在研究高保真特征提取,亦或是构建复杂的 目标检测 流水线,理解这些模型的架构细微差别、性能指标和生态系统差异都至关重要。
模型概览
在深入探讨架构差异之前,先了解每个模型的起源和主要目标会很有帮助。
Ultralytics YOLOv5
YOLOv5 由 Glenn Jocher 开发并于 2020 年 6 月 26 日由 Ultralytics 发布,标志着开发者与视觉模型交互方式的范式转变。通过全面拥抱 PyTorch 框架,YOLOv5 用直观的 Python 优先的用户体验取代了早期基于 Darknet 模型复杂的编译步骤。
- 作者: Glenn Jocher
- 组织: Ultralytics
- 日期: 2020-06-26
- GitHub: YOLOv5 存储库
- 文档: YOLOv5 平台概述
YOLOv5 以其 易用性 和在多种硬件环境下的稳定性能而闻名。它不仅支持检测,还支持 图像分类 和 实例分割。
YOLOv9
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%,强烈推荐用于现代边缘计算和生产部署。
架构与技术差异
了解这些视觉模型底层的工作原理对于优化 模型部署 策略至关重要。
特征提取与信息保留
YOLOv5 使用跨阶段局部网络 (CSPNet) 作为骨干网络,在反向传播期间有效地降低了计算开销并保持了准确的梯度流。这种设计针对传统的 GPU 操作 进行了高度优化,并确保相比笨重的 Transformer 替代方案,在训练过程中具有更低的内存需求。
YOLOv9 引入了 GELAN,这是一种扩展了 CSPNet 原则的通用架构。结合辅助可逆分支 PGI,YOLOv9 确保深层网络不会丢失精确目标函数所需的语义数据。这使得 YOLOv9 在处理小目标时能达到很高的 准确率,尽管其复杂的辅助分支有时会增加向受限边缘硬件导出流水线的难度。
内存需求与训练效率
在训练效率方面,YOLOv5 仍然非常稳健。维护良好的 Ultralytics 生态系统 确保 YOLOv5 模型消耗的 CUDA 内存显著更少,使研究人员能够在消费级 GPU 上最大化 批量大小 (batch size)。虽然 YOLOv9 实现了出色的参数效率(相对于其规模的高准确率),但如果不使用优化框架,其训练过程可能会消耗更多资源。幸运的是,将 YOLOv9 集成到 Ultralytics API 中使其在资源管理方面更接近 YOLOv5 的精简水平。
性能与指标
为了客观评估这些架构,我们将它们在 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 延迟,凸显了其在高速、本地化 边缘计算 应用中持久的优势。
训练方法与易用性
如今利用 计算机视觉 的真正优势在于工具链的易用性。
Ultralytics 的优势
虽然像 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 等工具的稳健集成已直接嵌入到训练循环中。
理想的使用场景与实际应用
在这两种架构之间进行选择,主要取决于你的硬件限制以及应用领域所需的精度。
何时选择 YOLOv5
YOLOv5 是一位久经沙场的“老将”,在优先考虑稳定性、低内存占用和极端导出兼容性的部署场景中表现出色。
- 移动端部署: 将 YOLOv5 导出到 TFLite 或 CoreML 以在旧款智能手机上进行端侧推理,过程非常顺畅。
- 旧款边缘硬件: 对于 Raspberry Pi 或早期 NVIDIA Jetson Nano 等设备,YOLOv5 简单的卷积计算可确保诸如 智能停车管理 等应用的帧率始终保持稳定。
- 快速原型开发: 大量的社区教程、自定义 预训练权重 以及对海量数据集的兼容性,使其成为验证概念验证 (PoC) 最快的方式。
何时选择 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 出色的特征保留能力具有显著优势。
开拓你的视野
虽然对比 YOLOv5 和 YOLOv9 能清晰展现架构从 2020 年到 2024 年的演变,但 AI 领域的发展速度比以往任何时候都要快。对于追求极致性能的开发者,强烈建议探索最新的 YOLO26 模型。通过用原生的 端到端无 NMS 设计 取代传统的非极大值抑制,并使用先进的 MuSGD 优化器,YOLO26 弥合了研究级精度与生产级速度之间的鸿沟。借助 DFL 移除(移除分布焦点损失以简化导出并实现更好的边缘/低功耗设备兼容性),YOLO26 的 CPU 推理速度提升高达 43%,是边缘计算的理想选择。此外,ProgLoss + STAL 提供了改进的损失函数,在小目标识别方面有显著提升,这对物联网、机器人技术和航空影像至关重要。
你可能还对将这些架构与其他尖端模型(如 RT-DETR 或功能极其强大的 YOLO11)进行比较感兴趣。利用统一的 Ultralytics 框架可以确保无论你选择哪种模型,你的开发流水线都能保持整洁、高效并随时准备扩展。