Meituan YOLOv6#
Обзор#
Выпущенная в 2022 году модель Meituan YOLOv6 обеспечивает оптимальный баланс скорости и точности, что делает её популярным решением для задач реального времени. В этой модели представлены заметные улучшения архитектуры и схемы обучения, в том числе модуль двунаправленной конкатенации (BiC), стратегия обучения с поддержкой якорей (AAT), а также усовершенствованные структура основной сети и шея для высокой точности на наборе данных COCO.
Обзор YOLOv6. Схема архитектуры модели показывает переработанные компоненты сети и стратегии обучения, обеспечившие значительное повышение производительности. (a) Шея YOLOv6 (показаны N и S). Для M/L вместо RepBlocks используются CSPStackRep. (b) Структура модуля BiC. (c) Блок SimCSPSPPF. (источник.)
Основные особенности#
- Модуль двунаправленной конкатенации (BiC): YOLOv6 добавляет модуль BiC в шею детектора, усиливая сигналы локализации и повышая производительность при незначительном снижении скорости.
- Стратегия обучения с поддержкой якорей (AAT): Эта модель предлагает AAT, объединяющую преимущества якорного и безъякорного подходов без ущерба для эффективности инференса.
- Усовершенствованная основная сеть и шея: Благодаря добавлению ещё одного этапа в основную сеть и шею YOLOv6 при выпуске обеспечивала высокую производительность на наборе данных COCO при входных изображениях высокого разрешения.
- Стратегия самодистилляции: Для повышения производительности компактных моделей YOLOv6 применяется новая стратегия самодистилляции. Она усиливает вспомогательную ветвь регрессии во время обучения и удаляет её на этапе инференса, чтобы избежать заметного снижения скорости.
Метрики производительности#
YOLOv6 предлагает несколько предобученных моделей разных размеров:
- YOLOv6-N: 37,5% AP на COCO val2017 при 1187 FPS на GPU NVIDIA T4.
- 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. Полную документацию по этим и другим режимам см. на страницах документации Предсказание, Обучение, Валидация и Экспорт.
Файлы YOLOv6 *.yaml можно передать классу YOLO(), чтобы создать соответствующую модель в Python:
from ultralytics import YOLO
# Создай модель YOLOv6n с нуля
model = YOLO("yolov6n.yaml")
# Показать информацию о модели (необязательно)
model.info()
# Обучить модель на демонстрационном наборе данных COCO8 в течение 100 эпох
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Выполни инференс с моделью YOLOv6n на изображении 'bus.jpg'
results = model("path/to/bus.jpg")Поддерживаемые задачи и режимы#
Серия YOLOv6 включает множество моделей, каждая из которых оптимизирована для высокопроизводительного обнаружения объектов. Эти модели рассчитаны на разные вычислительные возможности и требования к точности, поэтому подходят для самых разных приложений.
| Модель | Имена файлов | Задачи | Обучение | Валидация | Инференс | Экспорт |
|---|---|---|---|---|---|---|
| YOLOv6-N | yolov6n.yaml | Обнаружение объектов | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-S | yolov6s.yaml | Обнаружение объектов | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-M | yolov6m.yaml | Обнаружение объектов | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-L | yolov6l.yaml | Обнаружение объектов | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-X | yolov6x.yaml | Обнаружение объектов | ✅ | ✅ | ✅ | ✅ |
В этой таблице подробно представлены варианты моделей YOLOv6, их возможности в задачах обнаружения объектов и совместимость с различными режимами работы: инференс, валидация, обучение и экспорт. Благодаря такой широкой поддержке пользователи могут в полной мере использовать возможности моделей YOLOv6 в самых разных сценариях обнаружения объектов.
Цитирование и благодарности#
Мы хотели бы отметить значительный вклад авторов в область обнаружения объектов в реальном времени:
@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. Мы ценим их усилия по развитию этой области и предоставлению своей работы широкой аудитории.
Часто задаваемые вопросы#
Выпущенная в 2022 году Meituan YOLOv6 — это детектор объектов, который сочетает скорость и точность и предназначен для задач реального времени. В ней реализованы заметные улучшения архитектуры, такие как модуль двунаправленной конкатенации (BiC) и стратегия обучения с поддержкой якорей (AAT). Благодаря этим инновациям производительность существенно повышается при минимальном снижении скорости, что делает YOLOv6 конкурентоспособным решением для обнаружения объектов.
Модуль двунаправленной конкатенации (BiC) в YOLOv6 усиливает сигналы локализации в шее детектора и повышает производительность, почти не влияя на скорость. Этот модуль эффективно объединяет различные карты признаков, повышая способность модели точно обнаруживать объекты. Подробнее о функциях YOLOv6 см. в разделе Ключевые особенности.
Ты можешь обучить модель YOLOv6 с помощью Ultralytics, используя простые команды Python или CLI. Например:
Примерfrom ultralytics import YOLO # Создай модель YOLOv6n с нуля model = YOLO("yolov6n.yaml") # Обучить модель на демонстрационном наборе данных COCO8 в течение 100 эпох results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Подробнее см. на странице Обучение.
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 с использованием GPU NVIDIA T4. Подробнее о метриках производительности см. в разделе Метрики производительности.
Стратегия обучения с поддержкой якорей (AAT) в YOLOv6 объединяет элементы якорного и безъякорного подходов, повышая возможности обнаружения модели без ущерба для эффективности инференса. При обучении стратегия использует якоря, чтобы улучшить предсказания ограничивающих рамок, благодаря чему YOLOv6 эффективно справляется с разнообразными задачами обнаружения объектов.
YOLOv6 поддерживает различные режимы работы, включая инференс, валидацию, обучение и экспорт. Благодаря этой гибкости пользователи могут в полной мере использовать возможности модели в разных сценариях. Подробный обзор режимов см. в разделе Поддерживаемые задачи и режимы.