YOLOv3 и YOLOv3u

Обзор

В этом документе представлен обзор трех тесно связанных моделей обнаружения объектов: YOLOv3, YOLOv3-Ultralytics и YOLOv3u.

  1. YOLOv3: Это третья версия алгоритма обнаружения объектов You Only Look Once (YOLO). Разработанный Джозефом Редмоном, YOLOv3 улучшил своих предшественников благодаря внедрению таких функций, как предсказания на нескольких масштабах и три разных размера детектирующих ядер.

  2. YOLOv3u: Это обновленная версия YOLOv3-Ultralytics, в которой используется разделенная «голова» (split head) без анкоров и без оценки объектности (objectness), как в моделях YOLOv8. YOLOv3u сохраняет ту же архитектуру backbone и neck, что и YOLOv3, но с обновленной detection head от YOLOv8.

Баннер модели обнаружения объектов YOLOv3

Основные характеристики

  • 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.

Комментарии