YOLOv3 и YOLOv3u
Обзор
В этом документе представлен обзор трех тесно связанных моделей обнаружения объектов: YOLOv3, YOLOv3-Ultralytics и YOLOv3u.
-
YOLOv3: Это третья версия алгоритма обнаружения объектов You Only Look Once (YOLO). Разработанный Джозефом Редмоном, YOLOv3 улучшил своих предшественников благодаря внедрению таких функций, как предсказания на нескольких масштабах и три разных размера детектирующих ядер.
-
YOLOv3u: Это обновленная версия YOLOv3-Ultralytics, в которой используется разделенная «голова» (split head) без анкоров и без оценки объектности (objectness), как в моделях YOLOv8. YOLOv3u сохраняет ту же архитектуру backbone и neck, что и YOLOv3, но с обновленной detection head от YOLOv8.

Основные характеристики
-
YOLOv3: Представил использование трех различных масштабов для обнаружения, задействуя три разных размера ядер детектирования: 13x13, 26x26 и 52x52. Это значительно улучшило точность обнаружения для объектов разных размеров. Кроме того, YOLOv3 добавил такие функции, как предсказания с несколькими метками (multi-label) для каждого bounding box и улучшенную нейросеть для извлечения признаков.
-
YOLOv3u: Эта обновленная модель включает разделенную «голову» без анкоров и оценки объектности из YOLOv8. Устраняя необходимость в заранее заданных anchor boxes и показателях объектности, такая конструкция «головы» детекции может улучшить способность модели обнаруживать объекты различных размеров и форм. Это делает YOLOv3u более надежным и точным инструментом для задач обнаружения объектов.
Поддерживаемые задачи и режимы
YOLOv3 разработан специально для задач object detection. Ultralytics поддерживает три варианта YOLOv3: yolov3u, yolov3-tinyu и yolov3-sppu. Буква u в названии означает, что они используют «голову» без анкоров из YOLOv8, в отличие от их оригинальной архитектуры, основанной на анкорах. Эти модели известны своей эффективностью в различных реальных сценариях, балансируя между точностью и скоростью. Каждый вариант предлагает уникальные функции и оптимизации, что делает их подходящими для широкого спектра приложений.
Все три модели поддерживают полный набор режимов, обеспечивая универсальность на различных этапах model deployment и разработки. Эти режимы включают Inference, Validation, Training и Export, предоставляя пользователям полный инструментарий для эффективного обнаружения объектов.
| Тип модели | Предобученные веса | Поддерживаемые задачи | Логический вывод | Валидация | Обучение | Экспорт (Export) |
|---|---|---|---|---|---|---|
| YOLOv3(u) | yolov3u.pt | Обнаружение объектов | ✅ | ✅ | ✅ | ✅ |
| YOLOv3-Tiny(u) | yolov3-tinyu.pt | Обнаружение объектов | ✅ | ✅ | ✅ | ✅ |
| YOLOv3u-SPP(u) | yolov3-sppu.pt | Обнаружение объектов | ✅ | ✅ | ✅ | ✅ |
Эта таблица позволяет с первого взгляда оценить возможности каждого варианта YOLOv3, подчеркивая их универсальность и пригодность для различных задач и рабочих режимов в процессах обнаружения объектов.
Примеры использования
В этом примере представлены простые примеры обучения и инференса YOLOv3. Для получения полной документации по этим и другим modes см. страницы Predict, Train, Val и Export.
Предобученные PyTorch модели в формате *.pt, а также файлы конфигурации *.yaml могут быть переданы в класс YOLO() для создания экземпляра модели в Python:
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv3u model
model = YOLO("yolov3u.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 YOLOv3u model on the 'bus.jpg' image
results = model("path/to/bus.jpg")Цитирование и благодарности
Если ты используешь YOLOv3 в своих исследованиях, пожалуйста, сошлися на оригинальные статьи YOLO и репозиторий Ultralytics YOLOv3:
@article{redmon2018yolov3,
title={YOLOv3: An Incremental Improvement},
author={Redmon, Joseph and Farhadi, Ali},
journal={arXiv preprint arXiv:1804.02767},
year={2018}
}Спасибо Джозефу Редмону и Али Фархади за разработку оригинального YOLOv3.
Часто задаваемые вопросы (FAQ)
В чем различия между YOLOv3, YOLOv3-Ultralytics и YOLOv3u?
YOLOv3 — это третья итерация алгоритма object detection (You Only Look Once), разработанного Джозефом Редмоном, известного своим балансом accuracy и скорости, использующего три разных масштаба (13x13, 26x26 и 52x52) для детектирования. YOLOv3-Ultralytics — это адаптация YOLOv3 от Ultralytics, которая добавляет поддержку большего количества предобученных моделей и упрощает кастомизацию. YOLOv3u — это улучшенный вариант YOLOv3-Ultralytics, объединяющий разделенную «голову» без анкоров и оценки объектности из YOLOv8, что повышает надежность и точность обнаружения для объектов разных размеров. Подробнее о вариантах см. в разделе серия YOLOv3.
Как обучить модель YOLOv3 с помощью Ultralytics?
Обучение модели YOLOv3 с помощью Ultralytics — простая задача. Ты можешь обучить модель, используя Python или CLI:
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv3u model
model = YOLO("yolov3u.pt")
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Для получения более подробных вариантов обучения и руководств посети нашу документацию по режиму Train.
Что делает YOLOv3u более точной для задач обнаружения объектов?
YOLOv3u улучшает YOLOv3 и YOLOv3-Ultralytics за счет внедрения разделенной «головы» без анкоров и оценки объектности, используемой в моделях YOLOv8. Это обновление устраняет необходимость в заранее определенных anchor boxes и показателях объектности, расширяя способность модели более точно обнаруживать объекты различных размеров и форм. Это делает YOLOv3u лучшим выбором для сложных и разнообразных задач обнаружения объектов. Дополнительную информацию см. в разделе Key Features.
Как использовать модели YOLOv3 для инференса?
Ты можешь выполнить инференс с помощью моделей YOLOv3 через скрипты Python или команды CLI:
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv3u model
model = YOLO("yolov3u.pt")
# Run inference with the YOLOv3u model on the 'bus.jpg' image
results = model("path/to/bus.jpg")Обратись к документации по режиму Inference для получения подробной информации о запуске моделей YOLO.
Какие задачи поддерживаются YOLOv3 и его вариантами?
YOLOv3, YOLOv3-Tiny и YOLOv3-SPP в основном поддерживают задачи обнаружения объектов. Эти модели можно использовать на разных этапах разработки и развертывания, таких как Inference, Validation, Training и Export. Для получения полного списка поддерживаемых задач и более подробной информации посети нашу документацию по задачам Object Detection.
Где найти ресурсы для цитирования YOLOv3 в моих исследованиях?
Если ты используешь YOLOv3 в своих исследованиях, пожалуйста, сошлися на оригинальные статьи YOLO и репозиторий Ultralytics YOLOv3. Пример BibTeX-цитирования:
@article{redmon2018yolov3,
title={YOLOv3: An Incremental Improvement},
author={Redmon, Joseph and Farhadi, Ali},
journal={arXiv preprint arXiv:1804.02767},
year={2018}
}Для получения дополнительной информации о цитировании обратись к разделу Citations and Acknowledgments.