Link to this sectionYOLOv10: Детектирование объектов в реальном времени из конца в конец#
YOLOv10, выпущенная в мае 2024 года и созданная на базе Ultralytics Python package исследователями из Tsinghua University, представляет новый подход к обнаружению объектов в реальном времени, устраняя недостатки постпроцессинга и архитектуры моделей, характерные для предыдущих версий YOLO. Исключив немаксимальное подавление (NMS) и оптимизировав различные компоненты модели, YOLOv10 на момент выхода достигла отличной производительности со значительно сниженными вычислительными затратами. Ее концепция сквозного проектирования без NMS стала пионерским подходом, который был в дальнейшем развит в YOLO26.

Watch: How to Train YOLOv10 on SKU-110k Dataset using Ultralytics | Retail Dataset
Link to this sectionОбзор#
Детектирование объектов в реальном времени направлено на точное предсказание категорий и позиций объектов на изображениях с низкой задержкой. Серия YOLO находится в авангарде этих исследований благодаря балансу между производительностью и эффективностью. Однако зависимость от NMS и архитектурная неэффективность препятствовали оптимальной работе. YOLOv10 решает эти проблемы, внедряя consistent dual assignments для обучения без NMS и стратегию проектирования модели, ориентированную на целостную эффективность и точность.
Link to this sectionАрхитектура#
Архитектура YOLOv10 опирается на сильные стороны предыдущих моделей YOLO, внедряя при этом ряд ключевых инноваций. Архитектура модели состоит из следующих компонентов:
- Backbone: Отвечает за feature extraction; в YOLOv10 используется улучшенная версия CSPNet (Cross Stage Partial Network) для оптимизации потока градиентов и сокращения вычислительной избыточности.
- Neck: Предназначена для агрегирования признаков с разных масштабов и передачи их в head. Включает слои PAN (Path Aggregation Network) для эффективного слияния многомасштабных признаков.
- One-to-Many Head: Генерирует несколько предсказаний для каждого объекта во время обучения, обеспечивая богатые сигналы контроля и повышая точность обучения.
- One-to-One Head: Генерирует единственное лучшее предсказание для объекта во время вывода, чтобы исключить необходимость NMS, тем самым снижая задержку и повышая эффективность.
Link to this sectionКлючевые особенности#
- NMS-Free Training: Использует согласованные двойные назначения для устранения необходимости NMS, что снижает inference latency.
- Holistic Model Design: Комплексная оптимизация различных компонентов с точки зрения эффективности и точности, включая облегченные классификационные головы, пространственно-канальную декоплированную понижающую выборку и блочный дизайн с ранжированием.
- Enhanced Model Capabilities: Включает convolutions с большими ядрами и модули частичного self-attention для повышения производительности без существенных вычислительных затрат.
Link to this sectionВарианты модели#
YOLOv10 выпускается в различных масштабах для удовлетворения разных потребностей приложений:
- YOLOv10n: Nano-версия для сред с крайне ограниченными ресурсами.
- YOLOv10s: Small-версия, балансирующая скорость и точность.
- YOLOv10m: Medium-версия для универсального использования.
- YOLOv10b: Balanced-версия с увеличенной шириной для более высокой точности.
- YOLOv10l: Large-версия для большей точности ценой увеличения вычислительных ресурсов.
- YOLOv10x: Extra-large-версия для максимальной точности и производительности.
Link to this sectionПроизводительность#
YOLOv10 превосходит предыдущие версии YOLO и другие современные модели по точности и эффективности. Например, YOLOv10s в 1.8 раза быстрее RT-DETR-R18 при схожем AP на наборе данных COCO, а YOLOv10b имеет на 46% меньшую задержку и на 25% меньше параметров, чем YOLOv9-C при той же производительности.
Задержка измерена с помощью TensorRT FP16 на GPU T4.
| Модель | Размер входа | APval | FLOPs (G) | Задержка (мс) |
|---|---|---|---|---|
| [YOLOv10n][1] | 640 | 38.5 | 6.7 | 1.84 |
| [YOLOv10s][2] | 640 | 46.3 | 21.6 | 2.49 |
| [YOLOv10m][3] | 640 | 51.1 | 59.1 | 4.74 |
| [YOLOv10b][4] | 640 | 52.5 | 92.0 | 5.74 |
| [YOLOv10l][5] | 640 | 53.2 | 120.3 | 7.28 |
| [YOLOv10x][6] | 640 | 54.4 | 160.4 | 10.70 |
Link to this sectionМетодология#
Link to this sectionСогласованные двойные назначения для обучения без NMS#
YOLOv10 использует двойные назначения меток, объединяя стратегии «один-ко-многим» и «один-к-одному» во время обучения, чтобы обеспечить богатое наблюдение и эффективное развертывание «из конца в конец». Согласованная метрика сопоставления выравнивает наблюдение между обеими стратегиями, улучшая качество предсказаний во время inference.
Link to this sectionЦелостный дизайн модели, ориентированный на эффективность и Accuracy#
Link to this sectionУлучшения эффективности#
- Облегченная классификационная голова: Снижает вычислительные затраты классификационной головы за счет использования depth-wise separable convolutions.
- Пространственно-канальная декоплированная понижающая выборка: Разделяет пространственное сокращение и канальную модуляцию для минимизации потери информации и вычислительных затрат.
- Блочный дизайн с ранжированием: Адаптирует дизайн блоков на основе внутренней избыточности стадий, обеспечивая оптимальное использование параметров.
Link to this sectionУлучшения точности#
- Конволюция с большим ядром: Увеличивает receptive field для расширения способности извлечения признаков.
- Partial Self-Attention (PSA): Включает модули self-attention для улучшения глобального обучения представлений с минимальными накладными расходами.
Link to this sectionЭксперименты и результаты#
YOLOv10 прошла обширное тестирование на стандартных бенчмарках, таких как COCO, продемонстрировав превосходную производительность и эффективность. Модель достигает современных результатов во всех вариантах, показывая значительные улучшения в задержке и точности по сравнению с предыдущими версиями и другими современными детекторами.
Link to this sectionСравнения#

