YOLOv3 и YOLOv3u
Обзор
В этом документе представлен обзор трех тесно связанных моделей обнаружения объектов, а именно YOLOv3, YOLOv3-Ultralytics и YOLOv3u.
-
YOLOv3: Это третья версия алгоритма обнаружения объектов You Only Look Once (YOLO). Изначально разработанная Джозефом Редмоном, YOLOv3 улучшила своих предшественников, внедрив такие функции, как многомасштабные прогнозы и три различных размера ядер обнаружения.
-
YOLOv3u: Это обновленная версия YOLOv3-Ultralytics, которая включает в себя разделенную голову без привязки к якорям и без учета объектности, используемую в моделях YOLOv8. YOLOv3u сохраняет ту же backbone и архитектуру neck, что и YOLOv3, но с обновленной головой обнаружения от YOLOv8.
Основные характеристики
-
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}
}
Для получения более подробной информации о цитировании обратитесь к разделу Цитирования и благодарности.