YOLOv10 и YOLOv9#
Развитие компьютерного зрения в реальном времени обеспечивает постоянный рост скорости, точности и эффективности архитектур. Сравнение YOLOv10 и YOLOv9 для следующего развертывания показывает два разных подхода к устранению узких мест глубокого обучения. YOLOv9 сосредоточена на максимизации потока градиентной информации при обучении, а YOLOv10 представила сквозную архитектуру, устраняющую постобработку с помощью NMS.
В этом руководстве анализируются архитектурные новшества, показатели производительности и подходящие сценарии использования, чтобы помочь разработчикам и исследователям выбрать модель для задач компьютерного зрения.
YOLOv10: обнаружение в реальном времени без NMS#
YOLOv10 создана для устранения задержек, характерных для традиционных детекторов объектов, и предлагает сквозную архитектуру, которая избавляет от необходимости использовать подавление немаксимумов (NMS).
Технические характеристики и история разработки:
- Авторы: Ao Wang, Hui Chen, Lihao Liu и др.
- Организация: Университет Цинхуа
- Дата: 23 мая 2024 года
- Ссылки: Публикация на arXiv, Репозиторий на GitHub, Документация Ultralytics
Архитектура и сильные стороны#
Главный вклад YOLOv10 в эту область — стратегия согласованных двойных назначений для обучения без NMS. Устранение NMS сокращает задержку инференса, особенно на периферийных устройствах, где постобработка может стать узким местом всего конвейера. Модель оптимизирует различные компоненты с учетом эффективности и точности, обеспечивая удачный баланс скорости и количества параметров. Например, YOLOv10-S выполняет инференс за 2,49 мс на GPU T4 с TensorRT, что делает ее подходящей для высокоскоростной видеоаналитики и навигации роботов в реальном времени.
Недостатки#
Архитектура без NMS стала важным достижением для обнаружения ограничивающих рамок, но YOLOv10 — узкоспециализированный детектор объектов. Ей не хватает универсальности более новых моделей, которые изначально поддерживают сегментацию экземпляров или оценку позы.
Подготавливая YOLOv10 к эксплуатации, экспортируй модель в оптимизированные форматы, например TensorRT или ONNX, используя nms=False, чтобы выбрать голову один-к-одному без NMS. Запуск весов PyTorch без оптимизации в производственной среде может привести к более медленному, чем ожидалось, инференсу из-за неоптимизированных операций графа.
YOLOv9: программируемая информация о градиентах#
До появления YOLOv10 в YOLOv9 были предложены новые архитектурные концепции для решения проблемы информационного узкого места, свойственной глубоким нейронным сетям, что позволило эффективно использовать параметры.
Технические характеристики и история разработки:
- Авторы: Chien-Yao Wang и Hong-Yuan Mark Liao
- Организация: Институт информатики, Academia Sinica, Тайвань
- Дата: 21 февраля 2024 года
- Ссылки: Публикация на arXiv, Репозиторий на GitHub, Документация Ultralytics
Архитектура и сильные стороны#
YOLOv9 предлагает программируемую информацию о градиентах (PGI) и обобщенную эффективную сеть агрегации слоев (GELAN). PGI не позволяет терять важную информацию о целевых объектах при прохождении данных через глубокие слои сети и обеспечивает надежные градиенты для обновления весов. GELAN повышает эффективность использования параметров сети. Благодаря этим новшествам YOLOv9 достигает высокого показателя средней точности (mAP) на наборе данных MS COCO, часто превосходя более тяжелые модели при меньшем количестве FLOPs. Эта модель хорошо подходит исследователям, стремящимся максимально повысить показатели точности.
Недостатки#
Несмотря на высокую точность, YOLOv9 по-прежнему использует стандартную постобработку NMS. Поэтому, хотя операции нейронной сети выполняются быстро, фильтрация ограничивающих рамок может приводить к переменной задержке в зависимости от плотности объектов в кадре. Кроме того, по сравнению с более поздними моделями процесс обучения требует много памяти, поэтому для настройки на пользовательских наборах данных нужны более мощные ресурсы GPU.
Сравнение производительности#
В таблице ниже приведены основные метрики обеих моделей. Обрати внимание: YOLOv10 обычно обеспечивает меньшую задержку при работе с TensorRT, а YOLOv9 демонстрирует максимальную точность в самой крупной конфигурации.
| Модель | размер (пиксели) | mAPval50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 38.5 | - | 1.84 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.3 | - | 2.49 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.1 | - | 4.74 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.5 | - | 5.74 | 19.1 | 92.0 |
| YOLOv10l | 640 | 53.2 | - | 7.28 | 24.4 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 10.70 | 29.5 | 160.4 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.2 | 26.7 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.1 | 76.8 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.5 | 102.8 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 58.1 | 192.5 |
Следующее поколение: почему мы рекомендуем YOLO26#
Хотя YOLOv9 и YOLOv10 стали важными этапами развития, машинное обучение быстро меняется. Для производственных сред многие разработчики выбирают интегрированную экосистему Ultralytics Platform с активной поддержкой. В 2026 году Ultralytics рекомендует YOLO26 как для исследований, так и для корпоративного применения.
YOLO26 развивает идеи предшественников, предлагая удобный интерфейс, простой API и более низкие требования к памяти при обучении по сравнению с архитектурами на основе Transformer.
Основные нововведения YOLO26#
- Сквозная архитектура без NMS: развивая идеи YOLOv10, YOLO26 поддерживает опциональный сквозной инференс без постобработки NMS с помощью
nms=False, что упрощает развертывание и делает задержку более предсказуемой. - Инференс на CPU до 43% быстрее: YOLO26n работает на CPU до 43% быстрее YOLO11n, поэтому YOLO26 хорошо подходит для периферийного ИИ и встроенных систем без выделенных GPU.
- Оптимизатор MuSGD: гибрид SGD и Muon, вдохновленный оптимизациями для больших языковых моделей, который обеспечивает стабильное обучение и быструю сходимость.
- Удаление DFL: удаление дистрибутивной фокальной функции потерь упрощает процесс экспорта модели, повышая совместимость с маломощными устройствами и различными фреймворками для развертывания на периферии.
- Улучшения для отдельных задач: в отличие от детекторов для одной задачи, YOLO26 поддерживает обнаружение, сегментацию экземпляров, семантическую сегментацию, оценку глубины, классификацию, оценку позы и OBB. Для улучшения сегментации экземпляров используется функция потерь семантической сегментации, для более точной оценки позы — оценка остаточного логарифмического правдоподобия (RLE), а специальная функция потерь угла устраняет проблемы на границах OBB (ориентированных ограничивающих рамок).
Практическая реализация#
Обучать и развертывать эти модели просто с помощью пакета Python Ultralytics. В следующем примере показан процесс обучения Ultralytics, который автоматически выполняет планирование скорости обучения и аугментацию данных.
from ultralytics import YOLO
# Загрузи рекомендованную модель YOLO26
model = YOLO("yolo26n.pt") # Также совместима с 'yolov10n.pt' или 'yolov9c.pt'
# Обучи модель на примере набора данных COCO8
train_results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=0, batch=16)
# Выполнить инференс
predictions = model.predict("https://ultralytics.com/images/bus.jpg")
# Экспортируй модель в ONNX для упрощенного развертывания на периферийных устройствах
model.export(format="onnx")Сценарии использования и рекомендации#
Выбор между YOLOv10 и YOLOv9 зависит от конкретных требований проекта, ограничений развертывания и предпочтений в отношении экосистемы.
Когда выбирать YOLOv10#
YOLOv10 — хороший выбор для:
- Детектирование в реальном времени без NMS: Приложения, которым полезно сквозное детектирование без подавления немаксимумов, что упрощает развертывание.
- Сбалансированное соотношение скорости и точности: Проекты, в которых важно найти оптимальный баланс между скоростью инференса и точностью детектирования для моделей разных размеров.
- Приложения с постоянной задержкой: Сценарии развертывания, где важны предсказуемые времена инференса, например в робототехнике или автономных системах.
Когда выбирать YOLOv9#
YOLOv9 рекомендуется для таких задач:
- Исследование информационного узкого места: Академические проекты, изучающие архитектуры программируемой информации о градиентах (PGI) и обобщённой эффективной сети агрегации слоёв (GELAN).
- Исследования оптимизации потока градиентов: Работы, посвящённые изучению и устранению потери информации в глубоких слоях сети во время обучения.
- Сравнительное тестирование точного детектирования: Сценарии, в которых высокая результативность YOLOv9 на тестах COCO нужна в качестве ориентира для сравнения архитектур.
Когда выбирать Ultralytics (YOLO26)#
Для большинства новых проектов Ultralytics YOLO26 предлагает лучшее сочетание производительности и удобства для разработчиков:
- Развертывание на периферийных устройствах без NMS: Приложения, которым необходим стабильный инференс с низкой задержкой без усложнения постобработки подавлением немаксимумов.
- Среды только с CPU: устройства без выделенного ускорителя GPU, на которых YOLO26n работает на CPU до 43% быстрее YOLO11n.
- Обнаружение мелких объектов: сложные сценарии, например съемка с дронов или анализ данных датчиков IoT, где ProgLoss и STAL повышают точность распознавания крошечных объектов.
Заключение#
YOLOv9 и YOLOv10 обладают разными преимуществами. YOLOv9 повышает эффективность использования параметров и улучшает распространение градиентов, а YOLOv9e обеспечивает наивысшую точность в этом сравнении. YOLOv10 внедрила в семейство YOLO сквозное обнаружение ограничивающих рамок без задержки, связанной с NMS.
Разработчикам, которым нужен лучший баланс производительности, универсальности и удобства, стоит перейти на более новые модели. Благодаря оптимизатору MuSGD, ProgLoss + STAL для улучшения обнаружения мелких объектов и поддержке нескольких задач YOLO26 рекомендуется для реальных проектов в области компьютерного зрения.
Комментарии
Задай вопрос, поделись результатами или помоги кому-нибудь.