YOLOv10: Обнаружение объектов в реальном времени от конца до конца
YOLOv10, созданный на основе Ultralytics Python Пакет, созданный исследователями из Университета Цинхуа, представляет новый подход к обнаружению объектов в реальном времени, устраняя недостатки постобработки и архитектуры модели, обнаруженные в предыдущих версиях YOLO . Устранив не максимальное подавление (NMS) и оптимизировав различные компоненты модели, YOLOv10 достигает современной производительности при значительном снижении вычислительных нагрузок. Обширные эксперименты демонстрируют превосходный компромисс между точностью и задержкой в различных масштабах модели.
Обзор
Обнаружение объектов в реальном времени направлено на точное предсказание категорий и положения объектов на изображениях с низкой задержкой. Серия YOLO была в авангарде этих исследований благодаря балансу между производительностью и эффективностью. Однако зависимость от NMS и неэффективность архитектуры мешали оптимальной производительности. YOLOv10 решает эти проблемы, внедряя последовательные двойные назначения для обучения без NMS и целостную стратегию построения модели, ориентированную на эффективность и точность.
Архитектура
Архитектура YOLOv10 опирается на сильные стороны предыдущих моделей YOLO и при этом внедряет несколько ключевых инноваций. Архитектура модели состоит из следующих компонентов:
- Backbone: Отвечая за извлечение признаков, магистраль в YOLOv10 использует улучшенную версию CSPNet (Cross Stage Partial Network), чтобы улучшить градиентный поток и уменьшить вычислительную избыточность.
- Neck: The neck is designed to aggregate features from different scales and passes them to the head. It includes PAN (Path Aggregation Network) layers for effective multi-scale feature fusion.
- One-to-Many Head: генерирует несколько предсказаний для каждого объекта во время обучения, чтобы обеспечить богатые сигналы супервизора и повысить точность обучения.
- One-to-One Head: генерирует одно лучшее предсказание для каждого объекта во время умозаключения, чтобы устранить необходимость в NMS, тем самым уменьшая задержку и повышая эффективность.
Основные характеристики
- Обучение без НМС: Использование последовательных двойных назначений устраняет необходимость в NMS, уменьшая задержку в выводах.
- Холистический дизайн модели: Всесторонняя оптимизация различных компонентов с точки зрения эффективности и точности, включая облегченные классификационные головки, пространственно-канальную развязанную выборку вниз и ранжированный дизайн блоков.
- Расширенные возможности модели: Включает в себя свертки с большими ядрами и модули частичного самовнушения, чтобы улучшить производительность без значительных вычислительных затрат.
Варианты моделей
YOLOv10 выпускается в разных модельных масштабах, чтобы удовлетворить различные потребности в применении:
- YOLOv10-N: нано-версия для крайне ограниченных ресурсов.
- YOLOv10-S: маленькая версия, балансирующая между скоростью и точностью.
- YOLOv10-M: средняя версия для универсального использования.
- YOLOv10-B: сбалансированная версия с увеличенной шириной для большей точности.
- YOLOv10-L: Большая версия для повышения точности за счет увеличения вычислительных ресурсов.
- YOLOv10-X: Экстрабольшая версия для максимальной точности и производительности.
Производительность
YOLOv10 превосходит предыдущие версии YOLO и другие современные модели по точности и эффективности. Например, YOLOv10-S в 1,8 раза быстрее, чем RT-DETR-R18 с аналогичным AP на наборе данных COCO, а YOLOv10-B имеет на 46% меньше задержек и на 25% меньше параметров, чем YOLOv9-C с той же производительностью.
Модель | Размер входа | APval | FLOPs (G) | Латентность (мс) |
---|---|---|---|---|
YOLOv10-N | 640 | 38.5 | 6.7 | 1.84 |
YOLOv10-S | 640 | 46.3 | 21.6 | 2.49 |
YOLOv10-M | 640 | 51.1 | 59.1 | 4.74 |
YOLOv10-B | 640 | 52.5 | 92.0 | 5.74 |
YOLOv10-L | 640 | 53.2 | 120.3 | 7.28 |
YOLOv10-X | 640 | 54.4 | 160.4 | 10.70 |
Латентность измеряется с помощью TensorRT FP16 на графическом процессоре T4.
Методология
Последовательные двойные задания для тренировок без НМС
YOLOv10 использует двойное назначение меток, сочетая стратегии "один ко многим" и "один к одному" во время обучения, чтобы обеспечить богатый контроль и эффективное сквозное развертывание. Метрика согласованного соответствия выравнивает контроль между обеими стратегиями, повышая качество предсказаний во время вывода.
Холистический дизайн моделей, ориентированный на эффективность и точность
Повышение эффективности
- Облегченная классификационная головка: Уменьшение вычислительных затрат на головку классификации за счет использования разделительных сверток по глубине.
- Пространственно-канальный Decoupled Down sampling: Разделяй пространственное сокращение и канальную модуляцию, чтобы минимизировать потерю информации и вычислительные затраты.
- Rank-Guided Block Design: Адаптирует дизайн блока на основе присущей ему избыточности этапов, обеспечивая оптимальное использование параметров.
Повышение точности
- Конволюция с большим ядром: Увеличивает рецептивное поле, чтобы повысить способность к извлечению признаков.
- Partial Self-Attention (PSA): включает в себя модули самовнушения, чтобы улучшить обучение глобальных представлений с минимальными накладными расходами.
Эксперименты и результаты
YOLOv10 прошел всестороннее тестирование на стандартных бенчмарках вроде COCO, продемонстрировав превосходную производительность и эффективность. Модель достигает самых современных результатов в различных вариантах, демонстрируя значительное улучшение задержки и точности по сравнению с предыдущими версиями и другими современными детекторами.
Сравнения
По сравнению с другими современными детекторами:
- YOLOv10-S / X на 1,8× / 1,3× быстрее, чем RT-DETR-R18 / R101 при схожей точности.
- У YOLOv10-B на 25% меньше параметров и на 46% меньше задержек, чем у YOLOv9-C, при той же точности.
- YOLOv10-L / X превосходит YOLOv8-L / X на 0,3 AP / 0,5 AP с 1,8× / 2,3× меньшим количеством параметров.
Вот подробное сравнение вариантов YOLOv10 с другими современными моделями:
Модель | Params (M) | FLOPs (G) | APval (%) | Латентность (мс) | Латентность (вперед) (мс) |
---|---|---|---|---|---|
YOLOv6-3.0-N | 4.7 | 11.4 | 37.0 | 2.69 | 1.76 |
Gold-YOLO-N | 5.6 | 12.1 | 39.6 | 2.92 | 1.82 |
YOLOv8-N | 3.2 | 8.7 | 37.3 | 6.16 | 1.77 |
YOLOv10-N | 2.3 | 6.7 | 39.5 | 1.84 | 1.79 |
YOLOv6-3.0-S | 18.5 | 45.3 | 44.3 | 3.42 | 2.35 |
Золото -YOLO-S | 21.5 | 46.0 | 45.4 | 3.82 | 2.73 |
YOLOv8-S | 11.2 | 28.6 | 44.9 | 7.07 | 2.33 |
YOLOv10-S | 7.2 | 21.6 | 46.8 | 2.49 | 2.39 |
RT-DETR-R18 | 20.0 | 60.0 | 46.5 | 4.58 | 4.49 |
YOLOv6-3.0-M | 34.9 | 85.8 | 49.1 | 5.63 | 4.56 |
Золото -YOLO-M | 41.3 | 87.5 | 49.8 | 6.38 | 5.45 |
YOLOv8-M | 25.9 | 78.9 | 50.6 | 9.50 | 5.09 |
YOLOv10-M | 15.4 | 59.1 | 51.3 | 4.74 | 4.63 |
YOLOv6-3.0-L | 59.6 | 150.7 | 51.8 | 9.02 | 7.90 |
Золото -YOLO-L | 75.1 | 151.7 | 51.8 | 10.65 | 9.78 |
YOLOv8-L | 43.7 | 165.2 | 52.9 | 12.39 | 8.06 |
RT-DETR-R50 | 42.0 | 136.0 | 53.1 | 9.20 | 9.07 |
YOLOv10-L | 24.4 | 120.3 | 53.4 | 7.28 | 7.21 |
YOLOv8-X | 68.2 | 257.8 | 53.9 | 16.86 | 12.83 |
RT-DETR-R101 | 76.0 | 259.0 | 54.3 | 13.71 | 13.58 |
YOLOv10-X | 29.5 | 160.4 | 54.4 | 10.70 | 10.60 |
Примеры использования
Для предсказания новых образов с помощью YOLOv10:
Пример
Для обучения YOLOv10 на пользовательском наборе данных:
Пример
Поддерживаемые задачи и режимы
The YOLOv10 models series offers a range of models, each optimized for high-performance Object Detection. These models cater to varying computational needs and accuracy requirements, making them versatile for a wide array of applications.
Модель | Имена файлов | Задания | Заключение | Валидация | Тренировка | Экспорт |
---|---|---|---|---|---|---|
YOLOv10 | yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.pt |
Обнаружение объектов | ✅ | ✅ | ✅ | ✅ |
Exporting YOLOv10
Due to the new operations introduced with YOLOv10, not all export formats provided by Ultralytics are currently supported. The following table outlines which formats have been successfully converted using Ultralytics for YOLOv10. Feel free to open a pull request if you're able to provide a contribution change for adding export support of additional formats for YOLOv10.
Export Format | Supported |
---|---|
TorchScript | ✅ |
ONNX | ✅ |
OpenVINO | ✅ |
TensorRT | ✅ |
CoreML | ❌ |
TF SavedModel | ❌ |
TF GraphDef | ❌ |
TF Lite | ❌ |
TF Край TPU | ❌ |
TF.js | ❌ |
PaddlePaddle | ❌ |
NCNN | ❌ |
Заключение
YOLOv10 устанавливает новый стандарт в области обнаружения объектов в реальном времени, устраняя недостатки предыдущих версий YOLO и внедряя инновационные стратегии проектирования. Его способность обеспечивать высокую точность при низких вычислительных затратах делает его идеальным выбором для широкого спектра реальных приложений.
Цитаты и благодарности
Мы хотели бы поблагодарить авторов YOLOv10 из Университета Цинхуа за их обширные исследования и значительный вклад в создание Ultralytics фреймворк:
Подробную реализацию, архитектурные новшества и результаты экспериментов можно найти в научной статье YOLOv10 и репозитории GitHub команды Университета Цинхуа.