Ultralytics YOLO27:
Get Started

YOLO-NAS#

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

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

Обзор#

Разработанная Deci AI, YOLO-NAS — это новаторская базовая модель для обнаружения объектов. Она создана с применением передовой технологии поиска нейронных архитектур и тщательно спроектирована для устранения ограничений предыдущих моделей YOLO. Благодаря существенному улучшению поддержки квантования и компромисса между точностью и задержкой 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

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

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

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

В примерах ниже показано, как использовать модели YOLO-NAS для инференса и валидации с пакетом ultralytics:

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

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

Пример

В этом примере приведён простой код для инференса и валидации YOLO-NAS. Информацию об обработке результатов инференса см. в режиме Predict. О других режимах работы с YOLO-NAS см. разделы Val и Export. Пакет ultralytics не поддерживает обучение YOLO-NAS.

Файлы предварительно обученных моделей *.pt для PyTorch можно передать классу 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-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},
}

Мы благодарим команду SuperGradients от Deci AI за создание и поддержку этого ценного ресурса для сообщества компьютерного зрения. Мы считаем, что благодаря инновационной архитектуре и превосходным возможностям обнаружения объектов YOLO-NAS станет важным инструментом для разработчиков и исследователей.

Часто задаваемые вопросы#

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

  • Ты можешь легко интегрировать модели YOLO-NAS в приложение Python с помощью пакета ultralytics. Ниже приведён простой пример загрузки предварительно обученной модели 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 предлагает несколько ключевых возможностей, благодаря которым она отлично подходит для обнаружения объектов:

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

    Эти особенности обеспечивают высокую точность, эффективную работу и пригодность модели для развертывания в производственной среде. Подробнее см. в разделе Основные возможности.

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

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

Комментарии