YOLO-NAS

Важное обновление

Обрати внимание: компания Deci, первоначальный разработчик YOLO-NAS, была приобретена NVIDIA. В результате эти модели больше не поддерживаются активно командой Deci. Ultralytics продолжает поддерживать использование этих моделей, однако дальнейших обновлений от первоначальной команды не ожидается.

Обзор

YOLO-NAS, разработанная Deci AI, является инновационной базовой моделью для обнаружения объектов. Она создана с помощью передовой технологии Neural Architecture Search, тщательно спроектированной для устранения ограничений предыдущих моделей YOLO. Благодаря значительным улучшениям в поддержке квантования и соотношении accuracy-задержки, YOLO-NAS представляет собой серьезный скачок в области обнаружения объектов.

Сравнение точности модели YOLO-NAS на бенчмарке COCO Обзор YOLO-NAS. YOLO-NAS использует блоки, адаптированные к квантованию, и выборочное квантование для достижения оптимальной производительности. При конвертации в INT8-версию модель демонстрирует минимальную потерю точности, что является существенным улучшением по сравнению с другими моделями. Эти достижения формируют превосходную архитектуру с беспрецедентными возможностями обнаружения объектов и выдающейся производительностью.

Основные характеристики

  • Базовый блок, адаптированный к квантованию: YOLO-NAS представляет новый базовый блок, оптимизированный для квантования, что решает одно из существенных ограничений предыдущих моделей YOLO.
  • Сложное обучение и квантование: YOLO-NAS использует передовые схемы обучения и постобучающее квантование для повышения производительности.
  • Оптимизация AutoNAC и предварительное обучение: YOLO-NAS использует оптимизацию AutoNAC и предварительно обучена на таких известных наборах данных, как COCO, Objects365 и Roboflow 100. Это делает модель крайне подходящей для задач обнаружения объектов в производственных средах.

Предварительно обученные модели

Ощути возможности обнаружения объектов нового поколения с помощью предварительно обученных моделей YOLO-NAS, предоставляемых Ultralytics. Эти модели разработаны для обеспечения высочайшей производительности как по скорости, так и по точности. Выбирай из множества вариантов, адаптированных под твои конкретные нужды:

Производительность
МодельmAPЗадержка (мс)
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

Каждый вариант модели спроектирован так, чтобы предложить баланс между Mean Average Precision (mAP) и задержкой, помогая тебе оптимизировать задачи обнаружения объектов как по производительности, так и по скорости.

Примеры использования

Ultralytics упростила интеграцию моделей YOLO-NAS в твои Python-приложения с помощью нашего пакета ultralytics. Пакет предоставляет удобный Python API для оптимизации процесса.

Следующие примеры показывают, как использовать модели YOLO-NAS с пакетом ultralytics для инференса и валидации:

Примеры инференса и валидации

В этом примере мы проводим валидацию YOLO-NAS-s на наборе данных COCO8.

Пример

Этот пример предоставляет простой код для инференса и валидации YOLO-NAS. Для обработки результатов инференса смотри режим Predict. Для использования YOLO-NAS с дополнительными режимами смотри Val и Export. 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")

Поддерживаемые задачи и режимы

Мы предлагаем три варианта моделей YOLO-NAS: Small (s), Medium (m) и Large (l). Каждый вариант разработан для удовлетворения различных вычислительных потребностей и требований к производительности:

  • YOLO-NAS-s: Оптимизирована для сред с ограниченными вычислительными ресурсами, где ключевым фактором является эффективность.
  • YOLO-NAS-m: Предлагает сбалансированный подход, подходящий для object detection общего назначения с более высокой точностью.
  • YOLO-NAS-l: Предназначена для сценариев, требующих максимальной точности, где вычислительные ресурсы не являются жестким ограничением.

Ниже представлен подробный обзор каждой модели, включая ссылки на их предварительно обученные веса, поддерживаемые ими задачи и совместимость с различными режимами работы.

Тип моделиПредобученные весаПоддерживаемые задачиЛогический выводВалидацияОбучениеЭкспорт (Export)
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 за их усилия по созданию и поддержке этого ценного ресурса для сообщества computer vision. Мы верим, что YOLO-NAS с ее инновационной архитектурой и превосходными возможностями обнаружения объектов станет критически важным инструментом как для разработчиков, так и для исследователей.

Часто задаваемые вопросы (FAQ)

Что такое YOLO-NAS и чем она лучше предыдущих моделей YOLO?

YOLO-NAS, разработанная Deci AI, — это современная модель обнаружения объектов, использующая передовую технологию Neural Architecture Search (NAS). Она решает ограничения предыдущих моделей YOLO, внедряя такие функции, как базовые блоки, адаптированные к квантованию, и сложные схемы обучения. Это приводит к значительному повышению производительности, особенно в средах с ограниченными вычислительными ресурсами. YOLO-NAS также поддерживает квантование, сохраняя высокую точность даже при конвертации в версию INT8, что повышает ее пригодность для производственных сред. Для получения дополнительной информации смотри раздел Overview.

Как я могу интегрировать модели 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")

Для получения дополнительной информации обратись к разделу Inference and Validation Examples.

Каковы ключевые особенности YOLO-NAS и почему мне стоит рассмотреть возможность ее использования?

YOLO-NAS представляет несколько ключевых особенностей, которые делают ее превосходным выбором для задач обнаружения объектов:

  • Базовый блок, адаптированный к квантованию: Улучшенная архитектура, повышающая производительность модели с минимальной потерей precision после квантования.
  • Сложное обучение и квантование: Использует передовые схемы обучения и методы постобучающего квантования.
  • Оптимизация AutoNAC и предварительное обучение: Использует оптимизацию AutoNAC и предварительно обучена на известных наборах данных, таких как COCO, Objects365 и Roboflow 100.

Эти особенности способствуют высокой точности, эффективной производительности и пригодности для развертывания в производственных средах. Узнай больше в разделе Key Features.

Какие задачи и режимы поддерживаются моделями YOLO-NAS?

Модели YOLO-NAS поддерживают различные задачи обнаружения объектов и режимы, такие как инференс, валидация и экспорт. Они не поддерживают обучение. Поддерживаемые модели включают YOLO-NAS-s, YOLO-NAS-m и YOLO-NAS-l, каждая из которых адаптирована к различным вычислительным мощностям и потребностям производительности. Для детального обзора обратись к разделу Supported Tasks and Modes.

Есть ли доступные предварительно обученные модели YOLO-NAS и как получить к ним доступ?

Да, Ultralytics предоставляет предварительно обученные модели YOLO-NAS, к которым ты можешь получить прямой доступ. Эти модели предварительно обучены на таких наборах данных, как COCO, что гарантирует высокую производительность как по скорости, так и по точности. Ты можешь скачать эти модели, используя ссылки в разделе Pretrained Models. Вот несколько примеров:

Комментарии