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

Meituan YOLOv6

Обзор

Meituan YOLOv6, выпущенный в 2022 году, предлагает оптимальный баланс между скоростью и точностью, что делает его популярным выбором для приложений реального времени. Эта модель представляет несколько заметных улучшений в своей архитектуре и схеме обучения, включая реализацию модуля двунаправленной конкатенации (BiC), стратегию обучения с использованием якорей (AAT), а также улучшенную архитектуру основной сети и шейки для достижения высокой точности на наборе данных COCO.

Модель обнаружения объектов YOLOv6 от MeituanСхема архитектуры YOLOv6Обзор YOLOv6. Диаграмма архитектуры модели, показывающая переработанные сетевые компоненты и стратегии обучения, которые привели к значительному повышению производительности. (a) Neck YOLOv6 (показаны N и S). Обратите внимание, что для M/L RepBlocks заменен на CSPStackRep. (b) Структура модуля BiC. (c) Блок SimCSPSPPF. (источник).

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

  • Модуль двунаправленного объединения (BiC): YOLOv6 представляет модуль BiC в neck детектора, улучшая сигналы локализации и обеспечивая прирост производительности с незначительным снижением скорости.
  • Стратегия обучения с использованием Anchor (AAT): Эта модель предлагает AAT, чтобы воспользоваться преимуществами как основанных на anchor, так и не использующих anchor парадигм без ущерба для эффективности инференса.
  • Улучшенная архитектура основной сети и шейки: Углубив YOLOv6 за счет включения еще одного этапа в основную сеть и шейку, эта модель при выпуске достигла высокой производительности на наборе данных COCO при входных данных высокого разрешения.
  • Стратегия самодистилляции: Новая стратегия самодистилляции реализована для повышения производительности небольших моделей YOLOv6, улучшая вспомогательную регрессионную ветвь во время обучения и удаляя ее во время инференса, чтобы избежать заметного снижения скорости.

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

YOLOv6 предоставляет различные предварительно обученные модели с разными масштабами:

  • YOLOv6-N: 37.5% AP на COCO val2017 при 1187 FPS с NVIDIA T4 GPU.
  • YOLOv6-S: 45.0% AP при 484 FPS.
  • YOLOv6-M: 50.0% AP при 226 FPS.
  • YOLOv6-L: 52.8% AP при 116 FPS.
  • YOLOv6-L6: Современная точность в реальном времени.

YOLOv6 также предоставляет квантованные модели для различных точностей и модели, оптимизированные для мобильных платформ.

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

В этом примере представлены простые примеры обучения и инференса YOLOv6. Полную документацию по этим и другим режимам см. на страницах документации Predict, Train, Val и Export.

Пример

YOLOv6 *.yaml файлы могут быть переданы в YOLO() класс для построения соответствующей модели на Python:

from ultralytics import YOLO

# Build a YOLOv6n model from scratch
model = YOLO("yolov6n.yaml")

# Display model information (optional)
model.info()

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference with the YOLOv6n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")

Для непосредственного запуска моделей доступны команды CLI:

# Build a YOLOv6n model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov6n.yaml data=coco8.yaml epochs=100 imgsz=640

# Build a YOLOv6n model from scratch and run inference on the 'bus.jpg' image
yolo predict model=yolov6n.yaml source=path/to/bus.jpg

Поддерживаемые задачи и режимы

Серия YOLOv6 предлагает ряд моделей, каждая из которых оптимизирована для высокопроизводительного Object Detection. Эти модели отвечают различным вычислительным потребностям и требованиям к точности, что делает их универсальными для широкого спектра приложений.

МодельИмена файловЗадачиИнференсВалидацияОбучениеЭкспорт
YOLOv6-Nyolov6n.yamlОбнаружение объектов
YOLOv6-Syolov6s.yamlОбнаружение объектов
YOLOv6-Myolov6m.yamlОбнаружение объектов
YOLOv6-Lyolov6l.yamlОбнаружение объектов
YOLOv6-Xyolov6x.yamlОбнаружение объектов

В этой таблице представлен подробный обзор вариантов модели YOLOv6, освещены их возможности в задачах detect объектов и их совместимость с различными режимами работы, такими как Inference, Validation, Training и Export. Эта всесторонняя поддержка гарантирует, что пользователи смогут в полной мере использовать возможности моделей YOLOv6 в широком спектре сценариев detect объектов.

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

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

@misc{li2023yolov6,
      title={YOLOv6 v3.0: A Full-Scale Reloading},
      author={Chuyi Li and Lulu Li and Yifei Geng and Hongliang Jiang and Meng Cheng and Bo Zhang and Zaidan Ke and Xiaoming Xu and Xiangxiang Chu},
      year={2023},
      eprint={2301.05586},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

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

Часто задаваемые вопросы

Что такое Meituan YOLOv6 и что делает его уникальным?

Meituan YOLOv6, выпущенный в 2022 году, представляет собой детектор объектов, который балансирует скорость и точность, разработанный для приложений реального времени. Он включает в себя заметные архитектурные улучшения, такие как модуль двунаправленной конкатенации (BiC) и стратегию обучения с использованием якорей (AAT). Эти инновации обеспечивают существенный прирост производительности с минимальным снижением скорости, что делает YOLOv6 конкурентоспособным выбором для задач обнаружения объектов.

Как модуль Bi-directional Concatenation (BiC) в YOLOv6 повышает производительность?

Модуль Bi-directional Concatenation (BiC) в YOLOv6 усиливает сигналы локализации в neck детектора, обеспечивая повышение производительности с незначительным влиянием на скорость. Этот модуль эффективно объединяет различные карты признаков, повышая способность модели точно detect объекты. Более подробную информацию о функциях YOLOv6 см. в разделе «Ключевые особенности».

Как я могу обучить модель YOLOv6 с использованием Ultralytics?

Вы можете обучить модель YOLOv6, используя Ultralytics, с помощью простых команд Python или CLI. Например:

Пример

from ultralytics import YOLO

# Build a YOLOv6n model from scratch
model = YOLO("yolov6n.yaml")

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
yolo train model=yolov6n.yaml data=coco8.yaml epochs=100 imgsz=640

Для получения дополнительной информации посетите страницу Train.

Какие существуют различные версии YOLOv6 и каковы их показатели производительности?

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

  • YOLOv6-N: 37.5% AP при 1187 FPS
  • YOLOv6-S: 45.0% AP при 484 FPS
  • YOLOv6-M: 50.0% AP при 226 FPS
  • YOLOv6-L: 52.8% AP при 116 FPS
  • YOLOv6-L6: Современная точность в сценариях реального времени

Эти модели оцениваются на наборе данных COCO с использованием NVIDIA T4 GPU. Подробнее о показателях производительности см. в разделе Показатели производительности.

Какую пользу приносит стратегия Anchor-Aided Training (AAT) для YOLOv6?

Обучение с использованием якорей (Anchor-Aided Training, AAT) в YOLOv6 сочетает в себе элементы подходов, основанных на якорях и без якорей, повышая возможности модели по обнаружению объектов без ущерба для эффективности инференса. Эта стратегия использует якоря во время обучения для улучшения предсказаний ограничивающих рамок, что делает YOLOv6 эффективной в различных задачах обнаружения объектов.

Какие операционные режимы поддерживаются моделями YOLOv6 в Ultralytics?

YOLOv6 поддерживает различные режимы работы, включая Inference, Validation, Training и Export. Эта гибкость позволяет пользователям в полной мере использовать возможности модели в различных сценариях. Ознакомьтесь с разделом Поддерживаемые задачи и режимы для получения подробного обзора каждого режима.



📅 Создано 2 лет назад ✏️ Обновлено 5 дней назад
glenn-jocherpderrengerLaughing-qY-T-GMatthewNoyceRizwanMunawar

Комментарии