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 сохраняет ту же архитектуру бэкбона и шейпа, что и YOLOv3, но с обновленной головой обнаружения из YOLOv8.

Ключевые особенности#
-
YOLOv3: Появилось использование трех различных масштабов для обнаружения с задействованием трех разных размеров ядер обнаружения: 13x13, 26x26 и 52x52. Это значительно повысило точность обнаружения объектов разного размера. Кроме того, в YOLOv3 добавлены такие функции, как многометочные предсказания для каждого ограничивающего прямоугольника и улучшенная сеть извлечения признаков.
-
YOLOv3u: Эта обновленная модель включает раздельную «голову» без анкеров и оценок предметности из YOLOv8. Благодаря отказу от предопределенных анкерных боксов и оценок предметности такая конструкция головы улучшает способность модели обнаруживать объекты различных размеров и форм. Это делает YOLOv3u более устойчивой и точной для задач обнаружения объектов.
Поддерживаемые задачи и режимы#
YOLOv3 разработана специально для задач обнаружения объектов. Ultralytics поддерживает три варианта YOLOv3: yolov3u, yolov3-tinyu и yolov3-sppu. Буква u в названии означает, что они используют «голову» без анкеров из YOLOv8, в отличие от их исходной архитектуры на основе анкеров. Эти модели славятся своей эффективностью в различных реальных сценариях, балансируя между точностью и скоростью. Каждый вариант предлагает уникальные функции и оптимизации, делая их пригодными для широкого спектра приложений.
Все три модели поддерживают исчерпывающий набор режимов, обеспечивая универсальность на различных этапах развертывания модели и разработки. Эти режимы включают инференс, валидацию, обучение и экспорт, предоставляя пользователям полный набор инструментов для эффективного обнаружения объектов.
| Тип модели | Предобученные веса | Поддерживаемые задачи | Training | Validation | Inference | Экспорт |
|---|---|---|---|---|---|---|
| YOLOv3(u) | yolov3u.pt | Обнаружение объектов (Object Detection) | ✅ | ✅ | ✅ | ✅ |
| YOLOv3-Tiny(u) | yolov3-tinyu.pt | Обнаружение объектов (Object Detection) | ✅ | ✅ | ✅ | ✅ |
| YOLOv3u-SPP(u) | yolov3-sppu.pt | Обнаружение объектов (Object Detection) | ✅ | ✅ | ✅ | ✅ |
В этой таблице представлен краткий обзор возможностей каждого варианта YOLOv3, подчеркивающий их универсальность и пригодность для различных задач и рабочих режимов в процессах обнаружения объектов.
Примеры использования#
Этот пример содержит простые примеры обучения и инференса YOLOv3. Полную документацию по этим и другим режимам см. на страницах документации предсказания, обучения, валидации и экспорта.
Предобученные 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, YOLOv3-Ultralytics и YOLOv3u?#
YOLOv3 — это третья итерация алгоритма обнаружения объектов YOLO (You Only Look Once), разработанного Джозефом Редмоном, известная своим балансом точности и скорости, использующая три разных масштаба (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)Для получения более подробных вариантов обучения и руководств посети нашу документацию по режиму обучения.
Что делает YOLOv3u более точной для задач обнаружения объектов?#
YOLOv3u улучшает YOLOv3 и YOLOv3-Ultralytics за счет интеграции раздельной «головы» без анкеров и оценок предметности, используемой в моделях YOLOv8. Это обновление устраняет необходимость в предопределенных анкерных боксах и оценках предметности, повышая способность точнее обнаруживать объекты разных размеров и форм. Это делает YOLOv3u лучшим выбором для сложных и разнообразных задач обнаружения объектов. Дополнительную информацию см. в разделе Основные характеристики.
Как использовать модели 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")Обратись к документации по режиму инференса для получения дополнительной информации о запуск моделей YOLO.
Какие задачи поддерживаются YOLOv3 и его вариантами?#
YOLOv3, YOLOv3-Tiny и YOLOv3-SPP в основном поддерживают задачи обнаружения объектов. Эти модели можно использовать на различных этапах развертывания и разработки моделей, таких как инференс, валидация, обучение и экспорт. Полный набор поддерживаемых задач и более подробную информацию можно найти в нашей документации по задачам обнаружения объектов.
Где найти ресурсы для цитирования 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}
}Для получения подробной информации о цитировании обратись к разделу Цитаты и благодарности.