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

Ultralytics предоставляет безъякорный вариант модели YOLOv5. Модели, обученные с использованием репозитория ultralytics/yolov5, нельзя загрузить с помощью библиотеки ultralytics/ultralytics. Чтобы использовать YOLOv5 здесь, обучи новую модель на основе контрольной точки Ultralytics YOLOv5u, например yolov5su.pt.
Изучай модели YOLOv5 и запускай их непосредственно на Ultralytics Platform.
Ключевые особенности#
-
Безъякорная разделённая голова Ultralytics: традиционные модели обнаружения объектов используют заранее заданные якорные блоки для прогнозирования расположения объектов. Однако 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 (мс) | параметры (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 | 31.3 |
| yolov5s6u.pt | yolov5s6.yaml | 1280 | 48.6 | 422.6 | 2.34 | 15.3 | 97.6 |
| yolov5m6u.pt | yolov5m6.yaml | 1280 | 53.6 | 810.9 | 4.36 | 41.2 | 261.3 |
| yolov5l6u.pt | yolov5l6.yaml | 1280 | 55.7 | 1470.9 | 5.47 | 86.1 | 549.4 |
| yolov5x6u.pt | yolov5x6.yaml | 1280 | 56.8 | 2436.5 | 8.98 | 155.5 | 1002.8 |
Примеры использования#
В этом примере показаны простые примеры обучения и инференса YOLOv5. Полную документацию по этим и другим режимам смотри на страницах документации Predict, Train, Val и Export.
Предварительно обученные модели *.pt PyTorch, а также файлы конфигурации *.yaml можно передать классу YOLO(), чтобы создать экземпляр модели в Python:
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv5nu model
model = YOLO("yolov5nu.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 YOLOv5nu model on the 'bus.jpg' image
results = model("path/to/bus.jpg")Цитирование и благодарности#
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 # Load a COCO-pretrained YOLOv5nu model model = YOLO("yolov5nu.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)Более подробные инструкции смотри в разделе Примеры использования.