Перейти к содержанию

YOLOv7: Обучаемый мешок бесплатных вещей

YOLOv7 - это современный детектор объектов в реальном времени, который превосходит все известные детекторы объектов по скорости и точности в диапазоне от 5 FPS до 160 FPS. Он обладает самой высокой точностью (56,8 % AP) среди всех известных детекторов объектов в реальном времени с частотой 30 кадров в секунду или выше на GPU V100. Более того, YOLOv7 превосходит по скорости и точности другие детекторы объектов, такие как YOLOR, YOLOX, Scaled-YOLOv4, YOLOv5, и многие другие. Модель обучена на наборе данных MS COCO с нуля, без использования каких-либо других наборов данных или предварительно обученных весов. Исходный код YOLOv7 доступен на GitHub.

Сравнение YOLOv7 с детекторами объектов SOTA

Сравнение детекторов объектов SOTA

Из результатов, приведенных в сравнительной таблице YOLO , мы знаем, что предложенный метод имеет наилучший компромисс между скоростью и точностью в целом. Если сравнивать YOLOv7-tiny-SiLU с YOLOv5(r6.1), то наш метод на 127 кадров в секунду быстрее и на 10,7 % точнее по AP. Кроме того, YOLOv7 имеет 51,4% AP при частоте кадров 161 кадр/с, в то время как PPYOLOE-L при той же AP имеет только 78 кадров/с. Что касается использования параметров, то YOLOv7 на 41 % меньше, чем PPYOLOE-L.

Если сравнить YOLOv7-X со скоростью вывода 114 кадров в секунду с YOLOv5(r6.1) со скоростью вывода 99 кадров в секунду, то YOLOv7-X может улучшить AP на 3,9%. Если сравнивать YOLOv7-X с YOLOv5(r6.1) аналогичного масштаба, то скорость вывода YOLOv7-X выше на 31 кадр в секунду. Кроме того, с точки зрения количества параметров и вычислений, YOLOv7-X сокращает 22% параметров и 8% вычислений по сравнению с YOLOv5(r6.1), но улучшает AP на 2,2%(Источник).

Производительность

