Ultralytics YOLO27:

YOLOv3 и YOLOv3u#

Обзор#

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

  1. YOLOv3: Это третья версия алгоритма обнаружения объектов «Смотри один раз» (YOLO). Первоначально разработанная Joseph Redmon, YOLOv3 превзошла предыдущие версии благодаря таким нововведениям, как многоуровневые предсказания и три разных размера ядер обнаружения.

  2. YOLOv3-Ultralytics: Это реализация YOLOv3 на PyTorch от Ultralytics, поддерживаемая в репозитории ultralytics/yolov3. Она сохраняет оригинальную архитектуру на основе якорных боксов, добавляя больше предобученных моделей и упрощая кастомизацию.

  3. YOLOv3u: Это обновлённая версия YOLOv3-Ultralytics, в которой используется разделённая голова без anchor и objectness из моделей YOLOv8. YOLOv3u сохраняет ту же архитектуру бэкбона и neck, что и YOLOv3, но использует обновлённую голову обнаружения из YOLOv8.

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

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

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

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

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

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

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

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

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

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

В этом примере приведены простые примеры обучения и инференса YOLOv3. Полную документацию по этим и другим режимам смотри на страницах документации Predict, Train, Val и Export.

Пример

Предварительно обученные модели *.pt PyTorch, а также файлы конфигурации *.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}
}

Спасибо Joseph Redmon и Ali Farhadi за разработку оригинальной версии YOLOv3.

Часто задаваемые вопросы#

  • YOLOv3 — это третья версия алгоритма YOLO («Смотри один раз») для обнаружения объектов, разработанного Joseph Redmon и известного балансом между точностью и скоростью, с использованием трёх разных масштабов (13x13, 26x26 и 52x52) для обнаружения. YOLOv3-Ultralytics — это адаптация YOLOv3 от Ultralytics, которая добавляет поддержку большего числа предварительно обученных моделей и упрощает настройку моделей. YOLOv3u — это улучшенный вариант YOLOv3-Ultralytics, в котором используется разделённая голова без anchor и objectness из 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 и objectness, используемой в моделях YOLOv8. Это обновление устраняет необходимость в заранее заданных anchor boxes и оценках objectness, повышая способность модели более точно обнаруживать объекты разных размеров и форм. Благодаря этому 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")

    Подробнее о запуске моделей YOLO смотри в документации по режиму инференса.

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

  • Если ты используешь 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}
    }

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

Комментарии