Ultralytics YOLO27:

YOLOv3 и YOLOv3u#

Обзор#

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

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

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

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

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

Основные особенности#

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

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

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

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

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

Тип моделиПредобученные весаПоддерживаемые задачиОбучениеВалидацияИнференсЭкспорт
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

# Загрузить предварительно обученную на COCO модель YOLOv3u
model = YOLO("yolov3u.pt")

# Показать информацию о модели (необязательно)
model.info()

# Обучить модель на демонстрационном наборе данных COCO8 в течение 100 эпох
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Запустить инференс с моделью YOLOv3u на изображении 'bus.jpg'
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.

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

  • YOLOv3 — третья версия алгоритма YOLO (You Only Look Once) для обнаружения объектов, разработанного Джозефом Редмоном. Модель известна сочетанием точности и скорости; для обнаружения она использует три масштаба: 13x13, 26x26 и 52x52. YOLOv3-Ultralytics — адаптация YOLOv3 от Ultralytics, которая поддерживает больше предварительно обученных моделей и упрощает настройку моделей. YOLOv3u — улучшенный вариант YOLOv3-Ultralytics с безъякорной, не учитывающей objectness раздельной головой из YOLOv8, что повышает устойчивость и точность обнаружения объектов разных размеров. Подробнее о вариантах см. в серии YOLOv3.

  • Обучить модель YOLOv3 с помощью Ultralytics просто. Ты можешь обучить модель с помощью Python или CLI:

    Пример
    from ultralytics import YOLO
    
    # Загрузить предварительно обученную на COCO модель YOLOv3u
    model = YOLO("yolov3u.pt")
    
    # Обучить модель на демонстрационном наборе данных COCO8 в течение 100 эпох
    results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

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

  • YOLOv3u улучшает YOLOv3 и YOLOv3-Ultralytics за счёт безъякорной, не учитывающей objectness раздельной головы, используемой в моделях YOLOv8. Это обновление устраняет необходимость в заранее заданных якорных прямоугольниках и оценках objectness, повышая способность модели точнее обнаруживать объекты разного размера и формы. Поэтому YOLOv3u лучше подходит для сложных и разнообразных задач обнаружения объектов. Подробнее см. в разделе «Ключевые особенности».

  • Ты можешь выполнять инференс с моделями YOLOv3 с помощью скриптов Python или команд CLI:

    Пример
    from ultralytics import YOLO
    
    # Загрузить предварительно обученную на COCO модель YOLOv3u
    model = YOLO("yolov3u.pt")
    
    # Запустить инференс с моделью YOLOv3u на изображении 'bus.jpg'
    results = model("path/to/bus.jpg")

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

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

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

Комментарии