Перейти к содержанию

Ultralytics YOLOv5

Обзор

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

Ultralytics YOLOv5

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

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

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

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

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

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

Тип модели Предварительно обученные веса Задача Инференс Валидация Обучение Экспорт
YOLOv5u yolov5nu, 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
(мс)
параметры
(M)
FLOPs
(B)
yolov5nu.pt yolov5n.yaml 640 34.3 73.6 1.06 2.6 7.7
yolov5su.pt yolov5s.yaml 640 43.0 120.7 1.27 9.1 24.0
yolov5mu.pt yolov5m.yaml 640 49.0 233.9 1.86 25.1 64.2
yolov5lu.pt yolov5l.yaml 640 52.2 408.4 2.50 53.2 135.0
yolov5xu.pt yolov5x.yaml 640 53.2 763.2 3.81 97.2 246.4
yolov5n6u.pt yolov5n6.yaml 1280 42.1 211.0 1.83 4.3 7.8
yolov5s6u.pt yolov5s6.yaml 1280 48.6 422.6 2.34 15.3 24.6
yolov5m6u.pt yolov5m6.yaml 1280 53.6 810.9 4.36 41.2 65.7
yolov5l6u.pt yolov5l6.yaml 1280 55.7 1470.9 5.47 86.1 137.4
yolov5x6u.pt yolov5x6.yaml 1280 56.8 2436.5 8.98 155.4 250.7

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

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

Пример

PyTorch предварительно обученные *.pt модели, а также конфигурационные *.yaml файлы могут быть переданы в YOLO() класс для создания экземпляра модели в 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")

Для непосредственного запуска моделей доступны команды CLI:

# Load a COCO-pretrained YOLOv5n model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov5n.pt data=coco8.yaml epochs=100 imgsz=640

# Load a COCO-pretrained YOLOv5n model and run inference on the 'bus.jpg' image
yolo predict model=yolov5n.pt source=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?

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

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

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

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

Да, вы можете использовать предварительно обученные модели YOLOv5u для различных задач, таких как Обнаружение объектов. Эти модели поддерживают несколько режимов, включая Вывод, Валидацию, Обучение и Экспорт. Такая гибкость позволяет пользователям использовать возможности моделей YOLOv5u в различных операционных требованиях. Подробный обзор представлен в разделе Поддерживаемые задачи и режимы.

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

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

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

Вы можете обучить модель 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)
# Load a COCO-pretrained YOLOv5n model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov5n.pt data=coco8.yaml epochs=100 imgsz=640

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



📅 Создано 1 год назад ✏️ Обновлено 5 месяцев назад

Комментарии