Ultralytics YOLO27:

Ultralytics YOLOv5#

Обзор#

YOLOv5u — это новый этап развития методов обнаружения объектов. Созданная на основе базовой архитектуры модели YOLOv5, разработанной Ultralytics, модель YOLOv5u объединяет разделённую голову без якорей и objectness — функцию, впервые представленную в моделях YOLOv8. Эта адаптация совершенствует архитектуру модели и улучшает баланс между точностью и скоростью при обнаружении объектов. Судя по эмпирическим результатам и реализованным функциям, YOLOv5u — эффективная альтернатива для тех, кому нужны надёжные решения как для исследований, так и для практических задач.

Архитектура и производительность модели обнаружения объектов YOLOv5

Модели, обученные в исходном репозитории YOLOv5, несовместимы с библиотекой Ultralytics

Ultralytics предлагает вариант модели YOLOv5 без якорей. Модели, обученные в репозитории ultralytics/yolov5, нельзя загрузить с помощью библиотеки ultralytics/ultralytics. Чтобы использовать здесь YOLOv5, обучи новую модель на основе контрольной точки Ultralytics YOLOv5u (например, yolov5su.pt).

Попробовать на платформе Ultralytics

Изучай модели YOLOv5 и запускай их прямо на платформе Ultralytics.

Основные особенности#

  • Разделённая голова Ultralytics без якорей: традиционные модели обнаружения объектов используют заранее заданные якорные рамки для предсказания местоположения объектов. YOLOv5u предлагает более современный подход. Благодаря разделённой голове Ultralytics без якорей модель использует более гибкий и адаптивный механизм обнаружения, что повышает производительность в разных сценариях.

  • Оптимальный баланс точности и скорости: скорость и точность часто достигаются за счёт друг друга. Но YOLOv5u позволяет добиться оптимального баланса между ними. Модель обеспечивает обнаружение объектов в реальном времени без снижения точности. Эта функция особенно важна для приложений, которым нужна быстрая реакция, например автономных транспортных средств, робототехники и аналитики видео в реальном времени.

  • Разнообразие предварительно обученных моделей: для разных задач нужны разные инструменты, поэтому YOLOv5u предлагает множество предварительно обученных моделей. Для инференса, валидации или обучения найдётся подходящая модель. Благодаря такому разнообразию тебе не придётся использовать универсальное решение: можно выбрать модель, специально настроенную для твоей задачи.

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

Модели YOLOv5u с различными предварительно обученными весами отлично справляются с задачами обнаружения объектов. Они поддерживают широкий набор режимов и подходят для разных сценариев — от разработки до развертывания.

Тип моделиПредобученные весаЗадачаОбучениеВалидацияИнференсЭкспорт
YOLOv5uyolov5nu, yolov5su, yolov5mu, yolov5lu, yolov5xu, yolov5n6u, yolov5s6u, yolov5m6u, yolov5l6u, yolov5x6uОбнаружение объектов✅✅✅✅

В этой таблице подробно представлены варианты модели YOLOv5u, их применимость для обнаружения объектов и поддержка различных режимов работы, таких как инференс, валидация, обучение и экспорт. Благодаря такой поддержке ты сможешь в полной мере использовать возможности моделей YOLOv5u в самых разных сценариях обнаружения объектов.

Метрики производительности#

Производительность

Примеры использования этих моделей, обученных на COCO и включающих 80 предобученных классов, см. в документации по обнаружению объектов.

МодельYAMLразмер
(пиксели)
mAPval
50-95
Скорость
CPU ONNX
(мс)
Скорость
A100 TensorRT
(мс)
параметры
(M)
FLOPs
(B)
yolov5nu.ptyolov5n.yaml64034.373.61.062.67.7
yolov5su.ptyolov5s.yaml64043.0120.71.279.124.0
yolov5mu.ptyolov5m.yaml64049.0233.91.8625.164.2
yolov5lu.ptyolov5l.yaml64052.2408.42.5053.2135.0
yolov5xu.ptyolov5x.yaml64053.2763.23.8197.2246.4
yolov5n6u.ptyolov5n6.yaml128042.1211.01.834.331.3
yolov5s6u.ptyolov5s6.yaml128048.6422.62.3415.397.6
yolov5m6u.ptyolov5m6.yaml128053.6810.94.3641.2261.3
yolov5l6u.ptyolov5l6.yaml128055.71470.95.4786.1549.4
yolov5x6u.ptyolov5x6.yaml128056.82436.58.98155.51002.8

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

