Перейти к содержанию

YOLOv9 против YOLOv10: техническое сравнение для обнаружения объектов

Выбор подходящей модели обнаружения объектов - критически важное решение для разработчиков и исследователей, позволяющее сбалансировать потребность в высокой точности с ограничениями, связанными с выводом данных в реальном времени и вычислительными ресурсами. В этом руководстве приводится подробное техническое сравнение между YOLOv9 и YOLOv10двумя современными архитектурами, которые раздвинули границы производительности компьютерного зрения в 2024 году.

В то время как YOLOv9 фокусируется на архитектурных инновациях для решения информационных узких мест глубокого обучения, YOLOv10 представляет собой смену парадигмы с дизайном NMS для минимальной задержки. Обе модели полностью интегрированы в пакетUltralytics Python , что позволяет пользователям легко обучать, проверять и внедрять их в рамках единой экосистемы.

Показатели эффективности и контрольные показатели

Компромиссы в производительности между этими двумя моделями различны. YOLOv9 , как правило, превосходит все остальные по средней точности (mAP), особенно в своих больших вариантах, что делает ее подходящей для сценариев, где точность имеет первостепенное значение. И наоборот, YOLOv10 разработана для повышения эффективности, значительно сокращая время ожидания вывода и количество параметров, что идеально подходит для пограничного развертывания.

Таблица ниже иллюстрирует эти различия на примере набора данныхCOCO . Примечательно, что YOLOv10n достигает невероятной скорости на графических процессорах T4, в то время как YOLOv9e доминирует в точности обнаружения.

Модельразмер
(пиксели)
mAPval
50-95
Скорость
CPU ONNX
(мс)
Скорость
T4 TensorRT10
(мс)
параметры
(M)
FLOPs
(B)
YOLOv9t64038.3-2.32.07.7
YOLOv9s64046.8-3.547.126.4
YOLOv9m64051.4-6.4320.076.3
YOLOv9c64053.0-7.1625.3102.1
YOLOv9e64055.6-16.7757.3189.0
YOLOv10n64039.5-1.562.36.7
YOLOv10s64046.7-2.667.221.6
YOLOv10m64051.3-5.4815.459.1
YOLOv10b64052.7-6.5424.492.0
YOLOv10l64053.3-8.3329.5120.3
YOLOv10x64054.4-12.256.9160.4

YOLOv9: решение проблемы узкого места в информации

Выйдет в феврале 2024 года, YOLOv9 направлена на решение фундаментальной теоретической проблемы глубоких нейронных сетей: потери информации при распространении данных через глубокие слои. Эта модель разработана таким образом, чтобы сеть сохраняла основные характеристики, необходимые для точного обнаружения объектов.

Технические детали:

Архитектура: PGI и GELAN

YOLOv9 представляет две новаторские концепции:

  1. Программируемая градиентная информация (PGI): Вспомогательная система контроля, которая предотвращает потерю информации во время обучения. Она обеспечивает генерацию надежных градиентов для обновления весов сети, решая проблемы глубокого контроля, обнаруженные в предыдущих архитектурах.
  2. Обобщенная эффективная сеть агрегирования уровней (GELAN): Новая архитектура, обеспечивающая максимальную эффективность параметров. GELAN позволяет модели достичь более высокой точности при меньшем количестве параметров по сравнению с традиционными конструкциями за счет оптимизации процесса агрегирования признаков по слоям.

Сильные и слабые стороны

YOLOv9 превосходно справляется с задачами, требующими высокой точности. Его способность сохранять подробную информацию о характеристиках делает его превосходным для обнаружения мелких объектов или навигации по сложным сценам. Однако за эту изощренность приходится платить сложностью. Такие архитектурные дополнения, как PGI, предназначены в первую очередь для обучения, то есть их можно удалить во время вывода, но при этом ресурсы на обучение могут быть выше. Кроме того, несмотря на свою эффективность, задержка в работе в целом выше, чем у специализированных эффективных конструкций YOLOv10.

Узнайте больше о YOLOv9

YOLOv10: Эра обнаружения NMS

YOLOv10разработанная исследователями из Университета Цинхуа и выпущенная в мае 2024 года, ставит во главу угла скорость работы в реальном времени и возможность сквозного развертывания. Его отличительной особенностью является отказ от не-максимального подавления (NMS), этапа постобработки, который традиционно был узким местом в задержке вывода.

Технические детали:

Архитектура: Последовательное двойное назначение

Основным новшеством YOLOv10 является последовательное двойное назначение во время обучения. Модель использует стратегию назначения "один ко многим" для богатого наблюдения во время обучения, но переключается на назначение "один к одному" для вывода. Такая архитектура позволяет модели напрямую предсказывать оптимальное ограничивающее поле для каждого объекта, делая постобработку NMS ненужной. В сочетании с блочным дизайном, ориентированным на ранжирование, YOLOv10 сокращает избыточность и вычислительные затраты (FLOPs).

Сильные и слабые стороны

