YOLOv5 对比 YOLOv7:平衡生态系统与架构
选择合适的目标检测模型对于开发人员和研究人员来说都是一个关键决策。在 YOLO (You Only Look Once) 家族的演进中,YOLOv5 和 YOLOv7 作为关键架构脱颖而出,塑造了计算机视觉的格局。YOLOv7 引入了显著的架构创新以提高准确性,而 Ultralytics YOLOv5 则通过专注于可用性、部署和强大的生态系统,彻底改变了开发人员的体验。
本指南对这两种模型进行了深入的技术比较,分析了它们的架构、在COCO dataset上的性能指标以及它们在实际应用中的适用性。
Ultralytics YOLOv5:工程标准
YOLOv5于2020年推出,重新定义了开源目标检测软件的期望。与主要作为研究代码存在的先前迭代不同,YOLOv5被设计为一个可用于生产的框架。它优先考虑易用性、可导出性和速度,使其成为构建实时推理应用公司的首选。
作者: Glenn Jocher
机构:Ultralytics
日期: 2020-06-26
GitHub:https://github.com/ultralytics/yolov5
文档:https://docs.ultralytics.com/models/yolov5/
YOLOv5 的主要优势
- 以用户为中心的设计: YOLOv5引入了简化的API和无缝的训练工作流,降低了训练自定义目标检测模型的门槛。
- 部署灵活性: 凭借对导出模式的原生支持,YOLOv5 模型可以轻松转换为 ONNX、CoreML、TFLite 和 TensorRT 等格式,以便在各种硬件上进行部署。
- 高效资源利用:该架构针对低内存消耗进行了优化,使其成为边缘AI设备的理想选择,例如NVIDIA Jetson或树莓派。
YOLOv7: “免费赠品包”方法
YOLOv7于2022年发布,通过架构优化,着重突破了准确性的界限。作者引入了几种新颖的概念,旨在在不增加推理成本的情况下改进特征学习,这种策略他们称之为“可训练的免费包”(trainable bag-of-freebies)。
作者:Chien-Yao Wang、Alexey Bochkovskiy 和 Hong-Yuan Mark LiaoChien-Yao Wang, Alexey Bochkovskiy, and Hong-Yuan Mark Liao
Organization:台湾中央研究院信息科学研究所
日期:2022-07-06
Arxiv:https://arxiv.org/abs/2207.02696
GitHub:https://github.com/WongKinYiu/yolov7
Docsultralytics
架构创新
YOLOv7集成了扩展高效层聚合网络 (E-ELAN) 以增强网络的学习能力。它还利用模型缩放技术,同时修改架构的深度和宽度。虽然这些复杂的架构更改对于提高mAP分数有效,但有时会使模型比YOLOv5中更直接的CSP-Darknet骨干网络更难修改或部署。
技术性能比较
比较这两种模型时,权衡通常在于原始精度和实际部署速度之间。YOLOv7 模型(特别是较大的变体)通常在 COCO val2017 数据集上实现更高的 mAP。然而,Ultralytics YOLOv5 在推理速度和参数效率方面保持优势,特别是其较小的变体(Nano 和 Small),这对于移动部署至关重要。
下表突出显示了性能指标。请注意YOLOv5n卓越的速度,它仍然是资源极其受限环境中最快的选择之一。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (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 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
指标分析
- 速度与精度: YOLOv7x实现了更高的53.1% mAP,使其适用于对每个像素都至关重要的高端安防或医疗分析。然而,对于视频分析或自主导航等应用,YOLOv5n在TensorRT上的1.12ms推理时间提供了更重的模型无法比拟的帧率能力。
- 训练效率:Ultralytics YOLOv5 采用“AutoAnchor”策略和先进的超参数演化,与 YOLOv7 所需的复杂重参数化方案相比,这通常能使训练收敛更快。
- 内存占用: 训练 Transformer 或 YOLOv7 等复杂架构通常需要高端 GPU(例如 A100)。相比之下,YOLOv5 的高效设计允许在消费级硬件上进行训练,普及了 AI 开发。
代码实现
Ultralytics YOLOv5最有力的论据之一是其Python API的简便性。加载预训练模型并运行推理仅需几行代码,这证明了该框架的成熟度。
import torch
# Load the YOLOv5s model from PyTorch Hub
model = torch.hub.load("ultralytics/yolov5", "yolov5s", pretrained=True)
# Define an image (url, local path, or numpy array)
img = "https://ultralytics.com/images/zidane.jpg"
# Run inference
results = model(img)
# Print results and show the image with bounding boxes
results.print()
results.show()
这种抽象级别使开发者能够专注于构建他们的业务解决方案,而不是调试模型架构。
理想用例
何时选择 YOLOv7
YOLOv7 是学术研究和硬件限制次于原始检测性能的场景的绝佳选择。
- 学术研究: 用于对最先进的检测技术进行基准测试。
- 高精度检测:例如制造质量控制,其中检测微小缺陷至关重要,且延迟不是主要考虑因素。
何时选择 Ultralytics YOLOv5
YOLOv5 仍然是用于快速开发和生产部署的行业标准。
- 边缘部署: 非常适合通过 TFLite 或 CoreML 导出在 iOS 和 Android 设备上运行。
- 机器人技术:其低延迟对于自主机器人技术所需的反馈回路至关重要。
- 多功能性:除了 detect 之外,YOLOv5 仓库还支持实例分割和图像分类,为多种视觉任务提供统一的代码库。
结论:现代发展之路
虽然YOLOv7展示了架构调优的强大能力,但Ultralytics YOLOv5对于需要可靠、文档完善且易于部署的解决方案的开发者来说,仍然是卓越的选择。其速度、准确性和生态系统支持的平衡确保其在全球生产环境中保持相关性。
然而,计算机视觉领域发展迅速。对于追求极致性能的用户,YOLO11代表了Ultralytics的最新演进。YOLO11在YOLOv5的可用性基础上,融入了尖端的基于Transformer的模块和无锚点设计,在准确性和效率方面超越了YOLOv5和YOLOv7。
对于支持目标检测、姿势估计和旋转框检测 (OBB)的面向未来的解决方案,强烈建议迁移到 Ultralytics YOLO11 框架。
了解更多比较
探索其他模型与 Ultralytics YOLO 系列的对比: