YOLOv10: обнаружение объектов в реальном времени от конца до конца
YOLOv10, созданный на основе Ultralytics Python Пакет, созданный исследователями из Университета Цинхуа, представляет новый подход к обнаружению объектов в реальном времени, устраняя недостатки постобработки и архитектуры модели, обнаруженные в предыдущих версиях YOLO . Благодаря устранению не максимального подавления (NMS) и оптимизации различных компонентов модели, YOLOv10 достигает современной производительности при значительном снижении вычислительных затрат. Обширные эксперименты демонстрируют превосходный компромисс между точностью и задержкой при различных масштабах модели.
Смотреть: Как обучить YOLOv10 на наборе данных SKU-110k с помощью Ultralytics | Retail Dataset.
Обзор
Обнаружение объектов в реальном времени направлено на точное предсказание категорий и положения объектов на изображениях с низкой задержкой. Серия YOLO была в авангарде этих исследований благодаря балансу между производительностью и эффективностью. Однако зависимость от NMS и неэффективность архитектуры препятствовали оптимальной производительности. YOLOv10 решает эти проблемы, внедряя последовательное двойное назначение для обучения без NMS и целостную стратегию построения модели, ориентированную на эффективность и точность.
Архитектура
Архитектура YOLOv10 опирается на сильные стороны предыдущих моделей YOLO и в то же время представляет собой несколько ключевых инноваций. Архитектура модели состоит из следующих компонентов:
- Магистраль: Ответственная за извлечение признаков, опорная сеть в YOLOv10 использует улучшенную версию CSPNet (Cross Stage Partial Network) для улучшения градиентного потока и сокращения вычислительной избыточности.
- Шея: Шея предназначена для объединения признаков из разных масштабов и передачи их в голову. Она включает в себя слои 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 использует двойное назначение меток, сочетая стратегии "один ко многим" и "один к одному" во время обучения, чтобы обеспечить богатый контроль и эффективное сквозное развертывание. Метрика согласованного соответствия выравнивает контроль между обеими стратегиями, повышая качество предсказаний в процессе вывода.
Целостный дизайн моделей, ориентированный на эффективность и точность
Повышение эффективности
- Облегченная головка классификации: Уменьшает вычислительные затраты на головку классификации за счет использования разделительных сверток по глубине.
- Пространственно-канальная декомпозиция с понижением дискретизации: Разделение пространственного сокращения и канальной модуляции для минимизации потери информации и вычислительных затрат.
- Проектирование блоков на основе ранжирования: Адаптирует конструкцию блока на основе присущего этапам избыточности, обеспечивая оптимальное использование параметров.
Повышение точности
- Конволюция с большим ядром: Расширяет рецептивное поле для повышения способности к извлечению признаков.
- Частичное самовнимание (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 |
Золото -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.
Формат экспорта | Поддержка экспорта | Экспортированная модель вывода | Примечания |
---|---|---|---|
TorchScript | ✅ | ✅ | Стандартный PyTorch формат модели. |
ONNX | ✅ | ✅ | Широко поддерживается для развертывания. |
OpenVINO | ✅ | ✅ | Оптимизировано для оборудования Intel . |
TensorRT | ✅ | ✅ | Оптимизировано для графических процессоров NVIDIA . |
CoreML | ✅ | ✅ | Только для устройств Apple. |
TF SavedModel | ✅ | ✅ | TensorFlowстандартный формат модели. |
TF GraphDef | ✅ | ✅ | Формат Legacy TensorFlow . |
TF Lite | ✅ | ✅ | Оптимизирован для мобильных и встроенных устройств. |
TF Край TPU | ✅ | ✅ | Специально для устройств Google's Edge TPU . |
TF.js | ✅ | ✅ | Среда JavaScript для использования в браузере. |
PaddlePaddle | ❌ | ❌ | Популярна в Китае; в мире не пользуется большой поддержкой. |
NCNN | ✅ | ❌ | Слой torch.topk не существует или не зарегистрирован |
Заключение
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) во время вывода благодаря использованию последовательных двойных назначений для обучения. Такой подход позволяет сократить время ожидания вывода и повысить эффективность предсказания. Архитектура также включает в себя головку "один к одному" для вывода, гарантируя, что каждый объект получит единственный наилучший прогноз. Подробное объяснение см. в разделе " Последовательные двойные назначения для обучения без НМС ".
Где можно найти параметры экспорта для моделей 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 при той же производительности. Подробные бенчмарки можно найти в разделе " Сравнения ".