YOLOv7: Обучаемый мешок бесплатных вещей
YOLOv7 - это современный детектор объектов в реальном времени, который превосходит все известные детекторы объектов как по скорости, так и по точности в диапазоне от 5 FPS до 160 FPS. Он обладает самой высокой точностью (56,8% AP) среди всех известных детекторов объектов в реальном времени с частотой 30 FPS и выше на GPU V100. Более того, YOLOv7 превосходит по скорости и точности другие детекторы объектов, такие как YOLOR, YOLOX, Scaled-YOLOv4, YOLOv5 и многие другие. Модель обучена на наборе данных MS COCO с нуля, без использования каких-либо других наборов данных или предварительно обученных весов. Исходный код YOLOv7 доступен на GitHub.
Сравнение современных детекторов объектов. Из результатов, приведенных в таблице 2, мы знаем, что предложенный метод имеет наилучший компромисс между скоростью и точностью в целом. Если сравнивать YOLOv7-tiny-SiLU с YOLOv5-N (r6.1), то наш метод на 127 fps быстрее и на 10,7% точнее по AP. Кроме того, YOLOv7 имеет 51,4% AP при частоте кадров 161 fps, в то время как PPYOLOE-L с той же AP имеет только 78 fps частоты кадров. Что касается использования параметров, то YOLOv7 на 41% меньше, чем PPYOLOE-L. Если сравнить YOLOv7-X со скоростью вывода 114 кадров в секунду с YOLOv5-L (r6.1) со скоростью вывода 99 кадров в секунду, то YOLOv7-X может улучшить AP на 3,9%. Если сравнить YOLOv7-X с YOLOv5-X (r6.1) аналогичного масштаба, то скорость умозаключений YOLOv7-X на 31 кадр быстрее. Кроме того, с точки зрения количества параметров и вычислений, YOLOv7-X сокращает 22% параметров и 8% вычислений по сравнению с YOLOv5-X (r6.1), но улучшает AP на 2,2% (Источник).
Обзор
Обнаружение объектов в реальном времени - важный компонент многих систем компьютерного зрения, включая многообъектное слежение, автономное вождение, робототехнику и анализ медицинских изображений. В последние годы разработки в области обнаружения объектов в реальном времени были сосредоточены на создании эффективных архитектур и повышении скорости вычислений на различных 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. Мы ценим их усилия, направленные на развитие области и обеспечение доступности их работы для широкого сообщества.