YOLOv5 与 YOLOv9#
过去几年,计算机视觉和实时目标检测领域取得了显著进展。对于机器学习工程师而言,在成熟、经过实战检验的模型与较新的研究架构之间做出选择是一个常见挑战。本指南对 YOLO 家族中两个极具影响力的模型:YOLOv5 和 YOLOv9 进行了全面的技术对比。
无论你是部署到受限的边缘设备、研究高保真特征提取,还是构建复杂的 object detection 管道,理解这些模型的架构细微差别、性能指标和生态系统差异都至关重要。
模型概述#
在深入探讨架构对比之前,了解每个模型的起源和主要目标会很有帮助。
Ultralytics YOLOv5#
由 Glenn Jocher 开发并由 Ultralytics 于 2020 年 6 月 26 日发布的 YOLOv5,标志着开发者与视觉模型交互方式的范式转变。通过完全拥抱 PyTorch 框架,YOLOv5 用直观的、以 Python 为先的用户体验,取代了早期基于 Darknet 的模型的复杂编译步骤。
- 作者: Glenn Jocher
- 组织: Ultralytics
- 日期: 2020-06-26
- GitHub: YOLOv5 仓库
- 文档: YOLOv5 Documentation
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 Repository
- 文档: YOLOv9 Documentation
YOLOv9 的核心依赖于两大理论创新:可编程梯度信息 (PGI) 和通用高效层聚合网络 (GELAN)。这些概念有助于模型通过深度网络层保留关键的空间特征。
虽然 YOLOv5 和 YOLOv9 非常强大,但新发布的 YOLO26 代表了速度与精度的终极平衡。YOLO26 采用端到端无 NMS 设计,CPU 推理速度提升高达 43%,非常推荐用于现代边缘计算和生产部署。
架构与技术差异#
了解这些视觉模型背后的驱动力,对于优化模型部署策略至关重要。
特征提取与信息保留#
YOLOv5 采用跨阶段局部网络(CSPNet)主干网,在反向传播期间有效减少计算开销的同时保持准确的梯度流。与繁重的 Transformer 替代方案相比,该设计针对传统的 GPU 操作进行了高度优化,并确保训练期间对内存的需求更低。
YOLOv9 引入了 GELAN,这是一种扩展了 CSPNet 原理的通用架构。结合 PGI(一种辅助可逆分支),YOLOv9 确保深层不会丢失精确目标函数所需的语义数据。这使得 YOLOv9 能够实现高准确率,特别是在较小的物体上,尽管复杂的辅助分支有时会使深度受限边缘硬件的导出管道变得复杂。
内存需求与训练效率#
在训练效率方面,YOLOv5 依然非常稳健。维护良好的 Ultralytics 生态系统确保了 YOLOv5 模型消耗显著更少的 CUDA 内存,允许研究人员在消费级 GPU 上最大化批次大小。虽然 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 简化的卷积确保了诸如智能停车管理等应用的稳定帧率。
- 快速原型开发: 社区教程的广泛可用性、自定义预训练权重以及庞大的数据集兼容性,使其成为验证概念证明最快的方法。
何时选择 YOLOv9#
YOLOv9 非常适合捕获复杂细节和最大限度减少漏报至关重要的场景,即使这需要稍多的计算开销。
- 航拍和卫星图像: PGI 框架非常擅长保持小物体的保真度,这使得 YOLOv9 非常适合基于无人机的农业监测。
- 医学影像诊断: 在高分辨率扫描中检测微小异常或病灶时,GELAN 的精确梯度流在召回率方面提供了必要的优势。
- 高端零售分析: 在密集货架上跟踪重叠产品,得益于 YOLOv9 卓越的特征保留能力,效果显著提升。
拓展你的视野#
虽然对比 YOLOv5 和 YOLOv9 可以清晰地了解架构从 2020 年到 2024 年的演变,但 AI 领域的发展比以往任何时候都要快。对于追求绝对性能前沿的开发者,强烈建议探索最新的 YOLO26 模型。通过用原生的端到端无 NMS 设计取代传统的非极大值抑制并利用先进的 MuSGD 优化器,YOLO26 架起了研究级准确率与生产级速度之间的桥梁。通过去除 DFL(移除了分布焦点损失,以简化导出并提升边缘/低功耗设备兼容性),YOLO26 的 CPU 推理速度提升高达 43%,非常适合边缘计算。此外,ProgLoss + STAL 提供了改进的损失函数,在小物体识别上有显着提升,这对于物联网、机器人和航拍图像至关重要。
你可能还有兴趣将这些架构与 RT-DETR 或功能强大的 YOLO11 等其他先进模型进行对比。利用统一的 Ultralytics 框架可以确保无论你选择哪个模型,你的开发管道都保持简洁、高效且随时准备扩展。