YOLOv7 与YOLOv5:详细技术比较
选择正确的物体检测架构是一项关键决策,会影响计算机视觉项目的速度、准确性和部署可行性。本页将对 YOLOv7和 Ultralytics YOLOv5之间的全面技术比较。我们将深入探讨它们的架构创新、性能基准和理想用例,帮助您选择最适合自己应用的机型。
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)和辅助头训练。辅助头生成从粗到细的分层标签,这些标签有助于在训练过程中指导学习过程,但在推理过程中会被移除,以保持速度。
什么是 "免费赠品袋"?
"Bag of Freebies "指的是在不增加推理成本的情况下提高物体检测模型准确性的一系列训练方法和数据增强技术。在YOLOv7 中,这包括从粗到细的引导标签分配等复杂策略。
YOLOv7的理想使用案例
由于注重高精度,YOLOv7 尤其适用于以下应用:
- 学术研究:以 SOTA 模型为基准,mAP 的每一部分都很重要。
- 高端GPU 部署:有强大硬件(如NVIDIA )A100)的应用,可处理较大的模型尺寸和内存要求。
- 静态分析:实时延迟比精度更不重要的情况,如分析高分辨率卫星图像或医学扫描。
Ultralytics YOLOv5:行业标准
Ultralytics YOLOv5 被广泛认为是最实用、最方便用户使用的物体检测模型之一。自 2020 年发布以来,由于它兼顾了速度、准确性和卓越的工程设计,已成为无数商业应用的支柱。
作者: Glenn JocherGlenn Jocher
组织:Ultralytics
日期:2020-06-26
GitHubyolov5
文档yolov5
结构和生态系统效益
YOLOv5 利用带有 PANet 颈部和 YOLOv3 头部的 CSP-Darknet53 主干网,针对不同的部署目标进行了优化。然而,它的真正优势在于Ultralytics 生态系统:
- 易于使用: YOLOv5 以其 "安装即运行 "的理念而著称,允许开发人员在几分钟内开始对自定义数据集进行训练。API 非常直观,文档也非常详尽。
- 训练效率:与更新、更复杂的架构相比,YOLOv5 在训练过程中需要的CUDA 内存通常更少,因此使用中端 GPU 的开发人员也可以使用它。
- 部署灵活:它支持一键导出到 ONNX, TensorRT、CoreML、TFLite 等,便于在从云服务器到手机的所有设备上部署。
- 维护良好的生态系统: Ultralytics 拥有频繁的更新、错误修复和庞大的社区,可确保模型在生产环境中保持稳定和安全。
YOLOv5的理想使用案例
YOLOv5 在要求可靠性和速度的实际应用场景中表现出色:
- 边缘人工智能: 等设备上运行。 NVIDIA Jetson 或 Raspberry Pi,因为轻巧的 Nano (
yolov5n)和小型(yolov5s)变体。 - 移动应用:通过CoreML 和TFLite 将其集成到iOS 和Android 应用程序中,以便在设备上进行推理。
- 快速原型开发:初创企业和开发人员需要快速从概念转化为 MVP,简化的工作流程可让他们从中受益。
- 工业自动化:为生产流水线提供可靠的检测功能,对延迟和稳定性要求极高。
详细比较分析
在决定使用YOLOv7 还是YOLOv5 时,除了mAP 分数之外,还有几个技术因素也会发挥作用。
1.速度与精度的权衡
YOLOv7 在COCO 数据集上达到了更高的峰值准确率。例如,YOLOv7x 的mAP 达到 53.1%,而 YOLOv5x 为 50.7%。然而,这是以复杂性为代价的。YOLOv5 提供了更平滑的梯度模型;YOLOv5n(纳米)模型速度惊人(CPU 速度为 73.6ms)、重量轻(2.6M 个参数),为超低资源环境创造了一个利基,而YOLOv7 并没有明确地以相同的粒度为目标。
2.架构和复杂性
YOLOv7 采用了基于连接的 E-ELAN 架构,这增加了训练时所需的内存带宽。与YOLOv5 相比,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 拥有一个存储库,但它缺乏完善的生产就绪 CI/CD 管道、广泛的集成指南以及支持Ultralytics 生态系统的社区支持。
4.多功能性
虽然这两种模型主要都是对象检测架构,但围绕YOLOv5 的Ultralytics 生态系统已经发展到可以无缝支持实例分割和图像分类。YOLOv7 也支持这些任务,但往往需要代码的不同分支或分叉,而Ultralytics 提供了一种更统一的方法。
轻松部署
Ultralytics 模型支持多种输出格式。您可以轻松地将训练好的模型转换为 TFLite用于Android、 CoreML或 TensorRT使用简单的CLI 命令或Python 脚本进行优化的GPU 推理。
结论:您应该选择哪种模型?
在YOLOv7 和YOLOv5 之间做出选择取决于项目的优先级:
- 如果您的主要限制条件是最大精度,并且您是在研究环境下或在高端硬件上运行,推理速度和内存占用是次要考虑因素,那么请选择YOLOv7。
- 如果您需要可靠的生产就绪型解决方案,请选择Ultralytics YOLOv5。它易于使用、训练效率高、在边缘设备上的延迟低以及庞大的支持生态系统,使其成为大多数商业应用和开发人员开始计算机视觉之旅的上佳选择。
展望未来:YOLO11
虽然YOLOv5 和YOLOv7 都是出色的模型,但计算机视觉领域的发展日新月异。对于寻求两全其美--超越YOLOv7 的准确性和YOLOv5的速度/可用性--的开发人员YOLOv5强烈建议探索 Ultralytics YOLO11.
YOLO11 代表了最新的演进,采用无锚架构,简化了训练流水线,提高了所有任务的性能,包括检测、分割、姿势估计 和定向边界旋转框检测)。
探索其他模型
如果您想比较YOLO 系列的其他型号,请查看相关页面: