YOLOv4: высокоскоростное и точное обнаружение объектов#
Добро пожаловать на страницу документации Ultralytics по YOLOv4 — современному детектору объектов, работающему в реальном времени, который был представлен в 2020 году Алексеем Бочковским на https://github.com/AlexeyAB/darknet. YOLOv4 разработан для обеспечения оптимального баланса между скоростью и точностью, что делает его отличным выбором для множества приложений.
Схема архитектуры YOLOv4. Демонстрация сложной сетевой архитектуры YOLOv4, включая компоненты backbone, neck и head, а также их взаимосвязанные слои для оптимального обнаружения объектов в реальном времени.
Введение#
YOLOv4 расшифровывается как You Only Look Once, версия 4. Это модель обнаружения объектов в реальном времени, разработанная для устранения ограничений предыдущих версий YOLO, таких как YOLOv3, и других моделей обнаружения объектов. В отличие от других детекторов объектов на основе сверточной нейронной сети (CNN), YOLOv4 подходит не только для рекомендательных систем, но и для автономного управления процессами и сокращения объема ввода со стороны человека. Работа на обычных графических процессорах (GPUs) позволяет использовать модель в массовых сценариях при доступной стоимости, а сама модель рассчитана на работу в реальном времени на обычном GPU и требует всего одного такого GPU для обучения.
Архитектура#
YOLOv4 использует несколько инновационных функций, которые совместно оптимизируют его производительность. К ним относятся взвешенные остаточные связи (WRC), частичные связи между этапами (CSP), перекрестная мини-пакетная нормализация (CmBN), самосостязательное обучение (SAT), активация Mish, мозаичное расширение данных, регуляризация DropBlock и функция потерь CIoU. Эти функции объединены для достижения передовых результатов.
Типичный детектор объектов состоит из нескольких частей, включая входной слой, backbone, neck и head. Backbone YOLOv4 предварительно обучен на ImageNet и используется для предсказания классов и ограничивающих рамок объектов. В качестве backbone могут использоваться разные модели, включая VGG, ResNet, ResNeXt или DenseNet. Neck детектора собирает карты признаков с разных этапов и обычно включает несколько восходящих и нисходящих путей. Head используется для выполнения финального обнаружения и классификации объектов.
Набор бесплатных улучшений#
YOLOv4 также использует методы, известные как «набор бесплатных улучшений», — техники, повышающие точность модели во время обучения без увеличения стоимости инференса. Расширение данных — распространенный метод из этого набора, применяемый в обнаружении объектов; он увеличивает разнообразие входных изображений и повышает устойчивость модели. Примеры расширения данных включают фотометрические искажения (изменение яркости, контрастности, оттенка, насыщенности и шума изображения) и геометрические искажения (случайное масштабирование, кадрирование, отражение и поворот). Эти методы помогают модели лучше обобщать данные на изображения разных типов.
Функции и производительность#
YOLOv4 разработан для оптимального сочетания скорости и точности при обнаружении объектов. Архитектура YOLOv4 включает CSPDarknet53 в качестве backbone, PANet в качестве neck и YOLOv3 в качестве головы обнаружения. Такая конструкция позволяет YOLOv4 выполнять обнаружение объектов с впечатляющей скоростью, что делает модель подходящей для приложений реального времени. YOLOv4 также отличается высокой точностью, достигая передовых результатов на бенчмарках обнаружения объектов, таких как COCO.
По сравнению с другими моделями семейства YOLO, такими как YOLOv5 и YOLOv7, YOLOv4 сохраняет сильные позиции по балансу между скоростью и точностью. Хотя более новые модели могут иметь определенные преимущества, архитектурные инновации YOLOv4 по-прежнему делают его актуальным для множества приложений, требующих работы в реальном времени.
Примеры использования#
YOLOv4 — модель на основе Darknet, которая не поддерживается нативно пакетом Ultralytics Python: опубликованных предварительно обученных весов yolov4.pt нет в ultralytics/assets, как нет и YAML-файлов ultralytics/cfg/models/v4/. Эта страница сохранена в качестве архитектурного справочника. Если ты хочешь запускать YOLOv4, обратись непосредственно к репозиторию YOLOv4 на GitHub за инструкциями по установке и использованию.
Ниже приведен краткий обзор типичных шагов, которые можно выполнить для использования YOLOv4:
-
Перейди в репозиторий YOLOv4 на GitHub: https://github.com/AlexeyAB/darknet.
-
Следуй инструкциям по установке в файле README. Обычно это включает клонирование репозитория, установку необходимых зависимостей и настройку нужных переменных окружения.
-
После завершения установки ты можешь обучить модель и использовать ее согласно инструкциям по применению в репозитории. Обычно это включает подготовку набора данных, настройку параметров модели, обучение модели, а затем использование обученной модели для обнаружения объектов.
Обрати внимание, что конкретные шаги могут различаться в зависимости от твоего сценария использования и текущего состояния репозитория YOLOv4. Поэтому настоятельно рекомендуется обращаться непосредственно к инструкциям в репозитории YOLOv4 на GitHub.
Для обучения и инференса в рамках фреймворка Ultralytics см. YOLO11 или YOLO26.
Заключение#
YOLOv4 — мощная и эффективная модель обнаружения объектов, обеспечивающая баланс между скоростью и точностью. Благодаря уникальным функциям и методам из набора бесплатных улучшений, применяемым во время обучения, модель отлично справляется с задачами обнаружения объектов в реальном времени. YOLOv4 можно обучать и использовать на обычном GPU, поэтому модель доступна и практична для широкого спектра приложений, включая системы наблюдения, автономные транспортные средства и промышленную автоматизацию.
Для тех, кто хочет реализовать обнаружение объектов в своих проектах, YOLOv4 остается сильным претендентом, особенно когда приоритетом является работа в реальном времени. Хотя сейчас Ultralytics сосредоточена на поддержке более новых версий YOLO, таких как YOLO11 и YOLO26, архитектурные инновации, представленные в YOLOv4, повлияли на разработку этих более поздних моделей.
Цитирование и благодарности#
Мы хотели бы отметить авторов YOLOv4 за их значительный вклад в область обнаружения объектов в реальном времени:
@misc{bochkovskiy2020yolov4,
title={YOLOv4: Optimal Speed and Accuracy of Object Detection},
author={Alexey Bochkovskiy and Chien-Yao Wang and Hong-Yuan Mark Liao},
year={2020},
eprint={2004.10934},
archivePrefix={arXiv},
primaryClass={cs.CV}
}Оригинальную статью о YOLOv4 можно найти на arXiv. Авторы сделали свою работу общедоступной, а исходный код можно найти на GitHub. Мы ценим их усилия по развитию этой области и предоставлению своей работы широкому сообществу.
Часто задаваемые вопросы#
YOLOv4, что означает «You Only Look Once, версия 4», — современная модель обнаружения объектов в реальном времени, разработанная Алексеем Бочковским в 2020 году. Она обеспечивает оптимальный баланс между скоростью и точностью, что делает ее особенно подходящей для приложений реального времени. Архитектура YOLOv4 включает несколько инновационных функций, таких как взвешенные остаточные связи (WRC), частичные связи между этапами (CSP) и самосостязательное обучение (SAT), а также другие методы для достижения передовых результатов. Если тебе нужна высокопроизводительная модель, эффективно работающая на обычных GPUs, YOLOv4 станет отличным выбором.
Архитектура YOLOv4 включает несколько ключевых компонентов: backbone, neck и head. Backbone, которым могут быть такие модели, как VGG, ResNet или CSPDarknet53, предварительно обучен для предсказания классов и ограничивающих рамок. Neck использует PANet для объединения карт признаков с разных этапов и комплексного извлечения данных. Наконец, head, использующий конфигурации YOLOv3, выполняет финальное обнаружение объектов. YOLOv4 также применяет методы из «набора бесплатных улучшений», такие как мозаичное расширение данных и регуляризация DropBlock, дополнительно оптимизируя скорость и точность.
«Набор бесплатных улучшений» — это методы, повышающие точность YOLOv4 во время обучения без увеличения стоимости инференса. Эти техники включают различные формы расширения данных, такие как фотометрические искажения (изменение яркости, контрастности и т. д.) и геометрические искажения (масштабирование, кадрирование, отражение и поворот). Увеличивая разнообразие входных изображений, эти методы расширения помогают YOLOv4 лучше обобщать данные на изображения разных типов, повышая устойчивость и точность модели без снижения производительности в реальном времени.
YOLOv4 разработан для оптимизации скорости и точности, что делает его идеальным для задач обнаружения объектов в реальном времени, требующих быстрого и надежного выполнения. Модель эффективно работает на обычных GPUs, используя всего один GPU и для обучения, и для инференса. Это делает ее доступной и практичной для различных приложений — от рекомендательных систем до автономного управления процессами, — сокращая потребность в сложной аппаратной инфраструктуре и делая ее экономичным решением для обнаружения объектов в реальном времени.
Чтобы начать работу с YOLOv4, перейди в официальный репозиторий YOLOv4 на GitHub. Следуй инструкциям по установке в файле README, которые обычно включают клонирование репозитория, установку зависимостей и настройку переменных окружения. После установки ты можешь обучить модель, подготовив набор данных, настроив параметры модели и следуя инструкциям по использованию. Поскольку Ultralytics пока не поддерживает YOLOv4, рекомендуется обращаться непосредственно к YOLOv4 на GitHub за наиболее актуальными и подробными указаниями.