Meituan YOLOv6
Обзор
Meituan YOLOv6 — это передовой детектор объектов, который предлагает замечательный баланс между скоростью и точностью, что делает его популярным выбором для приложений реального времени. Эта модель представляет несколько заметных улучшений в своей архитектуре и схеме обучения, включая реализацию модуля Bi-directional Concatenation (BiC), стратегии anchor-aided training (AAT) и улучшенный backbone и neck design для современной точности на наборе данных COCO.
Обзор YOLOv6. Диаграмма архитектуры модели, показывающая переработанные сетевые компоненты и стратегии обучения, которые привели к значительному повышению производительности. (a) Neck YOLOv6 (показаны N и S). Обратите внимание, что для M/L RepBlocks заменен на CSPStackRep. (b) Структура модуля BiC. (c) Блок SimCSPSPPF. (источник).
Основные характеристики
- Модуль двунаправленного объединения (BiC): YOLOv6 представляет модуль BiC в neck части детектора, усиливая сигналы локализации и обеспечивая прирост производительности с незначительным снижением скорости.
- Стратегия обучения с использованием Anchor (AAT): Эта модель предлагает AAT, чтобы воспользоваться преимуществами как основанных на anchor, так и не использующих anchor парадигм без ущерба для эффективности инференса.
- Улучшенная архитектура Backbone и Neck: За счет углубления YOLOv6 путем добавления еще одного этапа в backbone и neck, эта модель достигает самых современных результатов на наборе данных COCO при высоком разрешении входных данных.
- Стратегия Self-Distillation: Реализована новая стратегия self-distillation для повышения производительности небольших моделей YOLOv6, улучшая вспомогательную регрессионную ветвь во время обучения и удаляя ее во время inference, чтобы избежать заметного снижения скорости.
Метрики производительности
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 также предоставляет квантованные модели для различных точностей и модели, оптимизированные для мобильных платформ.
Примеры использования
В этом примере представлены простые примеры обучения и inference 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 предлагает ряд моделей, каждая из которых оптимизирована для высокопроизводительного обнаружения объектов. Эти модели удовлетворяют различным вычислительным потребностям и требованиям к точности, что делает их универсальными для широкого спектра приложений.
Модель | Имена файлов | Задачи | Инференс | Валидация | Обучение | Экспорт |
---|---|---|---|---|---|---|
YOLOv6-N | yolov6n.yaml |
Обнаружение объектов | ✅ | ✅ | ✅ | ✅ |
YOLOv6-S | yolov6s.yaml |
Обнаружение объектов | ✅ | ✅ | ✅ | ✅ |
YOLOv6-M | yolov6m.yaml |
Обнаружение объектов | ✅ | ✅ | ✅ | ✅ |
YOLOv6-L | yolov6l.yaml |
Обнаружение объектов | ✅ | ✅ | ✅ | ✅ |
YOLOv6-X | yolov6x.yaml |
Обнаружение объектов | ✅ | ✅ | ✅ | ✅ |
В этой таблице представлен подробный обзор вариантов модели YOLOv6, освещающий их возможности в задачах обнаружения объектов и их совместимость с различными режимами работы, такими как Inference, Validation, Training и Export. Эта всесторонняя поддержка гарантирует, что пользователи смогут в полной мере использовать возможности моделей 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 и что делает его уникальным?
Meituan YOLOv6 — это современный детектор объектов, который обеспечивает баланс между скоростью и точностью, что идеально подходит для приложений реального времени. Он имеет заметные архитектурные улучшения, такие как модуль Bi-directional Concatenation (BiC) и стратегия Anchor-Aided Training (AAT). Эти инновации обеспечивают существенный прирост производительности с минимальным снижением скорости, что делает YOLOv6 конкурентоспособным выбором для задач обнаружения объектов.
Как модуль Bi-directional Concatenation (BiC) в YOLOv6 повышает производительность?
Модуль двунаправленного объединения (BiC) в YOLOv6 улучшает сигналы локализации в шейке детектора, обеспечивая повышение производительности с незначительным влиянием на скорость. Этот модуль эффективно объединяет различные карты признаков, повышая способность модели точно обнаруживать объекты. Более подробную информацию о функциях 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. Эта гибкость позволяет пользователям в полной мере использовать возможности модели в различных сценариях. Подробный обзор каждого режима можно найти в разделе Поддерживаемые задачи и режимы.