YOLO-NAS
Важное обновление
Обратите внимание, что компания Deci, создавшая YOLO, была приобретена NVIDIA. В результате Deci перестала активно поддерживать эти модели. Ultralytics продолжает поддерживать использование этих моделей, но дальнейших обновлений от команды разработчиков не ожидается.
Обзор
Разработанная компанией Deci AI, YOLO является революционной основополагающей моделью обнаружения объектов. Она является продуктом передовой технологии поиска с использованием нейронной архитектуры, тщательно разработанной для устранения ограничений предыдущих моделей YOLO . Благодаря значительным улучшениям в поддержке квантования и компромисса между точностью и задержкой, YOLO представляет собой большой скачок в обнаружении объектов.
Обзор сайта YOLO-NAS. YOLO-В NAS используются блоки, учитывающие квантование, и выборочное квантование для достижения оптимальной производительности. При переводе модели в квантованную версию INT8 точность падает минимально, что является значительным улучшением по сравнению с другими моделями. Эти усовершенствования позволили создать превосходную архитектуру с беспрецедентными возможностями обнаружения объектов и выдающейся производительностью.
Основные характеристики
- Базовый блок, дружественный к квантованию: YOLO-NAS представляет новый базовый блок, дружественный к квантованию, устраняя одно из существенных ограничений предыдущих моделей YOLO .
- Сложное обучение и квантование: YOLO-NAS использует передовые схемы обучения и квантование после обучения для повышения производительности.
- Оптимизация AutoNAC и предварительное обучение: YOLO-NAS использует оптимизацию AutoNAC и предварительно обучен на известных наборах данных, таких как COCO, Objects365 и Roboflow 100. Такое предварительное обучение делает его чрезвычайно подходящим для решения задач обнаружения объектов в производственных средах.
Предварительно обученные модели
Оцените возможности обнаружения объектов нового поколения с помощью предварительно обученных моделей YOLO-NAS, представленных на сайте Ultralytics. Эти модели разработаны для обеспечения высочайшей производительности с точки зрения скорости и точности. Выбирайте из множества вариантов, отвечающих вашим конкретным потребностям:
Производительность
Модель | mAP | Латентность (мс) |
---|---|---|
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 пакет. Пакет предоставляет удобный API Python для упрощения процесса.
В следующих примерах показано, как использовать модели YOLO-NAS с ultralytics
пакет для вывода и проверки:
Примеры выводов и проверок
В этом примере мы проверяем YOLO-NAS-s на наборе данных COCO8.
Пример
В этом примере приведен простой код вывода и проверки для 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 Команды доступны для прямого запуска моделей:
Поддерживаемые задачи и режимы
Мы предлагаем три варианта моделей 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 ?
Вы можете легко интегрировать модели 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, что обеспечивает высокую производительность с точки зрения скорости и точности. Вы можете загрузить эти модели по ссылкам, указанным в разделе " Предварительно обученные модели". Вот несколько примеров: