Ultralytics YOLOv5

Обзор

YOLOv5u представляет собой шаг вперед в методологии обнаружения объектов. Основываясь на архитектуре модели YOLOv5, разработанной Ultralytics, YOLOv5u объединяет «безанкорную» (anchor-free) и свободную от objectness разделенную голову, функции которой ранее были представлены в моделях YOLOv8. Эта адаптация совершенствует архитектуру модели, что приводит к улучшению баланса точности и скорости при решении задач обнаружения объектов. Учитывая эмпирические результаты и полученные характеристики, YOLOv5u предоставляет эффективную альтернативу для тех, кто ищет надежные решения как в исследовательских, так и в практических целях.

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

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

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

Попробуй на платформе Ultralytics

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

Ключевые особенности

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

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

  • Разнообразие предобученных моделей: Понимая, что для разных задач требуются разные инструменты, YOLOv5u предоставляет множество предобученных моделей. Независимо от того, занимаешься ли ты логическим выводом (Inference), валидацией или обучением, тебя ждет специально подготовленная модель. Такое разнообразие гарантирует, что ты используешь не универсальное решение, а модель, специально настроенную под твою уникальную задачу.

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

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

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

В этой таблице представлен подробный обзор вариантов моделей YOLOv5u, освещающий их применимость в задачах обнаружения объектов и поддержку различных рабочих режимов, таких как Inference, Validation, Training и Export. Эта всесторонняя поддержка гарантирует, что ты сможешь в полной мере использовать возможности моделей YOLOv5u в широком спектре сценариев обнаружения объектов.

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

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

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

МодельYAMLразмер
(пиксели)
mAPval
50-95
Скорость
CPU ONNX
(мс)
Скорость
A100 TensorRT
(мс)
параметры
(М)
FLOPs
(Б)
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.37.8
yolov5s6u.ptyolov5s6.yaml128048.6422.62.3415.324.6
yolov5m6u.ptyolov5m6.yaml128053.6810.94.3641.265.7
yolov5l6u.ptyolov5l6.yaml128055.71470.95.4786.1137.4
yolov5x6u.ptyolov5x6.yaml128056.82436.58.98155.4250.7

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

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

Пример

PyTorch pretrained *.pt models as well as configuration *.yaml files can be passed to the YOLO() class to create a model instance in python:

from ultralytics import YOLO

# Load a COCO-pretrained YOLOv5n model
model = YOLO("yolov5n.pt")

# Display model information (optional)
model.info()

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference with the YOLOv5n model on the 'bus.jpg' image
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.

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

Что такое Ultralytics YOLOv5u и чем она отличается от YOLOv5?

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

Как безанкорная голова Ultralytics улучшает производительность обнаружения объектов в YOLOv5u?

Безанкорная голова Ultralytics в YOLOv5u улучшает производительность обнаружения объектов за счет устранения зависимости от предопределенных anchor boxes. Это приводит к созданию более гибкого и адаптивного механизма обнаружения, который может обрабатывать объекты различных размеров и форм с большей эффективностью. Это улучшение напрямую способствует сбалансированному компромиссу между точностью и скоростью, делая YOLOv5u подходящей для приложений реального времени. Узнай больше о ее архитектуре в разделе Основные характеристики.

Могу ли я использовать предобученные модели YOLOv5u для различных задач и режимов?

Да, ты можешь использовать предобученные модели YOLOv5u для различных задач, таких как обнаружение объектов. Эти модели поддерживают несколько режимов, включая Inference, Validation, Training и Export. Эта гибкость позволяет использовать возможности моделей YOLOv5u в соответствии с различными эксплуатационными требованиями. Подробный обзор смотри в разделе Поддерживаемые задачи и режимы.

Как показатели производительности моделей YOLOv5u сравниваются на разных платформах?

Показатели производительности моделей YOLOv5u варьируются в зависимости от используемой платформы и оборудования. Например, модель YOLOv5nu достигает 34.3 mAP на наборе данных COCO со скоростью 73.6 мс на CPU (ONNX) и 1.06 мс на A100 TensorRT. Подробные показатели производительности для различных моделей YOLOv5u можно найти в разделе Показатели производительности, где представлено всестороннее сравнение на различных устройствах.

Как я могу обучить модель YOLOv5u с помощью Python API от Ultralytics?

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

Пример
from ultralytics import YOLO

# Load a COCO-pretrained YOLOv5n model
model = YOLO("yolov5n.pt")

# Display model information (optional)
model.info()

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Для получения более подробных инструкций посети раздел Usage Examples.

Комментарии