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

Ultralytics предоставляет безанкорный вариант модели YOLOv5. Модели, обученные с использованием оригинального репозитория YOLOv5, нельзя использовать в библиотеке Ultralytics.
Исследуй и запускай модели YOLOv5 напрямую на платформе Ultralytics.
Основные характеристики
-
Безанкорная разделенная голова Ultralytics: Традиционные модели обнаружения объектов полагаются на заранее заданные анкорные рамки для предсказания местоположения объектов. Однако YOLOv5u модернизирует этот подход. Используя безанкорную разделенную голову Ultralytics, она обеспечивает более гибкий и адаптивный механизм обнаружения, что значительно улучшает производительность в самых разных сценариях.
-
Оптимизированный баланс точности и скорости: Скорость и точность часто работают в противовес друг другу, но YOLOv5u бросает вызов этому компромиссу. Она предлагает выверенный баланс, обеспечивая обнаружение в реальном времени без ущерба для точности. Эта функция особенно ценна для приложений, требующих мгновенной реакции, таких как автономные транспортные средства, робототехника и видеоаналитика в реальном времени.
-
Разнообразие предобученных моделей: Понимая, что для разных задач требуются разные инструменты, YOLOv5u предоставляет множество предобученных моделей. Независимо от того, занимаешься ли ты логическим выводом, валидацией или обучением, для тебя найдется подходящая модель. Это разнообразие гарантирует, что ты используешь не универсальное решение, а модель, специально настроенную под твою уникальную задачу.
Поддерживаемые задачи и режимы
Модели YOLOv5u с различными предобученными весами отлично справляются с задачами обнаружения объектов. Они поддерживают широкий спектр режимов, что делает их пригодными для различных целей, от разработки до внедрения.
| Тип модели | Предобученные веса | Задача | Логический вывод | Валидация | Обучение | Экспорт (Export) |
|---|---|---|---|---|---|---|
| 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 (мс) | параметры (М) | FLOPs (Б) |
|---|---|---|---|---|---|---|---|
| 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")Цитирование и благодарности
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 повышает производительность обнаружения объектов за счет устранения зависимости от заранее заданных анкорных рамок. Это приводит к более гибкому и адаптивному механизму обнаружения, способному эффективно работать с объектами разного размера и формы. Данное улучшение напрямую способствует сбалансированному компромиссу между точностью и скоростью, делая 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)Для получения более подробных инструкций посети раздел Примеры использования.