YOLOv10: Real-Time End-to-End Object Detection
YOLOv10, созданный на основе Ultralytics Python Пакет, созданный исследователями из Университета Цинхуа, представляет новый подход к обнаружению объектов в реальном времени, устраняя недостатки постобработки и архитектуры модели, обнаруженные в предыдущих версиях YOLO . Устранив не максимальное подавление (NMS) и оптимизировав различные компоненты модели, YOLOv10 достигает современной производительности при значительном снижении вычислительных нагрузок. Обширные эксперименты демонстрируют превосходный компромисс между точностью и задержкой в различных масштабах модели.
Смотри: Как обучить YOLOv10 на наборе данных SKU-110k, используя Ultralytics | Retail Dataset.
Обзор
Обнаружение объектов в реальном времени направлено на точное предсказание категорий и положения объектов на изображениях с низкой задержкой. Серия YOLO была в авангарде этих исследований благодаря балансу между производительностью и эффективностью. Однако зависимость от NMS и неэффективность архитектуры мешали оптимальной производительности. YOLOv10 решает эти проблемы, внедряя последовательные двойные назначения для обучения без NMS и целостную стратегию построения модели, ориентированную на эффективность и точность.
Архитектура
Архитектура YOLOv10 опирается на сильные стороны предыдущих моделей YOLO и при этом внедряет несколько ключевых инноваций. Архитектура модели состоит из следующих компонентов:
- Backbone: Responsible for feature extraction, the backbone in YOLOv10 uses an enhanced version of CSPNet (Cross Stage Partial Network) to improve gradient flow and reduce computational redundancy.
- Шея: Шея предназначена для объединения признаков с разных масштабов и передачи их в голову. Она включает в себя слои PAN (Path Aggregation Network) для эффективного слияния разномасштабных признаков.
- 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 GPU.
Методология
Последовательные двойные задания для тренировок без НМС
YOLOv10 использует двойное назначение меток, сочетая стратегии "один ко многим" и "один к одному" во время обучения, чтобы обеспечить богатый контроль и эффективное сквозное развертывание. Метрика согласованного соответствия выравнивает контроль между обеими стратегиями, повышая качество предсказаний во время вывода.
Holistic Efficiency-Accuracy Driven Model Design
Повышение эффективности
- Облегченная классификационная головка: Уменьшение вычислительных затрат на головку классификации за счет использования разделительных сверток по глубине.
- Пространственно-канальный 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) |
mAPval 50-95 |
Латентность (мс) |
Латентность - вперед (мс) |
---|---|---|---|---|---|
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 на пользовательском наборе данных:
Пример
Поддерживаемые задачи и режимы
Серия моделей YOLOv10 предлагает ряд моделей, каждая из которых оптимизирована для высокопроизводительного обнаружения объектов. Эти модели удовлетворяют различные вычислительные потребности и требования к точности, что делает их универсальными для широкого спектра приложений.
Модель | Имена файлов | Задания | Заключение | Валидация | Тренировка | Экспорт |
---|---|---|---|---|---|---|
YOLOv10 | yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.pt |
Обнаружение объектов | ✅ | ✅ | ✅ | ✅ |
Экспорт YOLOv10
Из-за новых операций, появившихся в YOLOv10, не все форматы экспорта, предоставляемые Ultralytics поддерживаются в настоящее время. В следующей таблице показано, какие форматы были успешно преобразованы с помощью Ultralytics для YOLOv10. Не стесняйтесь открывать запрос на вытягивание, если вы можете внести изменения для добавления поддержки экспорта дополнительных форматов для YOLOv10.
Формат экспорта | Export Support | Exported Model Inference | Примечания |
---|---|---|---|
TorchScript | ✅ | ✅ | Standard PyTorch model format. |
ONNX | ✅ | ✅ | Widely supported for deployment. |
OpenVINO | ✅ | ✅ | Optimized for Intel hardware. |
TensorRT | ✅ | ✅ | Optimized for NVIDIA GPUs. |
CoreML | ✅ | ✅ | Limited to Apple devices. |
TF SavedModel | ✅ | ✅ | TensorFlow's standard model format. |
TF GraphDef | ✅ | ✅ | Legacy TensorFlow format. |
TF Lite | ✅ | ✅ | Optimized for mobile and embedded. |
TF Край TPU | ✅ | ✅ | Specific to Google's Edge TPU devices. |
TF.js | ✅ | ✅ | JavaScript environment for browser use. |
PaddlePaddle | ❌ | ❌ | Popular in China; less global support. |
NCNN | ✅ | ❌ | Layer torch.topk not exists or registered |
Заключение
YOLOv10 устанавливает новый стандарт в области обнаружения объектов в реальном времени, устраняя недостатки предыдущих версий YOLO и внедряя инновационные стратегии проектирования. Его способность обеспечивать высокую точность при низких вычислительных затратах делает его идеальным выбором для широкого спектра реальных приложений.
Цитаты и благодарности
Мы хотели бы поблагодарить авторов YOLOv10 из Университета Цинхуа за их обширные исследования и значительный вклад в создание Ultralytics фреймворк:
Подробную реализацию, архитектурные новшества и результаты экспериментов можно найти в научной статье YOLOv10 и репозитории GitHub команды Университета Цинхуа.
ВОПРОСЫ И ОТВЕТЫ
Что такое YOLOv10 и чем он отличается от предыдущих версий YOLO ?
YOLOv10, разработанный исследователями из Университета Цинхуа, представляет несколько ключевых инноваций для обнаружения объектов в реальном времени. Он устраняет необходимость в не максимальном подавлении (NMS), используя последовательные двойные назначения во время обучения и оптимизированные компоненты модели для превосходной производительности при снижении вычислительных затрат. Подробнее об архитектуре и ключевых особенностях YOLOv10 читай в разделе " Обзор YOLOv10 ".
Как начать делать выводы с помощью YOLOv10?
Для упрощения процесса предсказания ты можешь использовать библиотеку Ultralytics YOLO Python или интерфейс командной строки (CLI). Ниже приведены примеры предсказания новых образов с помощью YOLOv10:
Пример
Больше примеров использования ты найдешь в нашем разделе " Примеры использования ".
Какие варианты моделей предлагает YOLOv10 и каковы их варианты использования?
YOLOv10 предлагает несколько вариантов моделей, рассчитанных на разные случаи использования:
- YOLOv10-N: Подходит для сред с ограниченными ресурсами
- YOLOv10-S: баланс между скоростью и точностью
- YOLOv10-M: использование общего назначения
- YOLOv10-B: более высокая точность при увеличенной ширине
- YOLOv10-L: высокая точность ценой вычислительных ресурсов
- YOLOv10-X: Максимальная точность и производительность
Каждый вариант рассчитан на разные вычислительные нужды и требования к точности, что делает их универсальными для самых разных приложений. Изучи раздел " Варианты моделей ", чтобы узнать больше.
Как подход без NMS в YOLOv10 улучшает производительность?
YOLOv10 избавляет тебя от необходимости подавления не-максимума (NMS) во время вычислений благодаря использованию последовательных двойных назначений для обучения. Такой подход уменьшает задержку в выводах и повышает эффективность предсказаний. Архитектура также включает в себя головку "один к одному" для вывода, гарантируя, что каждый объект получит единственное наилучшее предсказание. Подробное объяснение смотри в разделе Consistent Dual Assignments for NMS-Free Training.
Где я могу найти варианты экспорта для моделей YOLOv10?
YOLOv10 поддерживает несколько форматов экспорта, включая TorchScript, ONNX, OpenVINO и TensorRT. Однако не все форматы экспорта, представленные в Ultralytics , в настоящее время поддерживаются YOLOv10 из-за его новых операций. Подробнее о поддерживаемых форматах и инструкциях по экспорту читай в разделе " Экспорт YOLOv10 ".
Каковы показатели производительности моделей YOLOv10?
YOLOv10 превосходит предыдущие версии YOLO и другие современные модели как по точности, так и по эффективности. Например, YOLOv10-S в 1,8 раза быстрее, чем RT-DETR-R18 с аналогичным AP на наборе данных COCO. YOLOv10-B показывает на 46% меньше задержек и на 25% меньше параметров, чем YOLOv9-C при той же производительности. Подробные бенчмарки можно найти в разделе " Сравнения ".