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

Ultralytics YOLOv5

Обзор

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

Ultralytics YOLOv5

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

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

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

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

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

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

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

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

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

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

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

Модель YAML размер
(пикселей)
mAPval
50-95
Скорость
CPU ONNX
(мс)
Скорость
A100 TensorRT
(мс)
params
(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 docs.

Пример

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, включающая в себя безъякорную и безобъектную расщепленную головку, которая улучшает компромисс между точностью и скоростью для задач обнаружения объектов в реальном времени. В отличие от традиционного YOLOv5, YOLOv5u использует механизм безъякорного обнаружения, что делает его более гибким и адаптивным в различных сценариях. Для получения более подробной информации о его функциях вы можете ознакомиться с обзоромYOLOv5 .

Как безъякорная головка Ultralytics повышает производительность обнаружения объектов в 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 год назад ✏️ Обновлено 10 дней назад

Комментарии