YOLO Vision 2026:

YOLOv3 и YOLOv3u#

Обзор#

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

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

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

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

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

  • 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, предоставляя пользователям полный инструментарий для эффективного обнаружения объектов.

Тип моделиПредобученные весаПоддерживаемые задачиTrainingValidationInferenceЭкспорт
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}
    }

    Подробности цитирования см. в разделе Цитаты и благодарности.

Комментарии