YOLO-NAS#
请注意,YOLO-NAS 的最初创建者 Deci 已被 NVIDIA 收购。因此,这些模型不再由 Deci 进行积极维护。Ultralytics 将继续支持这些模型的使用,但预计原团队不会再发布任何更新。
概述#
YOLO-NAS 由 Deci AI 开发,是一个具有突破性的目标检测基础模型。它是先进的 Neural Architecture Search 技术的产物,经过精心设计,旨在解决先前 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 | 延迟 (ms) |
|---|---|---|
| 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 来简化这一过程。
以下示例展示了如何将 YOLO-NAS 模型与 ultralytics 软件包结合使用以进行推理和验证:
推理和验证示例#
在本例中,我们在 COCO8 数据集上验证 YOLO-NAS-s。
此示例提供了适用于 YOLO-NAS 的简单推理和验证代码。有关处理推理结果的信息,请参阅预测模式。有关在其他模式下使用 YOLO-NAS 的信息,请参阅验证和导出。ultralytics 软件包上的 YOLO-NAS 不支持训练。
可以将预训练的 PyTorch *.pt 模型文件传递给 NAS() 类,以便在 python 中创建模型实例:
from ultralytics import NAS
# Load a COCO-pretrained YOLO-NAS-s model
model = NAS("yolo_nas_s.pt")
# Display model information (optional)
model.info()
# Validate the model on the COCO8 example dataset
results = model.val(data="coco8.yaml")
# Run inference with the YOLO-NAS-s model on the 'bus.jpg' image
results = model("path/to/bus.jpg")支持的任务和模式#
我们提供三种 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/records/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 由 Deci AI 开发,是一个利用先进的神经架构搜索(NAS)技术的最先进的目标检测模型。它通过引入量化友好的基础模块和复杂的训练方案等特性,解决了以往 YOLO 模型的局限性。这带来了性能的显着提升,尤其是在计算资源有限的环境中。YOLO-NAS 还支持量化,即使转换为 INT8 版本也能保持高准确率,从而增强了其对生产环境的适应性。有关更多详细信息,请参阅概述部分。
你可以使用
ultralytics软件包轻松将 YOLO-NAS 模型集成到你的 Python 应用中。以下是如何加载预训练的 YOLO-NAS 模型并执行推理的简单示例:from ultralytics import NAS # Load a COCO-pretrained YOLO-NAS-s model model = NAS("yolo_nas_s.pt") # Validate the model on the COCO8 example dataset results = model.val(data="coco8.yaml") # Run inference with the YOLO-NAS-s model on the 'bus.jpg' image results = model("path/to/bus.jpg")有关更多信息,请参阅推理和验证示例。
YOLO-NAS 模型支持各种目标检测任务和模式,例如推理、验证和导出。它们不支持训练。支持的模型包括 YOLO-NAS-s、YOLO-NAS-m 和 YOLO-NAS-l,每个模型都针对不同的计算能力和性能需求进行了定制。有关详细概述,请参阅支持的任务和模式部分。
是的,Ultralytics 提供了你可以直接访问的预训练 YOLO-NAS 模型。这些模型在 COCO 等数据集上进行过预训练,确保了速度和准确率方面的高性能。你可以使用预训练模型部分中提供的链接下载这些模型。以下是一些示例: