YOLO-NAS
重要更新
请注意,YOLO-NAS 的原始创建者 Deci 已被 NVIDIA 收购。因此,这些模型不再由 Deci 积极维护。Ultralytics 将继续支持这些模型的使用,但预计不会再有来自原始团队的更新。
概述
由 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 | 延迟 (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 已经通过我们的方式,使得 YOLO-NAS 模型可以轻松集成到您的 Python 应用程序中 ultralytics
python 包。该包提供了一个用户友好的 Python API,以简化流程。
以下示例展示了如何将 YOLO-NAS 模型与以下工具结合使用: ultralytics
用于推理和验证的软件包:
推理和验证示例
在此示例中,我们在 COCO8 数据集上验证 YOLO-NAS-s。
示例
此示例为 YOLO-NAS 提供了简单的推理和验证代码。有关处理推理结果,请参见 预测 模式。有关将 YOLO-NAS 与其他模式结合使用的信息,请参阅 验证 和 导出。YOLO-NAS 在 ultralytics
软件包不支持训练。
PyTorch pretrained *.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")
可以使用 CLI 命令直接运行模型:
# Load a COCO-pretrained YOLO-NAS-s model and validate it's performance on the COCO8 example dataset
yolo val model=yolo_nas_s.pt data=coco8.yaml
# Load a COCO-pretrained YOLO-NAS-s model and run inference on the 'bus.jpg' image
yolo predict model=yolo_nas_s.pt source=path/to/bus.jpg
支持的任务和模式
我们提供三种 YOLO-NAS 模型变体:Small (s)、Medium (m) 和 Large (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?它如何改进先前的 YOLO 模型?
YOLO-NAS 由 Deci AI 开发,是一种先进的目标检测模型,利用了先进的神经网络架构搜索 (NAS) 技术。它通过引入诸如量化友好基本块和复杂的训练方案等特性,克服了以往 YOLO 模型的局限性。这导致性能的显着提升,尤其是在计算资源有限的环境中。YOLO-NAS 还支持量化,即使转换为 INT8 版本也能保持高精度,从而提高其对生产环境的适应性。有关更多详情,请参阅 概述 部分。
如何将 YOLO-NAS 模型集成到我的 Python 应用程序中?
您可以使用 ultralytics
package。这是一个简单的示例,展示了如何加载预训练的 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 引入了几项关键特性,使其成为目标检测任务的优质选择:
- 量化友好的基本块: 增强的架构,可在量化后以最小的精度下降提高模型性能。
- 复杂的训练和量化: 采用先进的训练方案和训练后量化技术。
- 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 等数据集上进行了预训练,从而确保了速度和准确性方面的高性能。您可以使用 预训练模型部分中提供的链接下载这些模型。以下是一些示例: