YOLO-NAS
概述
由Deci AI开发的YOLO-NAS是一种开创性的目标检测基础模型。它是先进的神经架构搜索技术的产物,精心设计以解决之前YOLO模型的局限性。在量化支持和准确性-延迟权衡方面有显著改进,YOLO-NAS代表了目标检测领域的一大飞跃。
YOLO-NAS概述。 YOLO-NAS采用量化感知块和选择性量化以实现最佳性能。该模型在转换为其INT8量化版本时,精度下降极小,显著优于其他模型。这些进步最终形成了一种具有前所未有的目标检测能力和卓越性能的卓越架构。
主要特点
- 量化友好的基础块: YOLO-NAS引入了一种新的基础块,对量化友好,解决了之前YOLO模型的显著局限性之一。
- 复杂的训练和量化: YOLO-NAS利用先进的训练方案和训练后量化来提升性能。
- AutoNAC优化和预训练: YOLO-NAS利用AutoNAC优化,并在COCO、Objects365和Roboflow 100等知名数据集上进行预训练。这种预训练使其在生产环境中的下游目标检测任务中极为适用。
预训练模型
通过Ultralytics提供的预训练YOLO-NAS模型体验下一代目标检测的强大功能。这些模型旨在在速度和准确性方面提供顶级性能。根据您的具体需求选择各种选项:
模型 | mAP | 延迟(毫秒) |
---|---|---|
YOLO-NAS S | 47.5 | 3.21 |
YOLO-NAS M | 51.55 | 5.85 |
YOLO-NAS L | 52.22 | 7.87 |
YOLO-NAS S INT-8 | 47.03 | 2.36 |
YOLO-NAS M INT-8 | 51.0 | 3.78 |
YOLO-NAS L INT-8 | 52.1 | 4.78 |
每个模型变体都旨在在平均精度均值(mAP)和延迟之间提供平衡,帮助您在性能和速度上优化目标检测任务。
使用示例
Ultralytics通过我们的ultralytics
Python包使YOLO-NAS模型易于集成到您的Python应用程序中。该包提供了一个用户友好的Python API来简化流程。
以下示例展示了如何使用ultralytics
包中的YOLO-NAS模型进行推理和验证:
推理和验证示例
在此示例中,我们在COCO8数据集上验证YOLO-NAS-s。
Example
此示例提供了YOLO-NAS的简单推理和验证代码。有关处理推理结果,请参阅预测模式。有关使用YOLO-NAS的其他模式,请参阅验证和导出。ultralytics
包中的YOLO-NAS不支持训练。
PyTorch预训练的*.pt
模型文件可以通过传递给NAS()
类在Python中创建模型实例:
支持的任务和模式
我们提供三种YOLO-NAS模型变体:小型(s)、中型(m)和大型(l)。每个变体都设计用于满足不同的计算和性能需求: - YOLO-NAS-s: 针对计算资源有限但效率至关重要的环境进行了优化。 - YOLO-NAS-m: 提供了一种平衡的方法,适用于通用目的的目标检测,具有更高的准确性。 - YOLO-NAS-l: 专为需要最高准确性的场景设计,计算资源限制较少。
以下是每个模型的详细概述,包括其预训练权重的链接、支持的任务以及与不同操作模式的兼容性。
模型类型 | 预训练权重 | 支持的任务 | 推理 | 验证 | 训练 | 导出 |
---|---|---|---|---|---|---|
YOLO-NAS-s | yolo_nas_s.pt | 目标检测 | ✅ | ✅ | ❌ | ✅ |
YOLO-NAS-m | yolo_nas_m.pt | 目标检测 | ✅ | ✅ | ❌ | ✅ |
YOLO-NAS-l | yolo_nas_l.pt | 目标检测 | ✅ | ✅ | ❌ | ✅ |
引用和致谢
如果您在研究或开发工作中使用YOLO-NAS,请引用SuperGradients:
@misc{supergradients,
doi = {10.5281/ZENODO.7789328},
url = {https://zenodo.org/record/7789328},
author = {Aharon, Shay and {Louis-Dupont} and {Ofri Masad} and Yurkova, Kate and {Lotem Fridman} and {Lkdci} and Khvedchenya, Eugene and Rubin, Ran and Bagrov, Natan and Tymchenko, Borys and Keren, Tomer and Zhilko, Alexander and {Eran-Deci}},
title = {Super-Gradients},
publisher = {GitHub},
journal = {GitHub repository},
year = {2021},
}
我们感谢Deci AI的SuperGradients团队在为计算机视觉社区创建和维护这一宝贵资源方面所做的努力。我们相信,YOLO-NAS凭借其创新的架构和卓越的目标检测能力,将成为开发者和研究人员的重要工具。
常见问题
什么是YOLO-NAS,它如何改进之前的YOLO模型?
YOLO-NAS由Deci AI开发,是一种利用先进的神经架构搜索(NAS)技术的最先进目标检测模型。它通过引入量化友好基本块和复杂训练方案等特性,解决了之前YOLO模型的局限性。这显著提高了性能,特别是在计算资源有限的环境中。YOLO-NAS还支持量化,即使在转换为INT8版本时也能保持高精度,增强了其在生产环境中的适用性。更多详情,请参阅概述部分。
如何将YOLO-NAS模型集成到我的Python应用程序中?
您可以使用ultralytics
包轻松将YOLO-NAS模型集成到您的Python应用程序中。以下是一个简单的示例,展示如何加载预训练的YOLO-NAS模型并进行推理:
from ultralytics import NAS
# 加载一个COCO预训练的YOLO-NAS-s模型
model = NAS("yolo_nas_s.pt")
# 在COCO8示例数据集上验证模型
results = model.val(data="coco8.yaml")
# 使用YOLO-NAS-s模型对'bus.jpg'图像进行推理
results = model("path/to/bus.jpg")
更多信息,请参阅推理和验证示例。
YOLO-NAS的关键特性是什么,为什么我应该考虑使用它?
YOLO-NAS引入了几个关键特性,使其成为目标检测任务的优越选择:
- 量化友好基本块:增强的架构,在量化后精度下降最小的情况下提高模型性能。
- 复杂训练和量化:采用先进的训练方案和训练后量化技术。
- AutoNAC优化和预训练:利用AutoNAC优化,并在COCO、Objects365和Roboflow 100等知名数据集上进行预训练。 这些特性使其具有高精度、高效性能,并适合在生产环境中部署。更多信息,请参阅关键特性部分。
YOLO-NAS模型支持哪些任务和模式?
YOLO-NAS模型支持各种目标检测任务和模式,如推理、验证和导出。它们不支持训练。支持的模型包括YOLO-NAS-s、YOLO-NAS-m和YOLO-NAS-l,每个模型都针对不同的计算能力和性能需求进行了优化。有关详细概述,请参阅支持的任务和模式部分。
是否有预训练的YOLO-NAS模型可用,如何访问它们?
是的,Ultralytics提供了可以直接访问的预训练YOLO-NAS模型。这些模型在COCO等数据集上进行了预训练,确保在速度和准确性方面具有高性能。您可以使用预训练模型部分提供的链接下载这些模型。以下是一些示例: