Skip to main content

YOLOv3 и YOLOv3u

Обзор

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

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

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

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

Ключевые особенности

  • YOLOv3: Введено использование трех разных масштабов для обнаружения с применением ядер трех разных размеров: 13x13, 26x26 и 52x52. Это значительно улучшило точность обнаружения объектов разных размеров. Кроме того, YOLOv3 добавил такие функции, как многометочные предсказания для каждого ограничивающего прямоугольника (bounding box) и улучшенную сеть извлечения признаков.

  • YOLOv3u: Эта обновленная модель включает разделенную голову без анкоров и оценки объектности из YOLOv8. Исключая необходимость в предопределенных anchor boxes и оценках объектности, такая конструкция головы обнаружения повышает способность модели находить объекты различных размеров и форм. Это делает YOLOv3u более надежной и точной для задач обнаружения объектов.

Поддерживаемые задачи и режимы

YOLOv3 разработана специально для задач обнаружения объектов. Ultralytics поддерживает три варианта YOLOv3: yolov3u, yolov3-tinyu и yolov3-sppu. Символ u в названии означает, что в них используется голова без анкоров из YOLOv8, в отличие от их оригинальной архитектуры, основанной на анкорах. Эти модели известны своей эффективностью в различных реальных сценариях, балансируя между точностью и скоростью. Каждый вариант предлагает уникальные функции и оптимизации, что делает их подходящими для широкого спектра приложений.

Все три модели поддерживают полный набор режимов, обеспечивая гибкость на различных этапах модель готовой к развертыванию и разработки. Эти режимы включают Инференс, Валидация, Обучение и Экспорт, предоставляя пользователям полный инструментарий для эффективного обнаружения объектов.

Тип моделиПредобученные весаПоддерживаемые задачиИнференсВалидацияОбучениеЭкспорт
YOLOv3(u)yolov3u.ptОбнаружение объектов
YOLOv3-Tiny(u)yolov3-tinyu.ptОбнаружение объектов
YOLOv3u-SPP(u)yolov3-sppu.ptОбнаружение объектов

Эта таблица дает наглядное представление о возможностях каждого варианта YOLOv3, подчеркивая их универсальность и пригодность для различных задач и рабочих режимов в процессах обнаружения объектов.

Примеры использования

В этом примере представлены простые примеры обучения и вывода YOLOv3. Полную документацию по этим и другим режимов смотри на страницах Предсказание, Обучение, Валидация и Экспорт docs.

Пример

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 — это третья итерация алгоритма 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)

Более подробные варианты обучения и рекомендации ты найдешь в нашей документации по режиму Train.

Что делает YOLOv3u более точной для задач обнаружения объектов?

YOLOv3u улучшает YOLOv3 и YOLOv3-Ultralytics за счет внедрения разделенной головы без анкоров и оценки объектности, используемой в моделях YOLOv8. Это обновление исключает необходимость в предопределенных anchor boxes и оценках объектности, повышая способность более точно находить объекты различных размеров и форм. Это делает 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")

Обратись к документации по режиму Inference для получения подробностей о запуске моделей YOLO.

Какие задачи поддерживаются YOLOv3 и его вариантами?

YOLOv3, YOLOv3-Tiny и YOLOv3-SPP в основном поддерживают задачи обнаружения объектов. Эти модели могут использоваться на различных этапах развертывания и разработки, таких как Inference, Validation, Training и Export. Полный список поддерживаемых задач и более глубокие детали ты найдешь в нашей документации по задачам обнаружения объектов.

Где я могу найти ресурсы для цитирования 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}
}

Для получения дополнительных сведений о цитировании смотри Цитирование и благодарности.

Комментарии