YOLO-NAS#
请注意,Deci(YOLO-NAS 的原始创建者)已被 NVIDIA 收购。因此,Deci 不再积极维护这些模型。Ultralytics 仍支持使用这些模型,但原团队预计不会再提供更新。
概述#
YOLO-NAS 由 Deci AI 开发,是一款开创性的目标检测基础模型。它采用先进的神经架构搜索技术,经过精心设计,旨在解决先前 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,可简化整个流程。
以下示例展示如何使用 ultralytics 软件包中的 YOLO-NAS 模型进行推理和验证:
推理和验证示例#
在此示例中,我们在 COCO8 数据集上验证 YOLO-NAS-s。
此示例提供了用于 YOLO-NAS 的简单推理和验证代码。有关如何处理推理结果,请参阅预测模式。要在其他模式下使用 YOLO-NAS,请参阅验证和导出。ultralytics 软件包中的 YOLO-NAS 不支持训练。
可以将 PyTorch 预训练的 *.pt 模型文件传递给 NAS() 类,以便在 Python 中创建模型实例:
from ultralytics import NAS
# 加载经过 COCO 预训练的 YOLO-NAS-s 模型
model = NAS("yolo_nas_s.pt")
# 显示模型信息(可选)
model.info()
# 在 COCO8 示例数据集上验证模型
results = model.val(data="coco8.yaml")
# 使用 YOLO-NAS-s 模型对图像 'bus.jpg' 执行推理
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 # 加载经过 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-s、YOLO-NAS-m 和 YOLO-NAS-l,分别适用于不同的计算能力和性能需求。详细概览请参阅支持的任务和模式部分。
是的,Ultralytics 提供可直接获取的预训练 YOLO-NAS 模型。这些模型在 COCO 等数据集上进行了预训练,因此兼具出色的速度和精度。你可以通过预训练模型部分提供的链接下载这些模型。以下是一些示例: