YOLOv3 и YOLOv3u#
Обзор#
В этом документе представлен обзор трёх тесно связанных моделей обнаружения объектов: YOLOv3, YOLOv3-Ultralytics и YOLOv3u.
-
YOLOv3: Это третья версия алгоритма обнаружения объектов «Смотри один раз» (YOLO). Первоначально разработанная Joseph Redmon, YOLOv3 превзошла предыдущие версии благодаря таким нововведениям, как многоуровневые предсказания и три разных размера ядер обнаружения.
-
YOLOv3-Ultralytics: Это реализация YOLOv3 на PyTorch от Ultralytics, поддерживаемая в репозитории ultralytics/yolov3. Она сохраняет оригинальную архитектуру на основе якорных боксов, добавляя больше предобученных моделей и упрощая кастомизацию.
-
YOLOv3u: Это обновлённая версия YOLOv3-Ultralytics, в которой используется разделённая голова без anchor и objectness из моделей YOLOv8. YOLOv3u сохраняет ту же архитектуру бэкбона и neck, что и YOLOv3, но использует обновлённую голову обнаружения из YOLOv8.

Ключевые особенности#
-
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} }Подробнее о цитировании смотри в разделе «Цитирование и благодарности».