YOLOv10 vs. YOLOv9: Подробное техническое сравнение
Ландшафт object detection быстро развивался, и последовательные итерации архитектуры YOLO (You Only Look Once) расширяли границы скорости и точности. Двумя наиболее значительными недавними вкладами в эту область являются YOLOv10 и YOLOv9. Хотя обе модели демонстрируют современную производительность на наборе данных COCO, они значительно расходятся в своих философиях проектирования и архитектурных целях.
YOLOv10 отдает приоритет низкой задержке и сквозной эффективности, устраняя необходимость в немаксимальном подавлении (NMS), тогда как YOLOv9 фокусируется на максимизации удержания информации и точности с помощью программируемой градиентной информации (PGI). В этом руководстве представлено подробное техническое сравнение, которое поможет разработчикам и исследователям выбрать оптимальную модель для своих приложений компьютерного зрения.
YOLOv10: Детектор End-to-End реального времени
Выпущенная в мае 2024 года исследователями из Университета Цинхуа, YOLOv10 представляет собой смену парадигмы в линейке YOLO. Ее основным нововведением является удаление этапа постобработки Non-Maximum Suppression (NMS), который традиционно был узким местом для задержки при выводе.
Технические детали:
- Авторы: Ao Wang, Hui Chen, Lihao Liu, и др.
- Организация:Университет Цинхуа
- Дата: 2024-05-23
- Arxiv:Обнаружение объектов в реальном времени
- GitHub:THU-MIG/yolov10
Архитектура и Ключевые Инновации
YOLOv10 достигает своей эффективности благодаря сочетанию Consistent Dual Assignments и Holistic Efficiency-Accuracy Driven Model Design.
- Обучение без NMS: Традиционные модели YOLO полагаются на NMS для фильтрации дублирующихся ограничивающих рамок. YOLOv10 использует стратегию двойного назначения во время обучения модели. Ветвь «один ко многим» предоставляет расширенные контрольные сигналы для обучения, а ветвь «один к одному» гарантирует, что модель генерирует единственный лучший прогноз для каждого объекта во время inference. Это позволяет развертывать модель без NMS, что значительно снижает задержку inference.
- Оптимизация модели: Архитектура включает в себя облегченные классификационные головки, пространственно-канальную развязанную понижающую дискретизацию и блочную структуру с ранговым управлением. Эти функции снижают вычислительную избыточность и использование памяти, что делает модель очень эффективной на оборудовании с ограниченными ресурсами.
Преимущество в эффективности
Удаление NMS в YOLOv10 особенно выгодно для развертывания на периферии. На устройствах, где ресурсы CPU ограничены, отказ от вычислительных затрат на сортировку и фильтрацию тысяч потенциальных ограничивающих рамок может привести к существенному ускорению.
YOLOv9: Освоение сохранения информации
YOLOv9, представленный в феврале 2024 года Chien-Yao Wang и Hong-Yuan Mark Liao, нацелен на решение проблемы «информационного узкого места», присущей глубоким нейронным сетям. Когда данные проходят через последовательные слои (извлечение признаков), важная информация может быть потеряна, что приводит к снижению точности, особенно для небольших или трудно обнаруживаемых объектов.
Технические детали:
- Авторы: Чен-Яо Ванг, Хонг-Юань Марк Ляо
- Организация:Институт информатики, Academia Sinica
- Дата: 21.02.2024
- Arxiv:Обучение тому, что вы хотите изучать, с использованием программируемой информации о градиенте
- GitHub:WongKinYiu/yolov9
Архитектура и Ключевые Инновации
YOLOv9 представляет новые концепции, обеспечивающие сохранение и использование сетью как можно большего объема входной информации.
- Программируемая градиентная информация (PGI): PGI предоставляет вспомогательную структуру контроля, которая генерирует надежные градиенты для обновления весов сети. Это гарантирует, что глубокие слои получают полную входную информацию, смягчая проблему исчезающего градиента и улучшая сходимость.
- Обобщенная эффективная сеть агрегации слоев (GELAN): Эта новая архитектура заменяет обычную ELAN, использовавшуюся в предыдущих версиях. GELAN оптимизирует использование параметров и вычислительную эффективность (FLOPs), позволяя YOLOv9 достигать более высокой точности при размере модели, сопоставимом с ее предшественниками.
Понимание глубокого обучения
Благодаря тому, что YOLOv9 ориентирована на сохранение информации, она исключительно хорошо обнаруживает объекты в сложных сценах, где детали объектов могут быть потеряны во время операций понижающей дискретизации в backbone.
Метрики производительности: Скорость в сравнении с точностью
Выбор между этими двумя моделями часто сводится к компромиссу между скоростью вывода и точностью обнаружения. В таблице ниже показаны различия в производительности для различных масштабов моделей.
Анализ:
- Задержка (Latency): YOLOv10 стабильно превосходит YOLOv9 по задержке, особенно в моделях меньшего размера (N и S). Например, YOLOv10n достигает скорости инференса 1.56 мс на TensorRT, что значительно быстрее, чем сопоставимые модели.
- Точность: YOLOv9 превосходен в точности в верхнем диапазоне спектра. Модель YOLOv9e достигает замечательных 55,6% mAP, что делает ее превосходным выбором для приложений, где точность имеет первостепенное значение.
- Эффективность: YOLOv10 предлагает отличную точность на параметр. YOLOv10b достигает 52,7% mAP с меньшей задержкой, чем YOLOv9c, демонстрируя эффективность своей целостной конструкции.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
Идеальные варианты использования
Понимание сильных сторон каждой модели помогает в выборе правильного инструмента для ваших конкретных целей проекта.
Когда следует выбирать YOLOv10
- Развертывание Edge AI: Приложения, работающие на таких устройствах, как NVIDIA Jetson или Raspberry Pi, выигрывают от конструкции без NMS, которая снижает нагрузку на CPU.
- Высокочастотный анализ видео: Сценарии, требующие обработки видеопотоков с высокой частотой кадров, такие как мониторинг трафика или спортивная аналитика.
- Робототехника в реальном времени: Автономные системы, которые полагаются на контуры обратной связи с низкой задержкой для навигации и избежания препятствий.
Когда следует выбирать YOLOv9
- Высокоточная инспекция: Промышленный контроль качества, где пропуск дефекта (ложноотрицательный результат) обходится дорого.
- Обнаружение малых объектов: Приложения, включающие анализ спутниковых изображений или медицинскую визуализацию, где объекты малы и имеют мало признаков.
- Сложные сцены: Среды с высокой степенью перекрытия или загроможденности, где для различения объектов необходимо максимальное сохранение информации.
Использование с Ultralytics
Одним из значительных преимуществ использования этих моделей является их интеграция в экосистему Ultralytics. И YOLOv10, и YOLOv9 можно использовать через один и тот же унифицированный Python API и интерфейс командной строки (CLI), что упрощает рабочий процесс от обучения до развертывания.
Пример на Python
Следующий код демонстрирует, как загружать и запускать вывод с обеими моделями, используя ultralytics пакет.
from ultralytics import YOLO
# Load a YOLOv10 model (NMS-free, high speed)
model_v10 = YOLO("yolov10n.pt")
# Load a YOLOv9 model (High accuracy)
model_v9 = YOLO("yolov9c.pt")
# Run inference on an image
# The API remains consistent regardless of the underlying architecture
results_v10 = model_v10("https://ultralytics.com/images/bus.jpg")
results_v9 = model_v9("https://ultralytics.com/images/bus.jpg")
# Print results
for r in results_v10:
print(f"YOLOv10 Detections: {r.boxes.shape[0]}")
for r in results_v9:
print(f"YOLOv9 Detections: {r.boxes.shape[0]}")
Преимущество Ultralytics
Выбор Ultralytics для ваших проектов в области компьютерного зрения предлагает несколько преимуществ, выходящих за рамки просто архитектуры модели:
- Простота использования: Удобный API позволяет переключаться между YOLOv9, YOLOv10 и другими моделями, такими как YOLO11, просто изменив имя файла весов.
- Баланс производительности: Реализации Ultralytics оптимизированы для реальной производительности, балансируя между скоростью и точностью.
- Эффективность обучения: Фреймворк поддерживает такие функции, как автоматическое смешанное обучение (AMP) и обучение на нескольких GPU, что упрощает обучение пользовательских моделей на ваших собственных наборах данных.
- Требования к памяти: Модели Ultralytics обычно демонстрируют меньшее использование памяти по сравнению с альтернативами на основе transformer, что облегчает обучение на GPU потребительского класса.
Заключение
YOLOv10 и YOLOv9 представляют собой важные вехи в object detection. YOLOv10 — явный победитель для приложений, в которых приоритетом является скорость и эффективность, благодаря своей инновационной архитектуре без NMS. И наоборот, YOLOv9 остается надежным выбором для сценариев, требующих максимально возможной точности и сохранения информации.
Разработчикам, ищущим новейшее и наиболее универсальное решение, мы также рекомендуем изучить YOLO11. YOLO11 развивает сильные стороны своих предшественников, предлагая улучшенный баланс скорости, точности и функциональности для задач обнаружения, segment и оценки позы.
Изучите другие модели
- Ultralytics YOLO11 - новейшая современная модель.
- Ultralytics YOLOv8 - универсальная и зрелая модель для различных задач компьютерного зрения.
- RT-DETR — Детектор на основе Transformer'а для приложений, требующих высокой точности.