YOLOv5 与YOLOv6.0:平衡生态系统成熟度与工业精度
在快速发展的计算机视觉领域,选择合适的物体检测架构是开发人员和研究人员的关键决策。本比较深入探讨了 Ultralytics YOLOv5和美团YOLOv6.0 之间的技术区别。前者是一个以其易用性和强大的生态系统而闻名的传奇模型,后者则是一个专为工业应用而设计的框架。虽然这两种模型在对象检测方面都很出色,但它们满足了不同的部署需求和工作流程偏好。
Ultralytics YOLOv5
作者: Glenn JocherGlenn Jocher
组织: Ultralytics
日期:2020-06-26
GitHubyolov5https://github.com/ultralytics/yolov5
文档 :yolov5
自 2020 年发布以来,YOLOv5 已成为全球最受欢迎、最值得信赖的人工智能机型之一。基于 PyTorch框架上构建的,它将可用性、可输出性和 "开箱即用 "的性能放在首位,实现了最先进视觉人工智能的平民化。
建筑与生态系统
YOLOv5 采用 CSPDarknet 主干网,结合 PANet 颈部和 YOLOv3 样式的头部。其架构基于锚点,利用锚点框来预测物体位置。与众不同的关键在于它与成熟生态系统的整合。与许多研究代码库不同,YOLOv5 是为工程师设计的产品,其特点是可无缝导出为以下格式 ONNX、CoreML 和TFLite 等格式的无缝导出,使其在移动和边缘部署方面具有极高的通用性。
主要优势
- 易用性:YOLOv5 体验 "的定义就是简单易用。从训练自定义数据集到运行推理,工作流程简化且文档齐全。
- 维护良好的生态系统:积极的维护、频繁的更新和庞大的社区让用户受益匪浅。与 MLOps 工具集成,如 Weights & Biases和 Comet等 MLOps 工具的集成。
- 多功能性:除标准检测外,资源库还支持实例分割和图像分类,从而在单一代码库中提供了多任务解决方案。
- 内存效率:与transformer模型相比,YOLOv5 在训练过程中占用的内存相对较少,因此可以在消费级 GPU 上使用。
无缝部署
YOLOv5 注重可导出性,开发人员可以毫不费力地将模型部署到从云服务器到 Raspberry Pi 或NVIDIA Jetson 等边缘设备的各种环境中。
美团YOLOv6.0
作者李楚怡、李璐璐、耿一飞、蒋洪亮、程萌、张博、柯在丹、徐晓明、储祥祥
组织:美团网
日期:2023-01-13
Arxiv :https://arxiv.org/abs/2301.05586
GitHubYOLOv6https://github.com/meituan/YOLOv6
文档:ultralytics
YOLOv6.0 由美团的视觉人工智能团队开发,定位为专注于平衡速度和精度的工业竞争者,特别适用于硬件感知应用。它旨在通过使用 TensorRT进行优化。
建筑与工业重点
YOLOv6 采用了 EfficientRep 骨干和 Rep-PAN 颈部,利用重参数化技术(RepVGG 风格)来提高推理速度,同时不影响准确性。在训练过程中,该模型使用多分支结构,在推理过程中会折叠成单分支结构。3.0 版引入了自馏分等策略,以进一步提高平均精度(mAP)。
优势与劣势
- GPU 优化:该架构针对标准GPU 推理进行了大量调整,在使用TensorRT 时,经常能在NVIDIA T4 显卡上达到较高的 FPS 基准。
- 量化友好:美团为训练后量化(PTQ)和量化感知训练(QAT)提供特定支持,这对某些工业部署场景至关重要。
- 功能有限:虽然YOLOv6 在检测方面表现出色,但它缺乏全面的Ultralytics 套件中广泛的本地多任务支持(如姿势估计 或旋转框检测)。
- 复杂性:与Ultralytics 模型的即插即用特性相比,重新参数化步骤和特定的训练管道会带来复杂性。
性能正面交锋
下面的比较突出了性能权衡。YOLOv6.0 的目标是在功能强大的硬件上达到最高精度,但往往会牺牲参数效率。相比之下,Ultralytics YOLOv5 保持了显著的平衡,提供了轻量级模型,在CPU环境和边缘设备的实时推理中表现出色。
| 模型 | 尺寸 (像素) | 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 |
| YOLOv6.0n | 640 | 37.5 | - | 1.17 | 4.7 | 11.4 |
| YOLOv6.0s | 640 | 45.0 | - | 2.66 | 18.5 | 45.3 |
| YOLOv6.0m | 640 | 50.0 | - | 5.28 | 34.9 | 85.8 |
| YOLOv6.0l | 640 | 52.8 | - | 8.95 | 59.6 | 150.7 |
分析
与最小的YOLOv6 变体(4.7M)相比,YOLOv5n 所需的参数(2.6M)显著减少,是移动应用中极为高效的解决方案。虽然YOLOv6.0 在更大的规模下实现了更高的峰值mAP ,但它是以增加模型规模(FLOP 和参数)为代价的。对于以CPU 部署为目标的开发人员(常见于机器人或低功耗监控),YOLOv5 的CPU 速度经过了明确的基准测试和优化,而YOLOv6 则主要侧重于GPU 加速。
培训方法和经验
两个生态系统的培训体验大相径庭。Ultralytics 优先采用低代码、高灵活性的方法。
Ultralytics 工作流程
YOLOv5 可通过PyTorch Hub 直接集成,允许用户使用最少的模板代码加载和运行模型。训练脚本会自动处理从数据增强到日志记录的所有工作。
import torch
# Load YOLOv5s from PyTorch Hub
model = torch.hub.load("ultralytics/yolov5", "yolov5s")
# Perform inference
img = "https://ultralytics.com/images/zidane.jpg"
results = model(img)
results.print()
工业工作流程
YOLOv6 通常需要更多的手动设置,包括克隆存储库、为重新参数化骨干网设置特定配置文件,以及运行与外部 MLOps 工具集成度较低的脚本。虽然功能强大,但它要求对特定的架构限制(如自蒸馏参数)有更深入的了解,以达到所报告的基准。
理想用例
在这些型号中做出选择取决于您在硬件、精度和开发速度方面的具体限制。
- Ultralytics YOLOv5:快速原型开发、边缘部署和社区支持的首选。如果您需要在 Raspberry Pi、手机或CPU 服务器上进行部署,YOLOv5 的轻量级特性和导出支持是无与伦比的。对于需要多功能代码库的研究人员来说,YOLOv5 也是理想之选,它不仅支持分割和分类,还支持检测。
- 美团YOLOv6.0:最适合有高端 GPU 的固定工业环境,最大化mAP 是唯一的优先事项。如果您正在构建一个在NVIDIA T4/A10 服务器上运行的工厂质量保证系统,并且拥有对重新参数化模型进行微调的工程资源,那么YOLOv6 将是您的最佳选择。
结论
Ultralytics YOLOv5 一直是计算机视觉领域的基石,因其性能均衡、易于使用和生态系统繁荣而备受赞誉。YOLOv5 能够在从边缘到云端的各种硬件上提供可靠的结果,这使它成为大多数优先考虑多功能性和上市时间的开发人员的上佳选择。
虽然YOLOv6.0 为工业GPU 推理引入了令人印象深刻的架构创新,但它缺乏Ultralytics 模型的全面生态系统和多平台适应性。对于那些追求绝对最新性能和效率的用户,我们建议探索 Ultralytics YOLO11,它在精度和速度上都超过了YOLOv5 和YOLOv6 ,同时保留了用户友好的Ultralytics API。
对于专业任务,开发人员还可以考虑Ultralytics 文档中的其他模型,例如 YOLOv8, YOLOv9, YOLOv10或transformerRT-DETR.
在Ultralytics 模型文档中探索视觉人工智能的全部潜力。