Перейти к содержимому

YOLOv4: высокоскоростное и точное обнаружение объектов

Добро пожаловать на страницу документации Ultralytics по YOLOv4, современному детектору объектов в реальном времени, запущенному в 2020 году Алексеем Бочковским на сайте https://github.com/AlexeyAB/darknet. YOLOv4 разработан таким образом, чтобы обеспечить оптимальный баланс между скоростью и точностью, что делает его отличным выбором для многих приложений.

Схема архитектуры YOLOv4 Схема архитектуры YOLOv4. Демонстрирует сложную сетевую конструкцию YOLOv4, включая компоненты позвоночника, шеи и головы, а также их взаимосвязанные слои для оптимального обнаружения объектов в реальном времени.

Введение

YOLOv4 расшифровывается как You Only Look Once version 4. Это модель обнаружения объектов в реальном времени, разработанная для устранения ограничений предыдущих версий YOLO , таких как YOLOv3 и другие модели обнаружения объектов. В отличие от других детекторов объектов на основе конволюционных нейронных сетей (CNN), YOLOv4 применима не только в рекомендательных системах, но и для автономного управления процессами и сокращения человеческого вклада. Его работа на обычных графических процессорах (GPU) обеспечивает массовое использование по доступной цене, и он рассчитан на работу в реальном времени на обычном GPU , при этом для обучения требуется всего один такой GPU .

Архитектура

В YOLOv4 используется несколько инновационных функций, которые работают вместе, чтобы оптимизировать его производительность. В их число входят взвешенные связи (Weighted-Residual-Connections, WRC), перекрестные частичные связи (Cross-Stage-Partial-connections, CSP), перекрестная мини-пакетная нормализация (CmBN), самоаверсариальное обучение (SAT), Mish-активация, увеличение данных Mosaic, регуляризация DropBlock и потеря CIoU. Сочетание этих функций позволяет добиться самых современных результатов.

Типичный детектор объектов состоит из нескольких частей, включая вход, позвоночник, шею и голову. Костяк YOLOv4 предварительно обучен на ImageNet и используется для предсказания классов и ограничительных рамок объектов. Костяк может состоять из нескольких моделей, включая VGG, ResNet, ResNeXt или DenseNet. Шейная часть детектора используется для сбора карт признаков с разных этапов и обычно включает в себя несколько восходящих путей и несколько нисходящих путей. Головная часть - это то, что используется для окончательного обнаружения и классификации объектов.

Сумка бесплатных подарков

В YOLOv4 также используются методы, известные как "bag of freebies", то есть техники, которые повышают точность модели во время обучения без увеличения стоимости вывода. Увеличение данных - это распространенная техника "мешка с халявой", используемая в обнаружении объектов, которая увеличивает вариативность входных изображений для повышения робастности модели. Некоторые примеры дополнения данных включают фотометрические искажения (регулировка яркости, контраста, оттенка, насыщенности и шума изображения) и геометрические искажения (добавление случайного масштабирования, кадрирования, переворачивания и вращения). Эти приемы помогают модели лучше обобщаться на разные типы изображений.

Характеристики и производительность

YOLOv4 разработана для оптимальной скорости и точности обнаружения объектов. Архитектура YOLOv4 включает в себя CSPDarknet53 в качестве основы, PANet в качестве шеи и YOLOv3 в качестве головки обнаружения. Такая конструкция позволяет YOLOv4 выполнять обнаружение объектов с впечатляющей скоростью, что делает его подходящим для приложений реального времени. YOLOv4 также превосходит по точности, достигая самых современных результатов в тестах на обнаружение объектов.

Примеры использования

На момент написания статьи Ultralytics не поддерживает модели YOLOv4. Поэтому все пользователи, заинтересованные в использовании YOLOv4, должны будут обратиться непосредственно к репозиторию YOLOv4 на GitHub за инструкциями по установке и использованию.

Вот краткий обзор типичных шагов, которые ты можешь предпринять, чтобы использовать YOLOv4:

  1. Посети репозиторий YOLOv4 на GitHub: https://github.com/AlexeyAB/darknet.

  2. Для установки следуй инструкциям, приведенным в файле README. Обычно это включает в себя клонирование репозитория, установку необходимых зависимостей и настройку всех необходимых переменных окружения.

  3. После завершения установки ты можешь обучать и использовать модель в соответствии с инструкциями по использованию, которые содержатся в репозитории. Обычно это включает в себя подготовку набора данных, настройку параметров модели, обучение модели, а затем использование обученной модели для обнаружения объектов.

