YOLOv10 vs YOLO11: Глубокое погружение в архитектуры детектирования объектов в реальном времени
Ландшафт компьютерного зрения постоянно развивается, и новые архитектуры расширяют границы возможного в обработке данных в реальном времени. Для разработчиков и исследователей, работающих в этой динамичной области, важно понимать нюансы между передовыми моделями. В этом подробном сравнении исследуются технические различия, компромиссы производительности и идеальные сценарии использования для YOLOv10 и Ultralytics YOLO11, двух высокоэффективных фреймворков для детектирования объектов.
Хотя обе модели демонстрируют выдающиеся результаты на эталонных наборах данных, их базовые подходы к проектированию и интеграция в экосистему значительно различаются. Изучив их архитектуры, ты сможешь определить, какое решение лучше всего соответствует твоим ограничениям при развертывании и целям проекта.
YOLOv10: Пионер в области сквозного детектирования без NMS
Выпущенная весной 2024 года, YOLOv10 представила новый подход к традиционному конвейеру детектирования объектов, напрямую устраняя задержки, связанные с постобработкой.
- Авторы: Ao Wang, Hui Chen, Lihao Liu и др.
- Организация: Tsinghua University
- Дата: 23 мая 2024 г.
- Научная статья: arXiv:2405.14458
- Исходный код: THU-MIG/yolov10 на GitHub
- Документация: Документация YOLOv10
Главной инновацией YOLOv10 является стратегия согласованных двойных назначений (consistent dual assignments), которая позволяет проводить обучение без использования NMS. Традиционные детекторы объектов сильно зависят от Non-Maximum Suppression (NMS) для фильтрации избыточных предсказаний ограничивающих рамок. Устранив этот этап, YOLOv10 обеспечивает по-настоящему сквозное детектирование, сокращая задержку вывода и упрощая развертывание на аппаратных ускорителях, таких как Neural Processing Units (NPUs), где оптимизация пользовательских операций NMS традиционно сопряжена с трудностями.
YOLO11: Универсальность и производительность, ориентированные на экосистему
Выпущенная позднее в том же году, YOLO11 представляет собой результат непрерывного совершенствования семейства моделей Ultralytics, сфокусированный на оптимальном балансе скорости, точности и удобства для разработчиков.
- Авторы: Гленн Джочер (Glenn Jocher) и Цзин Цю (Jing Qiu)
- Организация: Ultralytics
- Дата: 27 сентября 2024 г.
- Исходный код: Ultralytics на GitHub
- Интеграция с платформой: Платформа Ultralytics
YOLO11 разработана для промышленного использования. Хотя она отлично справляется со стандартным детектированием ограничивающих рамок, её настоящая сила заключается в универсальности. В отличие от YOLOv10, которая в основном ориентирована на детектирование объектов, YOLO11 изначально поддерживает задачи instance segmentation, pose estimation, image classification и Oriented Bounding Box (OBB), используя единую архитектуру. Она обладает удивительно низкими требованиями к памяти во время обучения, что делает её очень доступной для команд, работающих с потребительскими GPUs, по сравнению с более тяжелыми архитектурами на основе Transformer.
Сравнение производительности и метрик
При сравнении этих моделей важно посмотреть на то, как они работают в разных вариантах масштаба на стандартных эталонных тестах, таких как COCO dataset.
В таблице ниже показаны различия в производительности. YOLO11 часто превосходит YOLOv10 по показателю mAP в большинстве категорий размеров, сохраняя при этом высококонкурентную скорость вывода TensorRT.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (М) | FLOPs (Б) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
| YOLO11n | 640 | 39.5 | 56.1 | 1.5 | 2.6 | 6.5 |
| YOLO11s | 640 | 47.0 | 90.0 | 2.5 | 9.4 | 21.5 |
| YOLO11m | 640 | 51.5 | 183.2 | 4.7 | 20.1 | 68.0 |
| YOLO11l | 640 | 53.4 | 238.6 | 6.2 | 25.3 | 86.9 |
| YOLO11x | 640 | 54.7 | 462.8 | 11.3 | 56.9 | 194.9 |
Чтобы воспроизвести эту высокую скорость вывода локально, убедись, что ты экспортируешь свои модели в оптимизированные форматы, такие как OpenVINO для процессоров Intel или TensorRT для графических процессоров NVIDIA.
Архитектурный разбор
Методология обучения и эффективность
Архитектура YOLOv10 делает упор на сокращение вычислительной избыточности. Оптимизируя дизайн бэкбона и шеи (neck) с помощью комплексной стратегии, ориентированной на эффективность и точность, авторы из Университета Цинхуа смогли значительно снизить количество параметров в моделях среднего уровня (таких как YOLOv10m) по сравнению с предыдущими итерациями.
Тем не менее, эффективность обучения — это главная отличительная черта моделей Ultralytics. YOLO11 использует высокооптимизированный Python-пакет ultralytics, который абстрагирует сложную настройку гиперпараметров. Этот фреймворк автоматически обрабатывает расширенные методы аугментации данных, планирование скорости обучения и распределенное обучение на нескольких GPU «из коробки». Архитектура YOLO11 также демонстрирует отличный поток градиентов, что приводит к более быстрой сходимости и снижению использования VRAM во время фазы обучения.
Простота использования и преимущество экосистемы
Критическим фактором для внедрения на предприятии является хорошо поддерживаемая экосистема. Исследовательские репозитории, несмотря на свою новаторство, часто становятся неактивными после первоначальной публикации статьи. Экосистема Ultralytics, поддерживающая YOLO11, обеспечивает бесшовный сквозной опыт для разработчика.
Интегрируясь с такими инструментами, как Weights & Biases для отслеживания экспериментов и Roboflow для управления наборами данных, YOLO11 ускоряет переход от прототипа к продакшену. Простота использования очевидна благодаря упрощенному API, позволяющему разработчикам обучать и экспортировать модели всего несколькими строками кода.
from ultralytics import YOLO
# Initialize the YOLO11 small model
model = YOLO("yolo11s.pt")
# Train the model efficiently with optimized memory handling
results = model.train(data="coco8.yaml", epochs=50, imgsz=640, device="0")
# Export to ONNX format for deployment flexibility
model.export(format="onnx")Варианты использования и рекомендации
Выбор между YOLOv10 и YOLO11 зависит от твоих конкретных требований к проекту, ограничений развертывания и предпочтений в экосистеме.
Когда выбирать YOLOv10
YOLOv10 — отличный выбор, если:
- Обнаружение в реальном времени без NMS: Приложения, которые выигрывают от комплексного обнаружения без Non-Maximum Suppression, что снижает сложность развертывания.
- Сбалансированные компромиссы скорости и точности: Проекты, требующие хорошего баланса между скоростью вывода и точностью обнаружения для моделей различных масштабов.
- Consistent-Latency Applications: Deployment scenarios where predictable inference times are critical, such as robotics or autonomous systems.
Когда выбирать YOLO11
YOLO11 рекомендуется, если:
- Развертывания на периферии (Edge): коммерческих приложений на таких устройствах, как Raspberry Pi или NVIDIA Jetson, где надежность и активная поддержка имеют первостепенное значение.
- Многозадачных приложений компьютерного зрения: проектов, требующих обнаружения, сегментации, оценки позы и OBB в рамках единого унифицированного фреймворка.
- Быстрого прототипирования и развертывания: команд, которым необходимо быстро перейти от сбора данных к продакшену, используя оптимизированный Python API Ultralytics.
Когда выбирать Ultralytics (YOLO26)
Для большинства новых проектов Ultralytics YOLO26 предлагает лучшее сочетание производительности и опыта разработчика:
- Периферийное развертывание без NMS: Приложениям требуется стабильный вывод с низкой задержкой без сложности постобработки Non-Maximum Suppression.
- Среды только с CPU: Устройства без выделенного GPU-ускорения, где преимущество YOLO26 в виде до 43% более быстрого вывода на CPU является решающим.
- Обнаружение мелких объектов: Сложные сценарии, такие как аэросъемка с дронов или анализ данных IoT-датчиков, где ProgLoss и STAL значительно повышают точность распознавания крошечных объектов.
Изучение других архитектур
Хотя YOLOv10 и YOLO11 — отличные варианты, твой конкретный случай использования может выиграть от других архитектур, описанных в документации. Для рассуждений на основе последовательностей модели Transformer, такие как RT-DETR, обеспечивают высокую точность, хотя обычно требуют больших ресурсов памяти. С другой стороны, если тебе нужны возможности zero-shot для идентификации новых классов без переобучения, YOLO-World предлагает подход с открытым словарем, управляемый подсказками на естественном языке.
Следующее поколение: YOLO26
Для команд, стремящихся к абсолютному уровню современных технологий, недавно выпущенная Ultralytics YOLO26 объединяет лучшие функции обеих моделей, обсуждавшихся выше. Выпущенная в январе 2026 года, YOLO26 является основной рекомендацией для современных сценариев развертывания.
Опираясь на основы своих предшественников, YOLO26 изначально включает в себя сквозной дизайн без NMS, эффективно устраняя узкие места постобработки, которые YOLOv10 впервые решила, но делает это в рамках надежной экосистемы Ultralytics. Кроме того, YOLO26 включает функцию удаления DFL (Distribution Focal Loss), что радикально упрощает графы экспорта моделей и улучшает совместимость с периферийными устройствами и IoT-устройствами с низким энергопотреблением.
Стабильность обучения также совершила качественный скачок с внедрением оптимизатора MuSGD Optimizer, гибридного подхода, вдохновленного методологиями обучения LLM, который обеспечивает невероятно быструю сходимость. В сочетании с передовыми функциями потерь, такими как ProgLoss + STAL, YOLO26 обеспечивает заметные улучшения в распознавании мелких объектов. Для развертывания на стандартных периферийных устройствах эти архитектурные улучшения приводят к ускорению вывода на CPU до 43%, что делает YOLO26 непревзойденным выбором для любых задач компьютерного зрения.