YOLOv4: Высокоскоростное и точное обнаружение объектов
Добро пожаловать на страницу документации Ultralytics, посвященную YOLOv4 — передовой модели обнаружения объектов в реальном времени, представленной в 2020 году Алексеем Бочковским по адресу https://github.com/AlexeyAB/darknet. YOLOv4 разработана для обеспечения оптимального баланса между скоростью и точностью, что делает ее отличным выбором для многих задач.
Схема архитектуры YOLOv4. Демонстрирует сложную структуру сети YOLOv4, включая компоненты backbone, neck и head, а также их взаимосвязанные слои для оптимального обнаружения объектов в реальном времени.
Введение
YOLOv4 расшифровывается как You Only Look Once version 4. Это модель обнаружения объектов в реальном времени, разработанная для устранения ограничений предыдущих версий YOLO, таких как YOLOv3 и другие модели обнаружения объектов. В отличие от других детекторов на основе сверточных нейронных сетей (CNN), YOLOv4 применима не только в рекомендательных системах, но и для автономного управления процессами и сокращения участия человека. Ее работа на обычных графических процессорах (GPU) позволяет массово использовать модель по доступной цене; кроме того, она спроектирована для работы в реальном времени на обычном GPU, требуя лишь один такой процессор для обучения.
Архитектура
В YOLOv4 используется несколько инновационных функций, которые работают вместе для оптимизации производительности. К ним относятся взвешенные остаточные соединения (WRC), соединения частичных этапов (CSP), кросс-мини-Batch Normalization (CmBN), самосостязательное обучение (SAT), активация Mish, аугментация данных Mosaic, регуляризация DropBlock и функция потерь CIoU. Эти функции в совокупности позволяют достичь передовых результатов.
Типичный детектор объектов состоит из нескольких частей, включая входные данные, backbone, neck и head. Backbone YOLOv4 предварительно обучен на ImageNet и используется для предсказания классов и ограничивающих рамок объектов. Backbone может быть взят из различных моделей, включая VGG, ResNet, ResNeXt или DenseNet. Часть neck детектора используется для сбора карт признаков с разных этапов и обычно включает несколько путей снизу вверх и сверху вниз. Часть head используется для выполнения окончательного обнаружения и классификации объектов.
Набор бесплатных улучшений (Bag of Freebies)
В YOLOv4 также используются методы, известные как «набор бесплатных улучшений» (bag of freebies) — это приемы, которые повышают точность модели во время обучения, не увеличивая затраты на инференс. Аугментация данных — это распространенный метод из набора бесплатных улучшений, используемый в обнаружении объектов, который увеличивает вариативность входных изображений для повышения устойчивости модели. Примеры аугментации данных включают фотометрические искажения (регулировка яркости, контрастности, оттенка, насыщенности и шума изображения) и геометрические искажения (добавление случайного масштабирования, кадрирования, отражения и поворота). Эти методы помогают модели лучше обобщать данные на различных типах изображений.
Функции и производительность
YOLOv4 спроектирована для обеспечения оптимальной скорости и точности при обнаружении объектов. Архитектура YOLOv4 включает CSPDarknet53 в качестве backbone, PANet в качестве neck и YOLOv3 в качестве detection head. Такая конструкция позволяет YOLOv4 выполнять обнаружение объектов с впечатляющей скоростью, что делает ее подходящей для приложений реального времени. YOLOv4 также превосходна в точности, достигая передовых результатов в тестах обнаружения объектов, таких как COCO.
При сравнении с другими моделями семейства YOLO, такими как YOLOv5 и YOLOv7, YOLOv4 сохраняет сильные позиции в балансе между скоростью и точностью. Хотя более новые модели могут предлагать определенные преимущества, архитектурные инновации YOLOv4 продолжают делать ее актуальной для многих задач, требующих работы в реальном времени.
Примеры использования
YOLOv4 is a Darknet-based model and is not natively supported by the Ultralytics Python package: there are no yolov4.pt pretrained weights published on ultralytics/assets and no ultralytics/cfg/models/v4/ YAMLs. This page is kept as an architectural reference. Users interested in running YOLOv4 should refer directly to the YOLOv4 GitHub repository for installation and usage instructions.
Вот краткий обзор типичных шагов, которые тебе могут понадобиться для использования 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. Мы ценим их усилия по развитию этой области и предоставлению результатов работы широкому сообществу.
Часто задаваемые вопросы (FAQ)
Что такое YOLOv4 и почему мне стоит использовать ее для обнаружения объектов?
YOLOv4, что расшифровывается как «You Only Look Once version 4», — это передовая модель обнаружения объектов в реальном времени, разработанная Алексеем Бочковским в 2020 году. Она достигает оптимального баланса между скоростью и точностью, что делает ее очень подходящей для приложений реального времени. Архитектура YOLOv4 включает в себя несколько инновационных функций, таких как взвешенные остаточные соединения (WRC), соединения частичных этапов (CSP) и самосостязательное обучение (SAT) и другие, для достижения лучших результатов. Если ты ищешь высокопроизводительную модель, эффективно работающую на обычных GPU, YOLOv4 — отличный выбор.
Как архитектура YOLOv4 улучшает производительность?
Архитектура YOLOv4 включает несколько ключевых компонентов: backbone, neck и head. Backbone, который может быть моделью типа VGG, ResNet или CSPDarknet53, предварительно обучается для предсказания классов и ограничивающих рамок. Neck, использующий PANet, соединяет карты признаков с разных этапов для комплексного извлечения данных. Наконец, head, использующий конфигурации YOLOv3, выполняет окончательное обнаружение объектов. YOLOv4 также применяет методы «набора бесплатных улучшений», такие как аугментация Mosaic и регуляризация DropBlock, дополнительно оптимизируя скорость и точность.
Что такое «набор бесплатных улучшений» (bag of freebies) в контексте YOLOv4?
«Набор бесплатных улучшений» относится к методам, которые повышают точность обучения YOLOv4, не увеличивая затраты на инференс. Эти методы включают различные формы аугментации данных, такие как фотометрические искажения (регулировка яркости, контрастности и т. д.) и геометрические искажения (масштабирование, кадрирование, отражение, поворот). Увеличивая вариативность входных изображений, эти методы аугментации помогают YOLOv4 лучше обобщать данные на разных типах изображений, тем самым повышая ее устойчивость и точность без ущерба для работы в реальном времени.
Почему YOLOv4 считается подходящей для обнаружения объектов в реальном времени на обычных GPU?
YOLOv4 спроектирована для оптимизации как скорости, так и точности, что делает ее идеальной для задач обнаружения объектов в реальном времени, требующих быстрого и надежного выполнения. Она эффективно работает на обычных GPU, требуя лишь один для обучения и инференса. Это делает модель доступной и практичной для различных приложений, начиная от рекомендательных систем и заканчивая автономным управлением процессами, тем самым снижая потребность в сложном аппаратном обеспечении и делая ее экономически эффективным решением для обнаружения объектов в реальном времени.
Как мне начать работать с YOLOv4, если Ultralytics в данный момент ее не поддерживает?
Чтобы начать работать с YOLOv4, тебе следует посетить официальный репозиторий YOLOv4 на GitHub. Следуй инструкциям по установке, приведенным в файле README, которые обычно включают клонирование репозитория, установку зависимостей и настройку переменных окружения. После установки ты можешь обучить модель, подготовив набор данных, настроив параметры модели и следуя приведенным инструкциям по использованию. Поскольку Ultralytics в настоящее время не поддерживает YOLOv4, рекомендуется обращаться непосредственно к репозиторию YOLOv4 на GitHub для получения наиболее актуальных и подробных указаний.