跳转至内容

YOLO-NAS

重要更新

请注意,Deci(YOLO-NAS 的原始创建者)已被 NVIDIA 收购。因此,这些模型不再由 Deci 积极维护。Ultralytics 继续支持这些模型的使用,但预计原始团队不会再提供更新。

概述

由Deci AI开发的YOLO-NAS是一个开创性的目标检测基础模型。它是先进的神经架构搜索技术的产物,经过精心设计,旨在解决以前YOLO模型的局限性。凭借在量化支持和准确性-延迟权衡方面的显著改进,YOLO-NAS代表了目标检测领域的一大飞跃。

模型示例图片YOLO-NAS概述。 YOLO-NAS 采用量化感知块和选择性量化以实现最佳性能。该模型在转换为 INT8 量化版本时,精度下降极小,相较于其他模型有显著改进。这些进步最终形成了一个卓越的架构,具有前所未有的目标 detect 能力和出色的性能。

主要功能

  • 量化友好型基础模块:YOLO-NAS引入了一种对量化友好的新型基础模块,解决了以前YOLO模型的一个显著限制。
  • 精密训练与量化:YOLO-NAS 利用先进的训练方案和训练后量化来提升性能。
  • AutoNAC优化与预训练:YOLO-NAS利用AutoNAC优化,并在COCO、Objects365和Roboflow 100等知名数据集上进行预训练。这种预训练使其非常适合生产环境中的下游目标detect任务。

预训练模型

体验 Ultralytics 提供的预训练 YOLO-NAS 模型所带来的下一代目标检测的强大功能。这些模型旨在提供一流的速度和准确性性能。从各种根据您的特定需求量身定制的选项中进行选择:

性能

模型mAP延迟 (ms)
YOLO-NAS S47.53.21
YOLO-NAS M51.555.85
YOLO-NAS L52.227.87
YOLO-NAS S INT-847.032.36
YOLO-NAS M INT-851.03.78
YOLO-NAS L INT-852.14.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 模型的三种变体:小型 (s)、中型 (m) 和大型 (l)。每种变体都旨在满足不同的计算和性能需求:

  • YOLO-NAS-s:针对计算资源有限但效率至关重要的环境进行了优化。
  • YOLO-NAS-m:提供了一种平衡的方法,适用于具有更高精度的通用目标检测
  • YOLO-NAS-l:专为需要最高精度且计算资源限制较少的场景量身定制。

以下是每个模型的详细概述,包括其预训练权重的链接、它们支持的任务以及它们与不同操作模式的兼容性。

模型类型预训练权重支持的任务推理验证训练导出
YOLO-NAS-syolo_nas_s.pt目标检测
YOLO-NAS-myolo_nas_m.pt目标检测
YOLO-NAS-lyolo_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 凭借其创新的架构和卓越的 detect 能力,将成为开发者和研究人员的重要工具。

常见问题

什么是YOLO-NAS,它如何改进了之前的YOLO模型?

YOLO-NAS 由 Deci AI 开发,是一种最先进的目标检测模型,利用先进的神经架构搜索 (NAS) 技术。它通过引入量化友好的基本块和复杂的训练方案等特性,解决了之前 YOLO 模型的局限性。这显著提升了性能,尤其是在计算资源有限的环境中。YOLO-NAS 还支持量化,即使转换为 INT8 版本也能保持高精度,增强了其在生产环境中的适用性。有关更多详细信息,请参阅概述部分。

如何将 YOLO-NAS 模型集成到我的 Python 应用程序中?

您可以轻松地将 YOLO-NAS 模型集成到您的 Python 应用程序中,使用 ultralytics 包。以下是一个简单的示例,展示如何加载预训练的 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 引入了几个关键特性,使其成为目标 detect 任务的卓越选择:

  • 量化友好的基本块: 增强的架构,可在量化后以最小的精度下降提高模型性能。
  • 复杂的训练和量化: 采用先进的训练方案和训练后量化技术。
  • 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 等数据集上进行了预训练,确保了速度和准确性方面的高性能。您可以使用 预训练模型 部分中提供的链接下载这些模型。以下是一些示例:



📅 2 年前创建 ✏️ 4 天前更新
glenn-jocherRizwanMunawarY-T-GpderrengerLaughing-qMatthewNoyce

评论