YOLOv5 与YOLOv7:平衡生态系统与架构
对于开发人员和研究人员来说,选择正确的物体检测模型是一项至关重要的决策。在YOLO (You Only Look Once,你只看一次)系列的发展过程中,YOLO 应运而生、 YOLOv5和 YOLOv7是影响计算机视觉发展的关键架构。YOLOv7 引入了提高准确性的重大架构创新,而Ultralytics YOLOv5 则彻底改变了开发人员的体验,重点关注可用性、部署和强大的生态系统。
本指南对这两种模型进行了深入的技术比较,分析了它们的架构、在COCO 数据集上的性能指标以及在实际应用中的适用性。
Ultralytics YOLOv5:工程标准
YOLOv5 于 2020 年推出,重新定义了对开源对象检测软件的期望。与之前主要作为研究代码存在的迭代版本不同,YOLOv5 是作为产品就绪框架而设计的。它将易用性、可导出性和速度放在首位,使其成为公司构建实时推理应用的首选。
作者: Glenn JocherGlenn Jocher
组织:Ultralytics
日期:2020-06-26
GitHubyolov5
文档yolov5
YOLOv5的主要优势
- 以用户为中心的设计: YOLOv5 引入了简化的应用程序接口和无缝的培训工作流程,降低了培训自定义对象检测模型的门槛。
- 部署灵活:通过对导出模式的本地支持,YOLOv5 模型可轻松转换为以下格式 ONNX、CoreML、TFLite 和 TensorRT等格式,以便在各种硬件上部署。
- 高效的资源利用:该架构针对低内存消耗进行了优化,是NVIDIA Jetson或 Raspberry Pi 等边缘人工智能设备的理想之选。
YOLOv7:"免费袋 "方法
YOLOv7 于 2022 年发布,主要侧重于通过架构优化来推动准确性的发展。作者引入了几个新概念,旨在改进特征学习,同时不增加推理成本,他们将这种策略称为 "可训练的免费样本袋"。
作者: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),以增强网络的学习能力。它还采用了模型缩放技术,可同时修改架构的深度和宽度。与YOLOv5 中更直接的 CSP-Darknet 骨干网相比,这些复杂的架构变化虽然能有效提高mAP 分数,但有时会使模型更难修改或部署。
技术性能比较
在比较这两种模型时,通常需要在原始精度和实际部署速度之间进行权衡。在COCO val2017 数据集上,YOLOv7 模型(特别是较大的变体)通常能获得更高的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.12 毫秒推理时间所提供的帧速率能力是较重的模型所无法比拟的。
- 训练效率: Ultralytics YOLOv5 采用了 "AutoAnchor "策略和先进的超参数演化技术,与YOLOv7 所需的复杂参数重设方案相比,在训练过程中收敛速度更快。
- 内存占用:训练变压器或像YOLOv7 这样的复杂架构通常需要高端 GPU(如 A100)。相比之下,YOLOv5 的高效设计允许在消费级硬件上进行训练,从而实现了人工智能开发的平民化。
代码执行
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设备上运行。
- 机器人:低延迟对于自主机器人所需的反馈回路至关重要。
- 多功能性:除检测外,YOLOv5 资源库还支持实例分割和图像分类,为多种视觉任务提供了统一的代码库。
结束语现代前进之路
而YOLOv7 则展示了架构调整的威力、 Ultralytics YOLOv5仍然是需要可靠、文档齐全、易于部署的解决方案的开发人员的最佳选择。它兼顾了速度、准确性和生态系统支持,确保了它在全球生产环境中的实用性。
然而,计算机视觉领域的发展日新月异。对于那些追求绝对最佳性能的人来说 YOLO11代表了Ultralytics 的最新发展。YOLO11 以YOLOv5 的可用性为基础,采用了最先进的transformer模块和无锚设计,在精确度和效率方面超越了YOLOv5 和YOLOv7 。
要想获得支持对象检测、姿势估计 和定向边框(旋转框检测)的面向未来的解决方案,强烈建议迁移到Ultralytics YOLO11 框架。
发现更多比较
了解其他型号与Ultralytics YOLO 系列的对比情况: