Meituan YOLOv6#
Обзор#
Meituan YOLOv6, выпущенный в 2022 году, предлагает отличный баланс между скоростью и точностью, что делает его популярным выбором для приложений реального времени. Эта модель представляет несколько заметных улучшений в своей архитектуре и схеме обучения, включая реализацию модуля двунаправленной конкатенации (BiC), стратегию обучения с поддержкой анкеров (AAT) и улучшенный дизайн бэкбона и шейки для высокой точности на датасете COCO.
Обзор YOLOv6. Диаграмма архитектуры модели, показывающая переработанные компоненты сети и стратегии обучения, которые привели к значительному улучшению производительности. (а) Шейка YOLOv6 (показаны N и S). Примечание для M/L: RepBlocks заменен на CSPStackRep. (b) Структура модуля BiC. (c) Блок SimCSPSPPF. (источник).
Ключевые особенности#
- Модуль двунаправленной конкатенации (BiC): YOLOv6 внедряет модуль BiC в neck детектора, улучшая сигналы локализации и обеспечивая прирост производительности при практически незаметном снижении скорости.
- Стратегия обучения с поддержкой анкеров (AAT): Эта модель предлагает AAT, чтобы использовать преимущества как якорных, так и безякорных подходов без ущерба для эффективности инференса.
- Улучшенный дизайн backbone и neck: Благодаря расширению YOLOv6 ещё одним этапом в backbone и neck, эта модель на момент выхода показала высокие результаты на датасете 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
# 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")Поддерживаемые задачи и режимы#
Серия YOLOv6 предлагает ряд моделей, каждая из которых оптимизирована для высокопроизводительного обнаружения объектов. Эти модели удовлетворяют различные вычислительные потребности и требования к точности, что делает их универсальными для широкого спектра приложений.
| Модель | Имена файлов | Задачи | Training | Validation | Inference | Экспорт |
|---|---|---|---|---|---|---|
| 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. Мы ценим их усилия по продвижению этой области и обеспечению доступности их работы для широкого сообщества.
FAQ#
Meituan YOLOv6, выпущенный в 2022 году, — это детектор объектов, который балансирует скорость и точность и разработан для приложений реального времени. Он отличается заметными архитектурными улучшениями, такими как модуль двунаправленной конкатенации (BiC) и стратегия обучения с поддержкой якорей (AAT). Эти инновации обеспечивают значительный прирост производительности при минимальном снижении скорости, делая YOLOv6 конкурентоспособным выбором для задач обнаружения объектов.
Модуль двунаправленной конкатенации (BiC) в YOLOv6 усиливает сигналы локализации в шейке детектора, улучшая производительность с пренебрежимо малым влиянием на скорость. Этот модуль эффективно объединяет различные карты признаков, повышая способность модели точно обнаруживать объекты. Дополнительную информацию о функциях YOLOv6 смотри в разделе Основные характеристики.
Ты можешь обучить модель 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)Для получения дополнительной информации посети страницу Обучение.
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 поддерживает различные рабочие режимы, включая Инференс, Валидацию, Обучение и Экспорт. Эта гибкость позволяет пользователям полностью раскрыть потенциал модели в различных сценариях. Ознакомься с разделом Поддерживаемые задачи и режимы для получения подробного обзора каждого режима.