Модель Params
(M)
FLOPs
(G)
Размер
(пикселей)
FPS APtest/ val
50-95
APtest
50
APtest
75
APtest
S
APtest
M
APtest
L
YOLOX-S 9.0 26.8 640 102 40.5% / 40.5% - - - - -
YOLOX-M 25.3 73.8 640 81 47.2% / 46.9% - - - - -
YOLOX-L 54.2 155.6 640 69 50.1% / 49.7% - - - - -
YOLOX-X 99.1 281.9 640 58 51.5% / 51.1% - - - - -
PPYOLOE-S 7.9 17.4 640 208 43.1% / 42.7% 60.5% 46.6% 23.2% 46.4% 56.9%
PPYOLOE-M 23.4 49.9 640 123 48.9% / 48.6% 66.5% 53.0% 28.6% 52.9% 63.8%
PPYOLOE-L 52.2 110.1 640 78 51.4% / 50.9% 68.9% 55.6% 31.4% 55.3% 66.1%
PPYOLOE-X 98.4 206.6 640 45 52.2% / 51.9% 69.9% 56.5% 33.3% 56.3% 66.4%
YOLOv5-N (r6.1) 1.9 4.5 640 159 - / 28.0% - - - - -
YOLOv5-S (r6.1) 7.2 16.5 640 156 - / 37.4% - - - - -
YOLOv5-M (r6.1) 21.2 49.0 640 122 - / 45.4% - - - - -
YOLOv5-L (r6.1) 46.5 109.1 640 99 - / 49.0% - - - - -
YOLOv5-X (r6.1) 86.7 205.7 640 83 - / 50.7% - - - - -
YOLOR-CSP 52.9 120.4 640 106 51.1% / 50.8% 69.6% 55.7% 31.7% 55.3% 64.7%
YOLOR-CSP-X 96.9 226.8 640 87 53.0% / 52.7% 71.4% 57.9% 33.7% 57.1% 66.8%
YOLOv7-tiny-SiLU 6.2 13.8 640 286 38.7% / 38.7% 56.7% 41.7% 18.8% 42.4% 51.9%
YOLOv7 36.9 104.7 640 161 51.4% / 51.2% 69.7% 55.9% 31.8% 55.5% 65.0%
YOLOv7-X 71.3 189.9 640 114 53.1% / 52.9% 71.2% 57.8% 33.8% 57.1% 67.4%
YOLOv5-N6 (r6.1) 3.2 18.4 1280 123 - / 36.0% - - - - -
YOLOv5-S6 (r6.1) 12.6 67.2 1280 122 - / 44.8% - - - - -
YOLOv5-M6 (r6.1) 35.7 200.0 1280 90 - / 51.3% - - - - -
YOLOv5-L6 (r6.1) 76.8 445.6 1280 63 - / 53.7% - - - - -
YOLOv5-X6 (r6.1) 140.7 839.2 1280 38 - / 55.0% - - - - -
YOLOR-P6 37.2 325.6 1280 76 53.9% / 53.5% 71.4% 58.9% 36.1% 57.7% 65.6%
YOLOR-W6 79.8 453.2 1280 66 55.2% / 54.8% 72.7% 60.5% 37.7% 59.1% 67.1%
YOLOR-E6 115.8 683.2 1280 45 55.8% / 55.7% 73.4% 61.1% 38.4% 59.7% 67.7%
YOLOR-D6 151.7 935.6 1280 34 56.5% / 56.1% 74.1% 61.9% 38.9% 60.4% 68.7%
YOLOv7-W6 70.4 360.0 1280 84 54.9% / 54.6% 72.6% 60.1% 37.3% 58.7% 67.1%
YOLOv7-E6 97.2 515.2 1280 56 56.0% / 55.9% 73.5% 61.2% 38.0% 59.9% 68.4%
YOLOv7-D6 154.7 806.8 1280 44 56.6% / 56.3% 74.0% 61.8% 38.8% 60.1% 69.5%
YOLOv7-E6E 151.7 843.2 1280 36 56.8% / 56.8% 74.4% 62.1% 39.3% 60.5% 69.0%

Обзор

Обнаружение объектов в реальном времени является важным компонентом во многих системах компьютерного зрения, включая многообъектноеслежение, автономное вождение, робототехнику и анализ медицинских изображений. В последние годы разработка системы обнаружения объектов в реальном времени была сосредоточена на создании эффективных архитектур и повышении скорости обработки выводов на различных CPU, GPU и нейронных процессорах (NPU). YOLOv7 поддерживает как мобильные GPU , так и GPU , от периферии до облака.

В отличие от традиционных детекторов объектов в реальном времени, которые фокусируются на оптимизации архитектуры, YOLOv7 делает акцент на оптимизации процесса обучения. Это включает в себя модули и методы оптимизации, разработанные для повышения точности обнаружения объектов без увеличения стоимости вывода - концепция, известная как "обучаемый мешок бесплатных данных".

Основные характеристики

YOLOv7 представляет несколько ключевых особенностей:

  1. Перепараметризация модели: YOLOv7 предлагает запланированную перепараметризованную модель, которая представляет собой стратегию, применимую к слоям в различных сетях с концепцией пути распространения градиента.

  2. Динамическое присвоение меток: При обучении модели с несколькими выходными слоями возникает новая проблема: "Как назначить динамические метки для выходов разных ветвей?". Чтобы решить эту проблему, YOLOv7 вводит новый метод присвоения меток, называемый грубым и тонким присвоением меток.

  3. Расширенное и составное масштабирование: YOLOv7 предлагает методы "расширенного" и "сложного масштабирования" для детектора объектов в реальном времени, которые позволяют эффективно использовать параметры и вычисления.

  4. Эффективность: Метод, предложенный YOLOv7, позволяет эффективно сократить около 40 % параметров и 50 % вычислений современного детектора объектов в реальном времени, а также обеспечивает более высокую скорость вывода и точность обнаружения.

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

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

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

  1. Посетите репозиторий YOLOv7 на GitHub: https://github.com/WongKinYiu/yolov7.

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

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

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

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

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

