Ultralytics YOLO27:

YOLO-NAS#

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

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

Обзор#

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

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

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

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

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

Комментарии