YOLOv7 vs YOLOv5:详细技术对比
在选择目标检测模型时,开发人员通常会权衡速度、准确性和易用性。Ultralytics YOLOv5 和 YOLOv7 是 计算机视觉 领域中的两个关键模型,各自具有独特的优势。本页提供了详细的技术比较,以帮助您确定哪种模型最适合您的项目需求,重点介绍了它们的架构差异、性能基准和理想应用。
虽然 YOLOv7 在发布时突破了准确性的界限,但 Ultralytics YOLOv5 凭借其强大且维护良好的生态系统,已成为效率、快速部署和可访问性的基准。
YOLOv7:专注于高精度
YOLOv7由Chien-Yao Wang、Alexey Bochkovskiy和Hong-Yuan Mark Liao创建,于2022年7月6日发布。它引入了多项架构优化和训练策略,称为“可训练的免费技巧包”,旨在为实时目标检测器在保持高速度的同时,树立新的准确性技术水平标杆。
作者: Chien-Yao Wang, Alexey Bochkovskiy, 和 Hong-Yuan Mark Liao
组织: 台湾中研院资讯所
日期: 2022-07-06
Arxiv: https://arxiv.org/abs/2207.02696
GitHub: https://github.com/WongKinYiu/yolov7
文档: https://docs.ultralytics.com/models/yolov7/
YOLOv7 的架构与关键特性
YOLOv7的架构建立在多项关键创新之上,旨在改进特征学习并优化模型,以便在训练后实现更快的推理。
- 扩展高效层聚合网络 (E-ELAN): backbone中的这个模块通过更有效地管理梯度路径来增强网络的学习能力,使其能够学习更多不同的特征。
- 模型缩放: 针对基于连接的模型实施了一种复合缩放方法,可调整模型的深度和宽度以适应不同的计算预算。
- 可训练的免费赠品(Trainable Bag-of-Freebies): 利用先进的训练技术,例如辅助头和优化的标签分配,以提高准确性,而不会增加推理成本。这些辅助头仅在训练期间使用,以加强特征学习,并在推理时移除。
YOLOv7 的优势
YOLOv7 的缺点
- 复杂性: 相比于 Ultralytics YOLOv5 的精简方法,具有辅助头等功能的架构和训练过程可能更难理解和修改。
- 生态系统与支持: 缺乏 Ultralytics 提供的广泛文档、教程和集成生态系统。 这会使开发人员在部署和故障排除方面面临更多挑战。
- 资源密集型: 较大的YOLOv7模型需要大量的计算资源来进行训练,这可能会限制硬件资源有限的用户的可访问性。
YOLOv7 的使用案例
Ultralytics YOLOv5:速度与简洁
Ultralytics YOLOv5 由 Glenn Jocher 编写,于 2020 年 6 月 26 日发布。由于其在速度、准确性以及最重要的易用性方面实现了出色的平衡,它迅速成为最受欢迎的目标检测模型之一。它基于 PyTorch 构建,专为快速训练、强大部署和可访问性而设计。
作者: Glenn Jocher
机构: Ultralytics
日期: 2020-06-26
Arxiv: 无
GitHub: https://github.com/ultralytics/yolov5
文档: https://docs.ultralytics.com/models/yolov5/
YOLOv5 的架构与关键特性
YOLOv5 具有简单而强大的架构,针对训练和推理进行了高度优化。
- 基于CSP的架构: 在其主干网络和颈部(PANet)中都采用了跨阶段局部(CSP)网络,以优化特征流并减少计算瓶颈。
- 可扩展的模型系列: 提供从 Nano (YOLOv5n) 到 Extra-Large (YOLOv5x) 的一系列模型,允许用户根据其特定需求,在速度和精度之间选择完美的平衡,从轻量级边缘设备到高性能云服务器。
- 开发者优先的体验: 从一开始就为了简化而设计。它具有自动锚框生成、集成的实验跟踪以及简化的训练流程,对初学者和专家来说都很容易使用。
Ultralytics YOLOv5 的优势
- 易用性: YOLOv5 以其简单的用户体验而闻名。使用简单
pip install ultralytics
命令,一个用户友好的 CLI,以及广泛的 文档,入门非常快。 - 完善的生态系统: 受益于 Ultralytics 的持续开发、强大的开源社区以及与 Ultralytics HUB 等工具的无缝集成,从而实现无代码训练和部署。
- 性能平衡: 在速度和准确性之间实现了极佳的权衡。其较小的模型(如YOLOv5n)速度极快,非常适合在CPU和边缘设备上进行实时推理。
- 训练效率: 训练过程非常高效,与其他许多模型相比,具有更快的收敛时间和更低的内存要求。 预训练权重随时可用,并且自定义训练很简单。
- 多功能性: 原生支持多种任务,包括目标检测、实例分割和图像分类。
Ultralytics YOLOv5 的弱点
- 峰值精度: 虽然极具竞争力,但最大的YOLOv5模型可能无法与某些基准测试中最大的YOLOv7变体的峰值mAP相匹配,因为YOLOv7专门设计用于最大化此指标。
Ultralytics YOLOv5 的用例
- 实时应用: 非常适合需要快速推理的应用,例如机器人技术、无人机视觉和实时视频分析。
- 边缘部署: 由于其高效的设计和小型模型尺寸,非常适合部署在资源受限的边缘设备(如 NVIDIA Jetson)上。
- 快速原型设计: 由于其易用性和广泛的支持,它是快速开发和部署目标检测解决方案的绝佳选择。
性能与基准测试:YOLOv7 vs. YOLOv5
性能上的主要差异在于它们的设计重点。YOLOv7 旨在实现最高的准确率,而 YOLOv5 则提供更平衡和实用的选项范围。
模型 | 尺寸 (像素) |
mAPval 50-95 |
速度 CPU ONNX (毫秒) |
速度 T4 TensorRT10 (毫秒) |
参数 (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
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 |
如表所示,YOLOv7 模型以具有竞争力的 GPU 速度实现了令人印象深刻的 mAP 分数。然而,Ultralytics YOLOv5 为不同的部署场景提供了更广泛的选择。YOLOv5n 和 YOLOv5s 模型在 CPU 和 GPU 上都明显更快,使其成为低延迟和边缘应用的明显选择。
结论:您应该选择哪种模型?
YOLOv7 和 YOLOv5 之间的选择很大程度上取决于您项目的优先级。
-
如果您的主要目标是实现尽可能高的检测精度,并且您拥有计算资源和技术专长来管理其更复杂的架构和训练管道,请选择 YOLOv7。对于性能至关重要的研究和专业应用来说,这是一个出色的模型。
-
如果您重视快速开发、易用性和部署灵活性,请选择 Ultralytics YOLOv5。其简化的工作流程、广泛的文档和强大的性能平衡使其成为大多数商业和实际应用的理想选择。无论您是初学者还是经验丰富的从业者,YOLOv5 强大的生态系统都能加速从概念到生产的旅程。
对于大多数开发者来说,Ultralytics YOLOv5 的实际优势和全面支持使其成为更具吸引力的选择。它的继任者,如 Ultralytics YOLOv8,通过在同一用户友好的框架内提供更好的性能和更多功能,延续了这一传统。
探索其他模型
对于那些对最新进展感兴趣的人来说,值得探索 Ultralytics 生态系统中较新的模型。
- Ultralytics YOLOv8:YOLOv5 的继任者,提供更高的准确性、速度以及用于检测、分割、姿势估计和跟踪的统一 API。请参阅 YOLOv8 和 YOLOv7 之间的直接比较。
- Ultralytics YOLOv10:一种先进的模型,专注于无 NMS 的端到端检测,以减少延迟并提高效率。
- Ultralytics YOLO11:Ultralytics 最新的前沿模型,强调速度、效率和易用性,并采用了无锚框设计。