Перейти к содержанию

YOLOv3 и YOLOv3u

Обзор

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

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

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

Ultralytics YOLOv3

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

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

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

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

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

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

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

Для непосредственного запуска моделей доступны команды CLI:

# Load a COCO-pretrained YOLOv3u model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov3u.pt data=coco8.yaml epochs=100 imgsz=640

# Load a COCO-pretrained YOLOv3u model and run inference on the 'bus.jpg' image
yolo predict model=yolov3u.pt source=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, 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)
# Load a COCO-pretrained YOLOv3u model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov3u.pt data=coco8.yaml epochs=100 imgsz=640

Для получения более полных вариантов и рекомендаций по обучению посетите нашу документацию по режиму обучения.

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

YOLOv3u улучшает YOLOv3 и YOLOv3-Ultralytics за счет включения anchor-free, objectness-free split head, используемой в моделях YOLOv8. Это обновление устраняет необходимость в предварительно определенных anchor boxes и objectness scores, повышая ее способность более точно обнаруживать объекты различных размеров и форм. Это делает YOLOv3u лучшим выбором для сложных и разнообразных задач обнаружения объектов. Для получения дополнительной информации обратитесь к разделу Key Features.

Как я могу использовать модели YOLOv3 для inference?

Вы можете выполнить вывод, используя модели 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")
# Load a COCO-pretrained YOLOv3u model and run inference on the 'bus.jpg' image
yolo predict model=yolov3u.pt source=path/to/bus.jpg

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

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

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

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

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



📅 Создано 1 год назад ✏️ Обновлено 4 месяца назад

Комментарии