Meituan YOLOv6#
Обзор#
Meituan YOLOv6, выпущенная в 2022 году, обеспечивает оптимальный баланс между скоростью и точностью, что делает её популярным выбором для приложений реального времени. Эта модель включает несколько важных улучшений архитектуры и схемы обучения, включая реализацию модуля двунаправленной конкатенации (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. Полную документацию по этим и другим режимам смотри на страницах документации Predict, Train, Val и Export.
Файлы *.yaml YOLOv6 можно передать классу 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 включает ряд моделей, каждая из которых оптимизирована для высокопроизводительного обнаружения объектов. Эти модели подходят для различных вычислительных возможностей и требований к точности, что делает их универсальными для широкого спектра приложений.
| Модель | Имена файлов | Задачи | Обучение | Валидация | Вывод | Экспорт |
|---|---|---|---|---|---|---|
| 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. Мы высоко ценим их усилия по развитию этой области и предоставлению своей работы широкому сообществу.
Часто задаваемые вопросы#
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)Подробнее смотри на странице Train.
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 поддерживает различные рабочие режимы, включая инференс, валидацию, обучение и экспорт. Такая гибкость позволяет полностью использовать возможности модели в разных сценариях. Подробный обзор каждого режима смотри в разделе Поддерживаемые задачи и режимы.