YOLOv4: Высокоскоростное и точное обнаружение объектов
Добро пожаловать на страницу документации Ultralytics по YOLOv4, современной системе обнаружения объектов в реальном времени, выпущенной в 2020 году Алексеем Бочковским по адресу https://github.com/AlexeyAB/darknet. YOLOv4 разработана для обеспечения оптимального баланса между скоростью и точностью, что делает ее отличным выбором для многих приложений.
Схема архитектуры YOLOv4. Демонстрация сложной структуры сети YOLOv4, включая основные компоненты, промежуточные слои и выходной слой, а также их взаимосвязанные слои для оптимального обнаружения объектов в реальном времени.
Введение
YOLOv4 расшифровывается как You Only Look Once version 4 (Вы смотрите только один раз, версия 4). Это модель обнаружения объектов в реальном времени, разработанная для устранения ограничений предыдущих версий YOLO, таких как YOLOv3, и других моделей обнаружения объектов. В отличие от других детекторов объектов на основе сверточных нейронных сетей (CNN), YOLOv4 применима не только для систем рекомендаций, но и для автономного управления процессами и сокращения ручного ввода. Ее работа на обычных графических процессорах (GPU) позволяет использовать ее массово по доступной цене, и она разработана для работы в реальном времени на обычном GPU, требуя только один такой GPU для обучения.
Архитектура
YOLOv4 использует несколько инновационных функций, которые работают вместе для оптимизации его производительности. К ним относятся Weighted-Residual-Connections (WRC), Cross-Stage-Partial-connections (CSP), Cross mini-Batch Normalization (CmBN), Self-adversarial-training (SAT), Mish-activation, Mosaic аугментация данных, DropBlock регуляризация и CIoU loss. Эти функции объединены для достижения самых современных результатов.
Типичный детектор объектов состоит из нескольких частей, включая вход, бэкбон, neck и head. Бэкбон YOLOv4 предварительно обучен на ImageNet и используется для прогнозирования классов и ограничивающих рамок объектов. Бэкбон может быть из нескольких моделей, включая 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 продолжают делать ее актуальной для многих приложений, требующих производительности в реальном времени.
Примеры использования
На момент написания Ultralytics в настоящее время не поддерживает модели YOLOv4. Поэтому всем пользователям, заинтересованным в использовании YOLOv4, необходимо обращаться непосредственно к репозиторию YOLOv4 на GitHub для получения инструкций по установке и использованию.
Вот краткий обзор типичных шагов, которые можно предпринять для использования YOLOv4:
-
Посетите репозиторий YOLOv4 на GitHub: https://github.com/AlexeyAB/darknet.
-
Следуйте инструкциям по установке, представленным в файле README. Обычно это включает клонирование репозитория, установку необходимых зависимостей и настройку необходимых переменных окружения.
-
После завершения установки вы можете обучить и использовать модель в соответствии с инструкциями по использованию, представленными в репозитории. Обычно это включает подготовку набора данных, настройку параметров модели, обучение модели, а затем использование обученной модели для выполнения обнаружения объектов.
Обратите внимание, что конкретные шаги могут различаться в зависимости от вашего конкретного случая использования и текущего состояния репозитория YOLOv4. Поэтому настоятельно рекомендуется обращаться непосредственно к инструкциям, представленным в репозитории YOLOv4 на GitHub.
Мы сожалеем о возможных неудобствах и будем стремиться обновить этот документ примерами использования для Ultralytics, как только будет реализована поддержка YOLOv4.
Заключение
YOLOv4 — это мощная и эффективная модель обнаружения объектов, которая обеспечивает баланс между скоростью и точностью. Использование уникальных функций и техник «мешка бесплатных улучшений» во время обучения позволяет ей отлично справляться с задачами обнаружения объектов в реальном времени. YOLOv4 может быть обучена и использована любым человеком с обычной GPU, что делает ее доступной и практичной для широкого спектра применений, включая системы видеонаблюдения, автономные транспортные средства и промышленную автоматизацию.
Для тех, кто хочет внедрить обнаружение объектов в свои проекты, YOLOv4 остается сильным конкурентом, особенно когда приоритетом является производительность в реальном времени. Хотя Ultralytics в настоящее время сосредоточена на поддержке более новых версий YOLO, таких как YOLOv8 и YOLO11, архитектурные инновации, представленные в 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 и почему стоит использовать ее для обнаружения объектов?
YOLOv4, что расшифровывается как "You Only Look Once version 4" (Вы смотрите только один раз, версия 4), — это современная модель обнаружения объектов в реальном времени, разработанная Алексеем Бочковским в 2020 году. Она обеспечивает оптимальный баланс между скоростью и точностью, что делает ее очень подходящей для приложений, работающих в реальном времени. Архитектура YOLOv4 включает в себя несколько инновационных функций, таких как Weighted-Residual-Connections (WRC), Cross-Stage-Partial-connections (CSP) и Self-adversarial-training (SAT), среди прочих, для достижения самых современных результатов. Если вы ищете высокопроизводительную модель, которая эффективно работает на обычных GPU, YOLOv4 — отличный выбор.
Как архитектура YOLOv4 повышает ее производительность?
Архитектура YOLOv4 включает в себя несколько ключевых компонентов: backbone, neck и head. Backbone, который может быть представлен моделями, такими как VGG, ResNet или CSPDarknet53, предварительно обучен для прогнозирования классов и ограничивающих рамок. Neck, использующий PANet, соединяет feature maps с разных этапов для всестороннего извлечения данных. Наконец, head, использующий конфигурации из YOLOv3, выполняет окончательное обнаружение объектов. YOLOv4 также использует методы "bag of freebies", такие как mosaic data augmentation и DropBlock regularization, что еще больше оптимизирует его скорость и точность.
Что такое "bag of freebies" в контексте YOLOv4?
"Bag of freebies" относится к методам, которые повышают точность обучения YOLOv4 без увеличения стоимости логического вывода. Эти методы включают различные формы увеличения данных, такие как фотометрические искажения (регулировка яркости, контрастности и т. д.) и геометрические искажения (масштабирование, обрезка, переворачивание, вращение). Увеличивая изменчивость входных изображений, эти увеличения помогают YOLOv4 лучше обобщать различные типы изображений, тем самым повышая ее надежность и точность, не ставя под угрозу ее производительность в реальном времени.
Почему YOLOv4 считается подходящей для обнаружения объектов в реальном времени на обычных GPU?
YOLOv4 разработана для оптимизации как скорости, так и точности, что делает ее идеальной для задач обнаружения объектов в реальном времени, требующих быстрой и надежной работы. Она эффективно работает на обычных GPU, требуя только один для обучения и логического вывода. Это делает ее доступной и практичной для различных приложений, от систем рекомендаций до автономного управления процессами, тем самым снижая потребность в обширных аппаратных настройках и делая ее экономически эффективным решением для обнаружения объектов в реальном времени.
Как начать работу с YOLOv4, если Ultralytics в настоящее время ее не поддерживает?
Чтобы начать работу с YOLOv4, посетите официальный репозиторий YOLOv4 на GitHub. Следуйте инструкциям по установке, приведенным в файле README, которые обычно включают клонирование репозитория, установку зависимостей и настройку переменных среды. После установки вы можете обучить модель, подготовив свой набор данных, настроив параметры модели и следуя предоставленным инструкциям по использованию. Поскольку Ultralytics в настоящее время не поддерживает YOLOv4, рекомендуется обращаться непосредственно к YOLOv4 GitHub для получения самой актуальной и подробной информации.