YOLOv7 vs YOLOv5:详细技术比较
选择合适的目标检测架构是一个关键决策,它会影响您的计算机视觉项目的速度、准确性和部署可行性。本页面对 YOLOv7 和 Ultralytics YOLOv5 这两个 YOLO 系列中有影响力的模型进行了全面的技术比较。我们深入探讨了它们的架构创新、性能基准和理想用例,以帮助您为应用程序选择最合适的模型。
虽然YOLOv7在2022年引入了重大的学术进展,但Ultralytics YOLOv5因其无与伦比的易用性、鲁棒性和部署灵活性,在行业中仍占据主导地位。对于寻求最新性能的用户,我们还将探讨这些模型如何为尖端的Ultralytics YOLO11铺平道路。
性能指标比较
下表突出了两种架构之间的性能权衡。尽管 YOLOv7 追求更高的平均精度均值 (mAP),但 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: 突破准确性极限
YOLOv7于2022年7月发布,旨在为实时目标检测器树立新的技术标杆。它着重于架构优化,以提高准确性,同时不显著增加推理成本。
作者:王建尧、Alexey Bochkovskiy、廖鸿源Chien-Yao Wang, Alexey Bochkovskiy, and Hong-Yuan Mark Liao
组织:台湾中央研究院信息科学研究所
日期:2022-07-06
Arxiv:https://arxiv.org/abs/2207.02696
GitHub:https://github.com/WongKinYiu/yolov7
Docs:ultralytics
架构与关键创新
YOLOv7 引入了几项复杂的架构改进,旨在改进特征学习:
- E-ELAN(扩展高效层聚合网络):一种先进的骨干网络结构,通过控制最短和最长的梯度路径来增强网络的学习能力。这使得模型能够学习更多样化的特征。
- 基于拼接模型的模型缩放:与标准缩放不同,YOLOv7 同时缩放基于拼接架构的深度和宽度,确保最佳资源利用。
- 可训练的“免费赠品”:这包括计划重参数化卷积(RepConv)和辅助头训练。辅助头生成从粗到细的层次标签,这有助于在训练期间指导学习过程,但在推理时会被移除以保持速度。
“免费策略包”是什么?
“免费赠品袋”指的是一系列训练方法和数据增强技术,可以在不增加推理成本的情况下提高目标检测模型的准确性。在YOLOv7中,这包括诸如由粗到精引导标签分配等复杂策略。
适用于 YOLOv7 的理想用例
由于其对高精度的侧重,YOLOv7特别适用于:
- 学术研究: 以 mAP 的每一小部分都很重要的 SOTA 模型为基准。
- 高端 GPU 部署:在具备强大硬件(如 NVIDIA A100)的应用中,可用于处理更大的模型尺寸和内存需求。
- 静态分析:实时延迟不如精度重要的场景,例如分析高分辨率卫星图像或医学扫描。
Ultralytics YOLOv5:行业标准
Ultralytics YOLOv5 被广泛认为是现有的最实用、最用户友好的目标检测模型之一。自 2020 年发布以来,凭借其在速度、准确性和卓越工程方面的平衡,它已成为无数商业应用的核心。
作者: Glenn Jocher
机构:Ultralytics
日期: 2020-06-26
GitHub:https://github.com/ultralytics/yolov5
文档:https://docs.ultralytics.com/models/yolov5/
架构与生态系统效益
YOLOv5 利用 CSP-Darknet53 主干网络、PANet 颈部网络和 YOLOv3 检测头,针对多样化的部署目标进行了优化。然而,其真正的优势在于Ultralytics 生态系统:
- 易用性:YOLOv5 以其“安装即运行”的理念而闻名,允许开发人员在几分钟内开始在自定义数据集上进行训练。API 直观易用,文档详尽。
- 训练效率:与更新、更复杂的架构相比,YOLOv5 在训练期间通常需要更少的 CUDA 内存,这使得拥有中端 GPU 的开发者也能使用。
- 部署灵活性: 它支持一键导出到 ONNX、TensorRT、CoreML、TFLite 等格式,便于部署到从云服务器到手机的所有平台。
- 良好维护的生态系统:凭借频繁的更新、错误修复和庞大的社区,Ultralytics 确保模型在生产环境中保持稳定和安全。
适用于 YOLOv5 的理想用例
YOLOv5 在需要可靠性和速度的实际场景中表现出色:
- 边缘AI: 在诸如以下设备上运行 NVIDIA Jetson 或树莓派,因为轻量级的Nano(
yolov5n)和小型(yolov5s)变体。 - 移动应用: 通过 CoreML 和 TFLite 集成到 iOS 和 Android 应用中,用于设备上的 推理。
- 快速原型开发:需要快速从概念到最小可行产品(MVP)的初创公司和开发者将受益于简化的工作流程。
- 工业自动化: 为对延迟和稳定性要求极高的制造生产线提供可靠的 detect。
详细比较分析
在 YOLOv7 和 YOLOv5 之间做出选择时,除了 mAP 分数之外,还有几个技术因素需要考虑。
1. 速度与准确性之间的权衡
YOLOv7在COCO数据集上实现了更高的峰值精度。例如,YOLOv7x达到了53.1%的mAP,而YOLOv5x为50.7%。然而,这以复杂性为代价。YOLOv5提供了更平滑的模型梯度;YOLOv5n(Nano)模型速度极快(73.6毫秒CPU速度)且轻量(2.6M参数),为YOLOv7未明确以相同粒度定位的超低资源环境创造了一个利基市场。
2. 架构和复杂性
YOLOv7采用基于拼接的E-ELAN架构,这增加了训练期间所需的内存带宽。这可能导致其训练速度比YOLOv5慢,并且更耗内存。相比之下,Ultralytics YOLOv5使用流线型架构,针对训练效率进行了高度优化,实现了更快的收敛和更低的内存使用,这对于计算预算有限的工程师来说是一个显著优势。
3. 易用性和开发者体验
这正是 Ultralytics YOLOv5 真正出彩的地方。Ultralytics 框架提供了一个统一的体验,并配备了强大的工具,用于数据增强、超参数演进和实验跟踪。
import torch
# Example: Loading YOLOv5s from PyTorch Hub for inference
model = torch.hub.load("ultralytics/yolov5", "yolov5s", pretrained=True)
# Inference on an image
results = model("https://ultralytics.com/images/zidane.jpg")
# Print results
results.print()
虽然YOLOv7拥有一个仓库,但它缺乏Ultralytics生态系统所支持的完善的、生产就绪的CI/CD管道、广泛的集成指南和社区支持。
4. 多功能性
尽管这两个模型主要是 object detection 架构,但围绕 YOLOv5 的 Ultralytics 生态系统已经发展到无缝支持 instance segmentation 和 image classification。YOLOv7 也支持这些任务,但通常需要不同的代码分支或分叉,而 Ultralytics 则提供了一种更统一的方法。
轻松部署
Ultralytics 模型开箱即用,支持多种导出格式。您可以使用简单的 CLI 命令或 Python 脚本,轻松将训练好的模型转换为适用于 Android 的 TFLite、适用于 iOS 的 CoreML 或适用于优化 GPU 推理的 TensorRT。
结论:您应该选择哪种模型?
YOLOv7 和 YOLOv5 之间的选择取决于您的项目优先级:
- 如果您的主要限制是最大准确性,并且您正在研究环境或高端硬件上运行,其中推理速度和内存占用是次要考虑因素,请选择 YOLOv7。
- 如果您需要一个可靠的、可用于生产的解决方案,请选择 Ultralytics YOLOv5。其易用性、高效训练、在边缘设备上的低延迟以及庞大的支持生态系统,使其成为大多数商业应用和开始计算机视觉之旅的开发人员的卓越选择。
展望未来:YOLO11
尽管 YOLOv5 和 YOLOv7 是优秀的模型,但计算机视觉领域发展迅速。对于寻求两全其美的开发者——超越 YOLOv7 的准确性和 YOLOv5 的速度/可用性——我们强烈建议探索Ultralytics YOLO11。
YOLO11 代表了最新演进,采用了无锚点架构,简化了训练流程并提升了所有任务的性能,包括 detect、segment、姿势估计和 obb。
探索其他模型
如果您有兴趣比较 YOLO 系列中的其他模型,请查看这些相关页面: