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