Основное преимущество YOLOv10 - низкая задержка. Благодаря удалению NMS задержка вывода становится детерминированной и значительно меньшей, что очень важно для обработки видео в реальном времени. Он также может похвастаться превосходной параметрической эффективностью, как видно из сравнительной таблицы, где модели YOLOv10 достигают конкурентоспособной точности при меньшем количестве FLOP. Потенциальным недостатком является его относительно недавнее появление по сравнению с устоявшимися экосистемами, хотя интеграция в Ultralytics смягчает эту проблему. Кроме того, она специализируется на обнаружении, в то время как другие модели в экосистеме предлагают более широкую поддержку многозадачности.

Комплексный экспорт

Поскольку YOLOv10 NMS, экспорт в такие форматы, как ONNX или TensorRT , зачастую проще и позволяет получить "чистые" сквозные модели, не требующие сложных плагинов для постобработки.

Узнайте больше о YOLOv10

Сравнительный анализ для разработчиков

При внедрении этих моделей в производство, помимо сырых показателей, на первый план выходят несколько практических факторов.

Простота использования и экосистема

Обе модели получают огромные преимущества от того, что являются частью экосистемыUltralytics . Это означает, что разработчики могут переключаться между YOLOv9 и YOLOv10 , просто изменив строку модели, используя одни и те же конвейеры обучения, инструменты проверки и форматы развертывания.

  • Эффективность обучения: Модели Ultralytics обычно требуют меньше памяти, чем детекторы на основе трансформаторов, что позволяет проводить обучение на стандартных потребительских графических процессорах.
  • Универсальность: Хотя YOLOv9 и YOLOv10 ориентированы на обнаружение, API Ultralytics поддерживает другие задачи, такие как сегментация объектов и оценка позы с помощью таких моделей, как YOLO11 и YOLOv8, предлагая полный набор инструментов для различных проектов ИИ зрения.

Идеальные варианты использования

  • Выбирайте YOLOv9 , когда:

    • Ваша задача требует максимальной точности (например, медицинская визуализация, обнаружение дефектов в производстве).
    • Вы работаете с detect объектами, где сохранение информации имеет решающее значение.
    • Задержка - это второстепенная задача по сравнению с точностью.
  • Выберите YOLOv10 , когда:

    • Скорость имеет решающее значение. Такие приложения, как автономное вождение, навигация в робототехнике или видеоаналитика с высокой частотой кадров в секунду, выигрывают от использования конструкции NMS.
    • Развертывание на пограничных устройствах (например, NVIDIA Jetson или Raspberry Pi), где ресурсы GPU ограничены.
    • Вам нужно детерминированное время вывода без вариативности, вносимой обработкой NMS .

Пример кода: Запуск обеих моделей

Благодаря унифицированному API Ultralytics сравнение этих моделей на собственных данных не представляет сложности. Следующий код на Python демонстрирует, как загрузить и запустить вывод с обеими архитектурами.

from ultralytics import YOLO

# Load a pre-trained YOLOv9 model
model_v9 = YOLO("yolov9c.pt")

# Load a pre-trained YOLOv10 model
model_v10 = YOLO("yolov10n.pt")

# Run inference on an image
results_v9 = model_v9("path/to/image.jpg")
results_v10 = model_v10("path/to/image.jpg")

# Print results
print(f"YOLOv9 Detection: {len(results_v9[0].boxes)}")
print(f"YOLOv10 Detection: {len(results_v10[0].boxes)}")

Заключение

И YOLOv9 , и YOLOv10 представляют собой значительные вехи в развитии компьютерного зрения. YOLOv9 расширяет теоретические границы сохранения признаков и точности, что делает его мощным инструментом для исследований и задач, требующих высокой точности. YOLOv10 повышает эффективность, устраняя "узкое место" NMS и предлагая оптимизированное решение для приложений реального времени.

Пользователям, которые ищут оптимальное соотношение точности, скорости и богатства функций для решения различных задач (включая сегментацию и классификацию), мы также рекомендуем изучить YOLO11. Являясь последней итерацией от Ultralytics, YOLO11 усовершенствует лучшие атрибуты своих предшественников в надежный, готовый к работе пакет, подходящий практически для любого приложения по искусственному интеллекту зрения.

Изучите другие модели

Экосистема Ultralytics очень обширна. Если требования вашего проекта отличаются, рассмотрите эти альтернативы:

  • YOLO11: новейшая современная модель, обеспечивающая превосходную производительность и универсальность в таких областях, как обнаружение, сегментация, позирование, OBB и классификация.
  • YOLOv8: популярная и стабильная модель, известная своей широкой совместимостью и поддержкой многозадачности.
  • RT-DETR: детектор на основе трансформатора, обеспечивающий высокую точность без необходимости использования NMS, служит альтернативой архитектуре YOLO для конкретных случаев использования.

Используя платформу Ultralytics , вы получаете доступ ко всему набору моделей, гарантируя, что у вас всегда есть нужный инструмент для работы.


Комментарии