Обрати внимание, что конкретные шаги могут отличаться в зависимости от твоего конкретного случая использования и текущего состояния репозитория YOLOv4. Поэтому настоятельно рекомендуется обращаться непосредственно к инструкциям, представленным в репозитории YOLOv4 на GitHub.

Мы сожалеем о возможных неудобствах и постараемся обновить этот документ примерами использования Ultralytics, как только поддержка YOLOv4 будет реализована.

Заключение

YOLOv4 - это мощная и эффективная модель обнаружения объектов, в которой соблюден баланс между скоростью и точностью. Использование уникальных возможностей и техники bag of freebies во время обучения позволяет ей отлично справляться с задачами по обнаружению объектов в реальном времени. YOLOv4 может обучить и использовать любой человек с обычным компьютером GPU, что делает ее доступной и практичной для широкого круга приложений.

Цитаты и благодарности

Мы хотели бы поблагодарить авторов 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", - это современная модель обнаружения объектов в реальном времени, разработанная Алексеем Бочковским в 2020 году. В ней достигнут оптимальный баланс между скоростью и точностью, что делает ее очень подходящей для приложений реального времени. Архитектура YOLOv4 включает в себя несколько инновационных функций, таких как Weighted-Residual-Connections (WRC), Cross-Stage-Partial-connections (CSP), Self-adversarial-training (SAT) и другие, что позволяет достичь самых современных результатов. Если ты ищешь высокопроизводительную модель, которая эффективно работает на обычных GPU, YOLOv4 - отличный выбор.

Как архитектура YOLOv4 повышает ее производительность?

Архитектура YOLOv4 включает в себя несколько ключевых компонентов: позвоночник, шею и голову. Хребет, который может представлять собой такие модели, как VGG, ResNet или CSPDarknet53, предварительно обучен предсказывать классы и ограничительные рамки. Шея, использующая PANet, соединяет карты признаков с разных этапов для комплексного извлечения данных. Наконец, голова, которая использует конфигурации из YOLOv3, производит окончательное обнаружение объектов. В YOLOv4 также используются техники "bag of freebies", такие как увеличение мозаичных данных и регуляризация DropBlock, что еще больше оптимизирует его скорость и точность.

Что такое "мешок халявы" в контексте YOLOv4?

"Мешок халявы" относится к методам, которые повышают точность обучения YOLOv4 без увеличения стоимости умозаключений. Эти методы включают в себя различные формы дополнения данных, такие как фотометрические искажения (настройка яркости, контраста и т.д.) и геометрические искажения (масштабирование, кадрирование, переворачивание, вращение). Увеличивая вариативность входных изображений, эти дополнения помогают YOLOv4 лучше обобщаться с различными типами изображений, тем самым повышая его устойчивость и точность без ущерба для производительности в реальном времени.

Почему YOLOv4 считается подходящим для обнаружения объектов в реальном времени на обычных GPU?

YOLOv4 разработан для оптимизации скорости и точности, что делает его идеальным для задач обнаружения объектов в реальном времени, требующих быстрой и надежной работы. Он эффективно работает на обычных графических процессорах, требуя только один для обучения и вывода. Это делает его доступным и практичным для различных приложений, начиная от рекомендательных систем и заканчивая автономным управлением процессами, тем самым снижая необходимость в обширных аппаратных настройках и делая его экономически эффективным решением для обнаружения объектов в реальном времени.

Как я могу начать работать с YOLOv4, если Ultralytics в данный момент не поддерживает его?

Чтобы начать работу с YOLOv4, тебе следует посетить официальный репозиторий YOLOv4 на GitHub. Следуй инструкциям по установке, приведенным в файле README, которые обычно включают клонирование репозитория, установку зависимостей и настройку переменных окружения. После установки ты можешь обучать модель, подготовив свой набор данных, настроив параметры модели и следуя приведенным инструкциям по использованию. Поскольку Ultralytics в настоящее время не поддерживает YOLOv4, рекомендуется обратиться непосредственно к YOLOv4 GitHub для получения наиболее актуального и подробного руководства.



Создано 2023-11-12, Обновлено 2024-07-04
Авторы: glenn-jocher (9), sergiuwaxmann (1)

Комментарии