YOLOv7: Обучаемый мешок бесплатных вещей
YOLOv7 - это современный детектор объектов в реальном времени, который превосходит все известные детекторы объектов по скорости и точности в диапазоне от 5 FPS до 160 FPS. Он обладает самой высокой точностью (56,8 % AP) среди всех известных детекторов объектов в реальном времени с частотой 30 кадров в секунду или выше на GPU V100. Более того, YOLOv7 превосходит по скорости и точности другие детекторы объектов, такие как YOLOR, YOLOX, Scaled-YOLOv4, YOLOv5, и многие другие. Модель обучена на наборе данных MS COCO с нуля, без использования каких-либо других наборов данных или предварительно обученных весов. Исходный код YOLOv7 доступен на GitHub.
Сравнение детекторов объектов 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 представляет несколько ключевых особенностей:
-
Перепараметризация модели: YOLOv7 предлагает запланированную перепараметризованную модель, которая представляет собой стратегию, применимую к слоям в различных сетях с концепцией пути распространения градиента.
-
Динамическое присвоение меток: При обучении модели с несколькими выходными слоями возникает новая проблема: "Как назначить динамические метки для выходов разных ветвей?". Чтобы решить эту проблему, YOLOv7 вводит новый метод присвоения меток, называемый грубым и тонким присвоением меток.
-
Расширенное и составное масштабирование: YOLOv7 предлагает методы "расширенного" и "сложного масштабирования" для детектора объектов в реальном времени, которые позволяют эффективно использовать параметры и вычисления.
-
Эффективность: Метод, предложенный YOLOv7, позволяет эффективно сократить около 40 % параметров и 50 % вычислений современного детектора объектов в реальном времени, а также обеспечивает более высокую скорость вывода и точность обнаружения.
Примеры использования
На момент написания статьи Ultralytics не поддерживает модели YOLOv7. Поэтому все пользователи, заинтересованные в использовании YOLOv7, должны обратиться непосредственно к репозиторию YOLOv7 на GitHub за инструкциями по установке и использованию.
Ниже приведен краткий обзор типичных шагов, которые вы можете предпринять для использования YOLOv7:
-
Посетите репозиторий YOLOv7 на GitHub: https://github.com/WongKinYiu/yolov7.
-
Для установки следуйте инструкциям, приведенным в файле README. Обычно это включает клонирование репозитория, установку необходимых зависимостей и настройку всех необходимых переменных окружения.
-
После завершения установки вы можете обучать и использовать модель в соответствии с инструкциями по использованию, предоставленными в репозитории. Обычно это включает подготовку набора данных, настройку параметров модели, обучение модели, а затем использование обученной модели для обнаружения объектов.
Обратите внимание, что конкретные шаги могут отличаться в зависимости от вашего конкретного случая использования и текущего состояния репозитория YOLOv7. Поэтому настоятельно рекомендуется обращаться непосредственно к инструкциям, представленным в репозитории YOLOv7 на GitHub.
Мы сожалеем о возможных неудобствах и постараемся обновить этот документ с примерами использования для Ultralytics , как только поддержка YOLOv7 будет реализована.
Цитаты и благодарности
Мы хотели бы выразить признательность авторам YOLOv7 за их значительный вклад в область обнаружения объектов в реальном времени:
Оригинальную статью 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, выполните следующие действия:
- Клонируйте репозиторий YOLOv7:
- Перейдите в клонированный каталог и установите зависимости:
- Подготовьте набор данных и настройте параметры модели в соответствии с инструкциями по использованию, представленными в репозитории. Для получения дальнейших рекомендаций посетите репозиторий YOLOv7 на GitHub, где вы найдете самую свежую информацию и обновления.
Какие ключевые функции и оптимизации появились в YOLOv7?
YOLOv7 предлагает несколько ключевых функций, которые революционизируют обнаружение объектов в режиме реального времени:
- Перепараметризация модели: Повышает производительность модели, оптимизируя пути распространения градиента.
- Динамическое присвоение меток: Использует метод грубого и тонкого наведения для назначения динамических целей для выходов в разных ветвях, что повышает точность.
- Расширенное и комбинированное масштабирование: Эффективное использование параметров и вычислений для масштабирования модели для различных приложений реального времени.
- Эффективность: Сокращение количества параметров на 40 % и вычислений на 50 % по сравнению с другими современными моделями при одновременном повышении скорости вывода.
Подробнее об этих функциях читайте в разделе Обзор YOLOv7.