YOLOv5 vs. DAMO-YOLO:详细技术对比
在快速发展的计算机视觉领域,选择正确的物体检测架构是项目成功的关键。本比较探讨了两种重要的模型: Ultralytics YOLOv5和YOLO-YOLO,前者是全球采用的行业标准,以其可靠性和速度著称,后者则是阿里巴巴集团推出的以研究为重点的模型,引入了新颖的架构搜索技术。
虽然这两种模型都以解决物体检测任务为目标,但它们满足了不同的需求。YOLOv5 优先考虑易用性、部署多样性和实际性能平衡,而YOLO 则侧重于通过神经架构搜索(NAS)和大量特征融合机制来推动学术界的发展。
性能指标和基准
在选择用于生产的模型时,了解推理速度和检测精度之间的权衡至关重要。下面的数据重点说明了这些模型在COCO 数据集(物体检测的标准基准)上的表现。
| 模型 | 尺寸 (像素) | 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 |
| DAMO-YOLOt | 640 | 42.0 | - | 2.32 | 8.5 | 18.1 |
| DAMO-YOLOs | 640 | 46.0 | - | 3.45 | 16.3 | 37.8 |
| DAMO-YOLOm | 640 | 49.2 | - | 5.09 | 28.2 | 61.8 |
| DAMO-YOLOl | 640 | 50.8 | - | 7.18 | 42.1 | 97.3 |
结果分析
这些数据揭示了设计理念的截然不同。YOLOv5n(Nano) 在速度和效率方面是无可争议的冠军,它在GPU 上的推理时间仅为令人难以置信的1.12 毫秒,而在CPU 上的性能也相当可观。这使它成为对低延迟要求极高的边缘人工智能应用的理想选择。
YOLO 型号,如 DAMO-YOLOl略有提高 平均精度mAP),峰值为 50.8但代价是CPU 性能指标不透明。YOLO 未报告CPU 速度,这表明它主要针对高端GPU 环境进行了优化,从而限制了其在移动应用程序或嵌入式系统等更广泛部署场景中的灵活性。
Ultralytics YOLOv5:多功能行业标准
作者:Glenn JocherGlenn Jocher
组织:Ultralytics
日期:2020-06-26
GitHubyolov5
文档yolov5
自发布以来,YOLOv5 已成为计算机视觉领域的基石。它以 PyTorch构建,在复杂性和可用性之间取得了平衡,提供了一种 "包含电池 "的体验。它的架构采用了 CSPDarknet 主干网和 PANet 颈网,能有效地聚合不同尺度的特征,以detect 各种大小的物体。
主要优势
- 易于使用: Ultralytics 优先考虑开发人员体验 (DX)。通过简单的Python API 和直观的CLI 命令,用户可以在几分钟内完成模型的训练和部署。
- 维护良好的生态系统: YOLOv5 以活跃的社区和频繁的更新为后盾,确保与最新工具的兼容性,包括用于无缝模型管理的Ultralytics HUB。
- 多功能性:除标准检测外,YOLOv5 还支持实例分割和图像分类,使开发人员能够使用单一框架处理多种视觉任务。
- 部署灵活:从导出到ONNX和TensorRT ,到在iOS 和Android 上运行,YOLOv5 可在任何地方运行。
简化工作流程
YOLOv5 与流行的 MLOps 工具无缝集成。您可以使用以下工具track 您的实验 Weights & Biases或 Comet跟踪您的实验,确保您的训练运行具有可重复性并易于分析。
DAMO-YOLO:研究驱动的准确性
作者Xianzhe Xu, Yiqi Jiang, Weihua Chen, Yilun Huang, Yuan Zhang, and Xiuyu Sun
Organization:阿里巴巴集团
日期:2022-11-23
Arxiv:https://arxiv.org/abs/2211.15444v2
GitHub:YOLO
YOLO 是阿里巴巴 DAMO 学院开发的一种方法。它引入了一整套先进技术,包括用于自动设计高效骨干网(MAE-NAS)的神经架构搜索(NAS)、称为 RepGFPN(重参数广义特征金字塔网络)的重颈结构和称为 ZeroHead 的轻头结构。
主要特点
- MAE-NAS 主干网:使用一种名为 MAE-NAS 的方法,在特定延迟限制条件下找到最佳网络结构,但这可能会使手动修改架构变得更加复杂。
- AlignedOTA 标签分配:它采用一种名为 AlignedOTA 的动态标签分配策略来解决分类和回归任务之间的错位问题。
- 注重准确性: YOLO 的主要目标是在COCO 数据集上最大限度地提高mAP ,使其成为竞赛或学术研究的有力竞争者,在这些领域中,精确度的每一个零头都至关重要。
结构和运行差异
YOLOv5 和YOLO 之间的分歧不仅仅在于简单的指标,还在于它们的核心设计理念和操作要求。
建筑学:简单与复杂
YOLOv5 采用手工制作的直观架构。其基于锚点的方法易于理解和调试。相比之下,YOLO -YOLO 依赖于大量的重新参数化和自动搜索(NAS)。虽然 NAS 可以产生高效的结构,但它通常会产生 "黑箱 "模型,开发人员很难对其进行定制或解释。此外,与YOLOv5 的高效 CSP 设计相比,YOLO -YOLOv5 中的重颈(RepGFPN)增加了训练期间的计算负荷,需要更多GPU 内存。
训练效率和记忆力
Ultralytics 模型以其训练效率而闻名。YOLOv5 通常需要较少的CUDA 内存,因此可以在消费级 GPU 上进行训练。而YOLO 则需要复杂的重新参数化和蒸馏过程,通常需要高端硬件才能有效地进行训练。此外,Ultralytics 还提供了庞大的预训练权重库和自动超参数调整功能,以加快收敛速度。
生态系统和易用性
也许最大的不同在于生态系统。YOLOv5 不仅仅是一个模型,它还是一整套工具的一部分。
- 文档: Ultralytics 提供广泛的多语言文档,从数据收集到部署,为用户提供指导。
- 社区:庞大的全球社区可确保问题得到快速解决,并可随时提供教程。
- 集成:本机支持 Roboflow数据集和NVIDIA Jetson等部署目标的本地支持,简化了整个管道。
YOLO 主要是一个研究资源库,缺乏这种级别的完善支持,因此将其集成到商业产品中的难度大大增加。
实际应用案例
在这些模式中如何选择,往往取决于具体的部署环境。
YOLOv5 的卓越之处
- 智能农业:它对资源的要求很低,非常适合在无人机或自动拖拉机上运行,用于作物病害检测。
- 制造业:在工业自动化领域,YOLOv5 的高速度可对快速移动的传送带进行实时缺陷检测。
- 零售分析:对于对象计数和队列管理,YOLOv5 的CPU 性能可在现有商店硬件上实现经济高效的部署。
YOLO 的优势
- 学术研究:研究 RepGFPN 或 NAS 技术功效的研究人员会发现YOLO 是一个非常有价值的基线。
- 高端监控:在使用专用服务器级 GPU 的场景中,精度优先于延迟,DAMO-YOLO 可在复杂场景中提供精确检测。
代码示例:开始使用YOLOv5
由于使用了Ultralytics Python 软件包,运行YOLOv5 变得非常简单。下面的示例演示了如何加载预训练模型并在图像上运行推理。
import torch
# Load a pre-trained YOLOv5s model from PyTorch Hub
model = torch.hub.load("ultralytics/yolov5", "yolov5s", pretrained=True)
# Define an image URL or local path
img = "https://ultralytics.com/images/zidane.jpg"
# Run inference
results = model(img)
# Print results to the console
results.print()
# Show the image with bounding boxes
results.show()
结论
YOLOv5 和YOLO 都为物体检测领域做出了重大贡献。YOLO 展示了神经架构搜索和高级特征融合在实现高精度基准方面的潜力。
然而,对于绝大多数开发人员、工程师和企业而言,Ultralytics 的功能却并不强大、 Ultralytics YOLOv5仍然是最佳选择。它无与伦比的易用性、强大的性能平衡以及维护良好的生态系统的安全性,确保了项目从原型到生产的过程中摩擦最小。YOLOv5 能够在 CPU 和 GPU 上高效地部署,而且对训练内存的要求较低,这使得YOLOv5 成为实际应用中非常实用的解决方案。
对于那些希望利用最新计算机视觉技术的用户,Ultralytics 不断创新,推出了 YOLOv8和最先进的 YOLO11.这些更新的型号建立在YOLOv5 的坚实基础上,具有更高的速度、精度和任务多样性。
探索其他比较
要进一步了解这些模式如何融入更广泛的生态系统,请浏览这些详细的比较: