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

Ключевые особенности#
-
YOLOv3: Представил использование трех различных масштабов для обнаружения, задействовав три разных размера ядер обнаружения: 13x13, 26x26 и 52x52. Это существенно повысило точность обнаружения объектов разного размера. Кроме того, в YOLOv3 добавлены такие функции, как многометковые предсказания (multi-label predictions) для каждого bounding box и улучшенная сеть-экстрактор признаков.
-
YOLOv3u: Эта обновленная модель включает раздельную «голову» без анкеров и оценок предметности из YOLOv8. Благодаря отказу от предопределенных анкерных боксов и оценок предметности такая конструкция головы улучшает способность модели обнаруживать объекты различных размеров и форм. Это делает YOLOv3u более устойчивой и точной для задач обнаружения объектов.
Поддерживаемые задачи и режимы#
YOLOv3 разработана специально для задач обнаружения объектов. Ultralytics поддерживает три варианта YOLOv3: yolov3u, yolov3-tinyu и yolov3-sppu. Наличие u в названии означает, что в них используется голова YOLOv8 без привязок (anchor-free), в отличие от их исходной архитектуры на основе привязок (anchor-based). Эти модели славятся своей эффективностью в различных сценариях реального мира, обеспечивая баланс точности и скорости. Каждый вариант предлагает уникальные функции и оптимизации, что делает их подходящими для широкого спектра применений.
Все три модели поддерживают исчерпывающий набор режимов, обеспечивая универсальность на различных этапах развертывания модели и разработки. Эти режимы включают Inference, Validation, Training и Export, предоставляя пользователям полный инструментарий для эффективного обнаружения объектов.
| Тип модели | Предобученные веса | Поддерживаемые задачи | Training | Validation | Inference | Экспорт |
|---|---|---|---|---|---|---|
| YOLOv3(u) | yolov3u.pt | Обнаружение объектов | ✅ | ✅ | ✅ | ✅ |
| YOLOv3-Tiny(u) | yolov3-tinyu.pt | Обнаружение объектов | ✅ | ✅ | ✅ | ✅ |
| YOLOv3u-SPP(u) | yolov3-sppu.pt | Обнаружение объектов | ✅ | ✅ | ✅ | ✅ |
В этой таблице представлен краткий обзор возможностей каждого варианта YOLOv3, подчеркивающий их универсальность и пригодность для различных задач и рабочих режимов в процессах обнаружения объектов.
Примеры использования#
В этом примере приведены простые примеры обучения и инференса YOLOv3. Полную документацию по этим и другим режимам см. на страницах документации 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}
}Спасибо Джозефу Редмону и Али Фархади (Ali Farhadi) за разработку оригинальной YOLOv3.
FAQ#
YOLOv3 — это третья итерация алгоритма обнаружения объектов YOLO (You Only Look Once), разработанного Джозефом Редмоном (Joseph Redmon). Она известна своим балансом точности и скорости, используя три разных масштаба (13x13, 26x26 и 52x52) для обнаружений. YOLOv3-Ultralytics — это адаптация YOLOv3 от Ultralytics, которая добавляет поддержку дополнительных предобученных моделей и упрощает кастомизацию моделей. YOLOv3u — это усовершенствованный вариант YOLOv3-Ultralytics, объединяющий разделенную голову без привязок и без объектности из YOLOv8, что повышает надежность обнаружения и точность для объектов разного размера. Более подробную информацию о вариантах см. в разделе серия YOLOv3.
Обучить модель 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 превосходит YOLOv3 и YOLOv3-Ultralytics за счет внедрения разделенной головы без привязок (anchor-free) и без оценки объектности (objectness-free), используемой в моделях YOLOv8. Это обновление устраняет необходимость в предопределенных якорных боксах (anchor boxes) и оценках объектности, расширяя возможности более точного обнаружения объектов различных размеров и форм. Это делает YOLOv3u лучшим выбором для сложных и разнообразных задач обнаружения объектов. Дополнительную информацию см. в разделе Основные характеристики.
Ты можешь выполнять инференс с помощью моделей 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-Tiny и YOLOv3-SPP в основном поддерживают задачи обнаружения объектов. Эти модели могут использоваться на различных этапах развертывания и разработки моделей, таких как Inference, Validation, Training и Export. Полный список поддерживаемых задач и более подробную информацию можно найти в нашей документации по задачам обнаружения объектов.
Если ты используешь 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} }Подробности цитирования см. в разделе Цитаты и благодарности.