По сравнению с другими современными детекторами:
- YOLOv10s / x в 1.8× / 1.3× быстрее, чем RT-DETR-R18 / R101 при схожей точности
- YOLOv10b имеет на 25% меньше параметров и на 46% меньшую задержку, чем YOLOv9-C при той же точности
- YOLOv10l / x превосходят YOLOv8l / x на 0.3 AP / 0.5 AP при 1.8× / 2.3× меньшем количестве параметров
Ниже представлено подробное сравнение вариантов YOLOv10 с другими современными моделями:
| Модель | Params (M) | FLOPs (G) | mAPval 50-95 | Latency (ms) | Latency-forward (ms) |
|---|---|---|---|---|---|
| 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 |
| YOLOv8n | 3.2 | 8.7 | 37.3 | 6.16 | 1.77 |
| YOLOv10n | 2.3 | 6.7 | 39.5 | 1.84 | 1.79 |
| YOLOv6-3.0-S | 18.5 | 45.3 | 44.3 | 3.42 | 2.35 |
| Gold-YOLO-S | 21.5 | 46.0 | 45.4 | 3.82 | 2.73 |
| YOLOv8s | 11.2 | 28.6 | 44.9 | 7.07 | 2.33 |
| YOLOv10s | 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 |
| Gold-YOLO-M | 41.3 | 87.5 | 49.8 | 6.38 | 5.45 |
| YOLOv8m | 25.9 | 78.9 | 50.6 | 9.50 | 5.09 |
| YOLOv10m | 15.4 | 59.1 | 51.3 | 4.74 | 4.63 |
| YOLOv6-3.0-L | 59.6 | 150.7 | 51.8 | 9.02 | 7.90 |
| Gold-YOLO-L | 75.1 | 151.7 | 51.8 | 10.65 | 9.78 |
| YOLOv8l | 43.7 | 165.2 | 52.9 | 12.39 | 8.06 |
| RT-DETR-R50 | 42.0 | 136.0 | 53.1 | 9.20 | 9.07 |
| YOLOv10l | 24.4 | 120.3 | 53.4 | 7.28 | 7.21 |
| YOLOv8x | 68.2 | 257.8 | 53.9 | 16.86 | 12.83 |
| RT-DETR-R101 | 76.0 | 259.0 | 54.3 | 13.71 | 13.58 |
| YOLOv10x | 29.5 | 160.4 | 54.4 | 10.70 | 10.60 |
Значения параметров и FLOPs приведены для объединенной модели после model.fuse(), которая объединяет слои Conv и BatchNorm и удаляет вспомогательную «one-to-many» голову детектирования. Предобученные чекпоинты сохраняют полную архитектуру обучения и могут показывать более высокие показатели.
Link to this sectionПримеры использования#
Для прогнозирования на новых изображениях с помощью YOLOv10. Модели также можно обучать на облачных GPU через Ultralytics Platform:
from ultralytics import YOLO
# Load a pretrained YOLOv10n model
model = YOLO("yolov10n.pt")
# Perform object detection on an image
results = model("image.jpg")
# Display the results
results[0].show()Для обучения YOLOv10 на собственном наборе данных:
from ultralytics import YOLO
# Load YOLOv10n model from scratch
model = YOLO("yolov10n.yaml")
# Train the model
model.train(data="coco8.yaml", epochs=100, imgsz=640)Link to this sectionПоддерживаемые задачи и режимы#
Серия моделей YOLOv10 предлагает широкий выбор моделей, каждая из которых оптимизирована для высокопроизводительного Object Detection. Эти модели соответствуют различным вычислительным потребностям и требованиям к точности, что делает их универсальными для широкого спектра задач.
| Модель | Имена файлов | Задачи | Inference | Validation | Training | Экспорт |
|---|---|---|---|---|---|---|
| YOLOv10 | yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.pt | Обнаружение объектов (Object Detection) | ✅ | ✅ | ✅ | ✅ |
Link to this sectionЭкспорт YOLOv10#
Из-за новых операций, представленных в YOLOv10, в настоящее время поддерживаются не все форматы экспорта, предоставляемые Ultralytics. В следующей таблице указано, какие форматы были успешно конвертированы с использованием Ultralytics для YOLOv10. Не стесняйся отправить pull request, если можешь внести свой вклад в добавление поддержки экспорта дополнительных форматов для YOLOv10.
| Формат экспорта | Поддержка экспорта | Вывод экспортированной модели | Примечания |
|---|---|---|---|
| TorchScript | ✅ | ✅ | Стандартный формат модели PyTorch. |
| ONNX | ✅ | ✅ | Широко поддерживается для развертывания. |
| OpenVINO | ✅ | ✅ | Оптимизировано для оборудования Intel. |
| TensorRT | ✅ | ✅ | Оптимизировано для графических процессоров NVIDIA. |
| CoreML | ✅ | ✅ | Ограничено устройствами Apple. |
| TF SavedModel | ✅ | ✅ | Стандартный формат модели TensorFlow. |
| TF GraphDef | ✅ | ✅ | Устаревший формат TensorFlow. |
| TF Lite | ✅ | ✅ | Оптимизировано для мобильных и встроенных систем. |
| TF Edge TPU | ✅ | ✅ | Специфично для устройств Google Edge TPU. |
| TF.js | ✅ | ✅ | Среда JavaScript для использования в браузере. |
| PaddlePaddle | ❌ | ❌ | Популярно в Китае; меньшая глобальная поддержка. |
| NCNN | ✅ | ❌ | Слой torch.topk не существует или не зарегистрирован |
Link to this sectionЗаключение#
YOLOv10 установил новый стандарт в детекции объектов в реальном времени на момент своего выпуска, устранив недостатки предыдущих версий YOLO и внедрив инновационные стратегии проектирования. Его подход без NMS стал новаторским для сквозной детекции объектов в семействе YOLO. Для получения актуальной модели Ultralytics с улучшенной производительностью и выводом без NMS, ознакомься с YOLO26.
Link to this sectionЦитирование и благодарности#
Мы хотели бы выразить признательность авторам YOLOv10 из Tsinghua University за их обширные исследования и значительный вклад в структуру Ultralytics:
@inproceedings{wang2024yolov10,
title={YOLOv10: Real-Time End-to-End Object Detection},
author={Wang, Ao and Chen, Hui and Liu, Lihao and Chen, Kai and Lin, Zijia and Han, Jungong and Ding, Guiguang},
booktitle={Advances in Neural Information Processing Systems},
doi = {10.52202/079017-3429},
url = {https://proceedings.neurips.cc/paper_files/paper/2024/file/c34ddd05eb089991f06f3c5dc36836e0-Paper-Conference.pdf},
volume={37},
pages={107984--108011},
year={2024}
}Для подробной реализации, архитектурных инноваций и экспериментальных результатов, пожалуйста, обратись к научной статье по YOLOv10 и репозиторию GitHub от команды Tsinghua University.
Link to this sectionFAQ#
Link to this sectionЧто такое YOLOv10 и чем он отличается от предыдущих версий YOLO?#
YOLOv10, разработанный исследователями из Tsinghua University, представляет несколько ключевых инноваций в детекции объектов в реальном времени. Он исключает необходимость в подавлении немаксимумов (NMS) за счет использования последовательных двойных назначений во время обучения и оптимизированных компонентов модели для превосходной производительности при сниженных вычислительных затратах. Для получения более подробной информации об архитектуре и ключевых функциях, ознакомься с разделом Обзор YOLOv10.
Link to this sectionКак начать работу с запуском вывода с помощью YOLOv10?#
Для удобного вывода ты можешь использовать библиотеку Python Ultralytics YOLO или интерфейс командной строки (CLI). Ниже приведены примеры прогнозирования на новых изображениях с использованием YOLOv10:
from ultralytics import YOLO
# Load the pretrained YOLOv10n model
model = YOLO("yolov10n.pt")
results = model("image.jpg")
results[0].show()Дополнительные примеры использования см. в нашем разделе Примеры использования.
Link to this sectionКакие варианты моделей предлагает YOLOv10 и каковы их варианты применения?#
YOLOv10 предлагает несколько вариантов моделей для различных сценариев использования:
- YOLOv10n: подходит для сред с крайне ограниченными ресурсами
- YOLOv10s: баланс скорости и точности
- YOLOv10m: общее назначение
- YOLOv10b: более высокая точность при увеличенной ширине
- YOLOv10l: высокая точность ценой вычислительных ресурсов
- YOLOv10x: максимальная точность и производительность
Каждый вариант разработан для различных вычислительных потребностей и требований к точности, что делает их универсальными для множества приложений. Подробную информацию см. в разделе Варианты моделей.
Link to this sectionКак подход без NMS в YOLOv10 улучшает производительность?#
YOLOv10 устраняет необходимость в подавлении немаксимумов (NMS) во время вывода за счет использования последовательных двойных назначений при обучении. Этот подход сокращает задержку вывода и повышает эффективность прогнозирования. Архитектура также включает голову «один-к-одному» для вывода, гарантируя, что каждый объект получает один лучший прогноз. Подробное объяснение см. в разделе Последовательные двойные назначения для обучения без NMS.
Link to this sectionГде я могу найти варианты экспорта для моделей YOLOv10?#
YOLOv10 поддерживает несколько форматов экспорта, включая TorchScript, ONNX, OpenVINO и TensorRT. Однако из-за новых операций не все форматы экспорта, предоставляемые Ultralytics, в настоящее время поддерживаются для YOLOv10. Подробную информацию о поддерживаемых форматах и инструкциях по экспорту см. в разделе Экспорт YOLOv10.
Link to this sectionКаковы показатели производительности моделей YOLOv10?#
YOLOv10 превосходит предыдущие версии YOLO и другие современные модели как по точности, так и по эффективности. Например, YOLOv10s работает в 1.8 раза быстрее, чем RT-DETR-R18, при аналогичном AP на наборе данных COCO. YOLOv10b показывает задержку на 46% меньше и имеет на 25% меньше параметров, чем YOLOv9-C, при той же производительности. Подробные сравнительные данные можно найти в разделе Сравнения.