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

Ultralytics предлагает вариант модели YOLOv5 без якорей. Модели, обученные в репозитории ultralytics/yolov5, нельзя загрузить с помощью библиотеки ultralytics/ultralytics. Чтобы использовать здесь YOLOv5, обучи новую модель на основе контрольной точки Ultralytics YOLOv5u (например, yolov5su.pt).
Изучай модели YOLOv5 и запускай их прямо на платформе Ultralytics.
Основные особенности#
-
Разделённая голова 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
# Загружаем предварительно обученную на 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, поскольку модели быстро развиваются. Мы сосредоточены на совершенствовании технологии и упрощении её использования, а не на создании статичной документации. Самую актуальную информацию об архитектуре 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)Подробные инструкции смотри в разделе «Примеры использования».