В этом примере показаны простые примеры обучения и инференса YOLOv5. Полную документацию по этим и другим режимам смотри на страницах документации Predict, Train, Val и Export.

Пример

Предобученные модели *.pt на базе PyTorch, а также файлы конфигурации *.yaml можно передать классу YOLO(), чтобы создать экземпляр модели в Python:

from ultralytics import YOLO

# Загружаем предварительно обученную на COCO модель YOLOv5nu
model = YOLO("yolov5nu.pt")

# Показать информацию о модели (необязательно)
model.info()

# Обучить модель на демонстрационном наборе данных COCO8 в течение 100 эпох
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Выполняем инференс с моделью YOLOv5nu на изображении 'bus.jpg'
results = model("path/to/bus.jpg")

Цитирование и благодарности#

Публикация Ultralytics YOLOv5

Ultralytics не публиковала официальную научную статью о YOLOv5, поскольку модели быстро развиваются. Мы сосредоточены на совершенствовании технологии и упрощении её использования, а не на создании статичной документации. Самую актуальную информацию об архитектуре YOLO, функциях и использовании ищи в нашем репозитории на GitHub и документации.

Если ты используешь YOLOv5 или YOLOv5u в своих исследованиях, укажи ссылку на репозиторий Ultralytics YOLOv5 следующим образом:

Цитата
@software{yolov5,
  title = {Ultralytics YOLOv5},
  author = {Glenn Jocher},
  year = {2020},
  version = {7.0},
  license = {AGPL-3.0},
  url = {https://github.com/ultralytics/yolov5},
  doi = {10.5281/zenodo.3908559},
  orcid = {0000-0001-5950-6979}
}

Обрати внимание: модели YOLOv5 распространяются по лицензиям AGPL-3.0 и Enterprise.

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

  • Ultralytics YOLOv5u — это усовершенствованная версия YOLOv5, в которой используется разделённая голова без якорей и objectness. Она улучшает баланс между точностью и скоростью для задач обнаружения объектов в реальном времени. В отличие от классической YOLOv5, YOLOv5u использует механизм обнаружения без якорей, благодаря чему он более гибкий и адаптивный в разных сценариях. Подробнее о функциях модели читай в обзоре YOLOv5.

  • Голова Ultralytics без якорей в YOLOv5u повышает производительность обнаружения объектов за счёт отказа от заранее заданных якорных рамок. В результате механизм обнаружения становится более гибким и адаптивным, что позволяет эффективнее работать с объектами разных размеров и форм. Это улучшение обеспечивает сбалансированное соотношение точности и скорости, благодаря чему YOLOv5u подходит для приложений реального времени. Подробнее об архитектуре читай в разделе «Ключевые особенности».

  • Да, ты можешь использовать предварительно обученные модели YOLOv5u для разных задач, например обнаружения объектов. Модели поддерживают несколько режимов, включая инференс, валидацию, обучение и экспорт. Благодаря этой гибкости ты можешь использовать возможности моделей YOLOv5u для решения разных рабочих задач. Подробнее смотри в разделе «Поддерживаемые задачи и режимы».

  • Показатели производительности моделей YOLOv5u зависят от используемой платформы и оборудования. Например, модель YOLOv5nu достигает 34,3 mAP на наборе данных COCO со скоростью 73,6 мс на CPU (ONNX) и 1,06 мс на A100 TensorRT. Подробные показатели для разных моделей YOLOv5u приведены в разделе «Показатели производительности», где сравниваются различные устройства.

  • Чтобы обучить модель YOLOv5u, загрузи предварительно обученную модель и запусти команду обучения на своём наборе данных. Вот краткий пример:

    Пример
    from ultralytics import YOLO
    
    # Загружаем предварительно обученную на COCO модель YOLOv5nu
    model = YOLO("yolov5nu.pt")
    
    # Показать информацию о модели (необязательно)
    model.info()
    
    # Обучить модель на демонстрационном наборе данных COCO8 в течение 100 эпох
    results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

    Подробные инструкции смотри в разделе «Примеры использования».

Комментарии