跳至内容

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-LAS 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 Python -NAS 型号可通过我们的 ultralytics python 软件包。该软件包提供了用户友好的Python API,以简化流程。

下面的示例展示了如何使用YOLO-NAS 模型与 ultralytics 用于推理和验证的软件包:

推理和验证示例

在本例中,我们在 COCO8 数据集上验证了YOLO-NAS-s。

示例

本例为YOLO-NAS 提供了简单的推断和验证代码。有关推理结果的处理,请参见 预测 模式。有关在其他模式下使用YOLO-NAS,请参阅 瓦尔出口.YOLO-NAS上的 ultralytics 软件包不支持培训。

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")

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-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 应用程序中?

您可以使用以下工具轻松地将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引入了几项关键功能,使其成为物体检测任务的最佳选择:

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

📅创建于 1 年前 ✏️已更新 16 天前

评论