Мы хотели бы выразить признательность авторам YOLOv7 за их значительный вклад в область обнаружения объектов в реальном времени:

@article{wang2022yolov7,
  title={YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors},
  author={Wang, Chien-Yao and Bochkovskiy, Alexey and Liao, Hong-Yuan Mark},
  journal={arXiv preprint arXiv:2207.02696},
  year={2022}
}

Оригинальную статью YOLOv7 можно найти на arXiv. Авторы сделали свою работу общедоступной, и кодовая база доступна на GitHub. Мы ценим их усилия, направленные на развитие области и доступность их работы широкому сообществу.

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

Что такое YOLOv7 и почему он считается прорывом в области обнаружения объектов в реальном времени?

YOLOv7 - это передовая модель обнаружения объектов в реальном времени, которая достигает непревзойденной скорости и точности. Она превосходит другие модели, такие как YOLOX, YOLOv5 и PPYOLOE, как по использованию параметров, так и по скорости вывода. Отличительными особенностями YOLOv7 являются перепараметризация модели и динамическое присвоение меток, которые оптимизируют ее производительность без увеличения затрат на вывод. Более подробную техническую информацию о его архитектуре и сравнительные метрики с другими современными детекторами объектов можно найти в статье YOLOv7.

Чем YOLOv7 лучше предыдущих моделей YOLO , таких как YOLOv4 и YOLOv5?

В YOLOv7 реализовано несколько инноваций, включая повторную параметризацию модели и динамическое присвоение меток, которые улучшают процесс обучения и повышают точность выводов. По сравнению с YOLOv5, YOLOv7 значительно повышает скорость и точность. Например, YOLOv7-X повышает точность на 2,2 % и сокращает количество параметров на 22 % по сравнению с YOLOv5-X. Подробные сравнения можно найти в таблице производительности YOLOv7 в сравнении с детекторами объектов SOTA.

Могу ли я использовать YOLOv7 с инструментами и платформами Ultralytics ?

На данный момент Ultralytics не поддерживает YOLOv7 напрямую в своих инструментах и платформах. Пользователям, заинтересованным в использовании YOLOv7, необходимо следовать инструкциям по установке и использованию, представленным в репозитории YOLOv7 на GitHub. Для других современных моделей вы можете изучить и обучиться с помощью инструментов Ultralytics , таких как Ultralytics HUB.

Как установить и запустить YOLOv7 для пользовательского проекта обнаружения объектов?

Чтобы установить и запустить YOLOv7, выполните следующие действия:

  1. Клонируйте репозиторий YOLOv7:
    git clone https://github.com/WongKinYiu/yolov7
    
  2. Перейдите в клонированный каталог и установите зависимости:
    cd yolov7
    pip install -r requirements.txt
    
  3. Подготовьте набор данных и настройте параметры модели в соответствии с инструкциями по использованию, представленными в репозитории. Для получения дальнейших рекомендаций посетите репозиторий YOLOv7 на GitHub, где вы найдете самую свежую информацию и обновления.

Какие ключевые функции и оптимизации появились в YOLOv7?

YOLOv7 предлагает несколько ключевых функций, которые революционизируют обнаружение объектов в режиме реального времени:

  • Перепараметризация модели: Повышает производительность модели, оптимизируя пути распространения градиента.
  • Динамическое присвоение меток: Использует метод грубого и тонкого наведения для назначения динамических целей для выходов в разных ветвях, что повышает точность.
  • Расширенное и комбинированное масштабирование: Эффективное использование параметров и вычислений для масштабирования модели для различных приложений реального времени.
  • Эффективность: Сокращение количества параметров на 40 % и вычислений на 50 % по сравнению с другими современными моделями при одновременном повышении скорости вывода.

Подробнее об этих функциях читайте в разделе Обзор YOLOv7.

📅 Создано 1 год назад ✏️ Обновлено 1 месяц назад

Комментарии