YOLOv10 против YOLOv9: всестороннее техническое сравнение
Область обнаружения объектов стремительно развивается, и очередные итерации архитектуры YOLO (You Only Look Once) расширяют границы скорости и точности. Два наиболее значительных последних вклада в эту область - это YOLOv10 и YOLOv9. Несмотря на то, что обе модели достигли передовой производительности на наборе данныхCOCO , они значительно отличаются друг от друга философией разработки и архитектурными задачами.
YOLOv10 ставит во главу угла низкую задержку и сквозную эффективность, устраняя необходимость в не максимальном подавленииNMS), в то время как YOLOv9 фокусируется на максимальном сохранении информации и точности благодаря программируемой градиентной информации (PGI). В данном руководстве приводится подробное техническое сравнение, которое поможет разработчикам и исследователям выбрать оптимальную модель для своих приложений компьютерного зрения.
YOLOv10: сквозной детектор реального времени
Выпущен в мае 2024 года исследователями из Университета Цинхуа, YOLOv10 представляет собой смену парадигмы в линейке YOLO . Основное нововведение - удаление этапа постобработки Non-Maximum Suppression (NMS), который традиционно был узким местом в задержке вывода.
Технические детали:
- Авторы: Ao Wang, Hui Chen, Lihao Liu, и др.
- Организация:Университет Цинхуа
- Дата: 2024-05-23
- Arxiv:Обнаружение объектов в режиме реального времени
- GitHub:THU-MIG/yolov10
Архитектура и Ключевые Инновации
Эффективность YOLOv10 достигается благодаря сочетанию последовательных двойных назначений и целостного дизайна модели, ориентированного на эффективность и точность.
- ОбучениеNMS: Традиционные модели YOLO полагаются на NMS для отсеивания дубликатов ограничительных рамок. В YOLOv10 используется стратегия двойного назначения при обучении модели. Ветвь "один ко многим" обеспечивает богатые сигналы супервизора для обучения, а ветвь "один к одному" гарантирует, что модель генерирует один наилучший прогноз для каждого объекта во время вывода. Это позволяет развертывать модель без NMS, значительно сокращая задержки в выводах.
- Оптимизация модели: Архитектура включает в себя облегченные классификационные головки, понижающую дискретизацию с развязкой по пространственным каналам и ранговый дизайн блоков. Эти особенности снижают избыточность вычислений и уменьшают потребление памяти, что делает модель высокоэффективной на оборудовании с ограниченными ресурсами.
Преимущество эффективности
Устранение NMS в YOLOv10 особенно полезно для пограничного развертывания. На устройствах с ограниченными ресурсами CPU отказ от вычислительных затрат на сортировку и фильтрацию тысяч ящиков-кандидатов может привести к значительному ускорению.
YOLOv9: мастерство сохранения информации
Представлена в феврале 2024 года Чиен-Яо Вангом и Хонг-Юаном Марком Ляо, YOLOv9 направлена на решение проблемы "информационного узкого места", присущей глубоким нейронным сетям. При прохождении данных через последовательные слои (извлечение признаков) важная информация может быть потеряна, что приводит к снижению точности, особенно для маленьких или detect объектов.
Технические детали:
- Авторы: Чен-Яо Ванг, Хонг-Юань Марк Ляо
- Организация:Институт информационных наук, Academia Sinica
- Дата: 21.02.2024
- Arxiv:Обучение тому, что вы хотите узнать, с помощью программируемой градиентной информации
- GitHub:WongKinYiu/yolov9
Архитектура и Ключевые Инновации
В YOLOv9 представлены новые концепции, позволяющие сети сохранять и использовать как можно больше входной информации.
- Программируемая градиентная информация (PGI): PGI - это вспомогательная система контроля, которая генерирует надежные градиенты для обновления весов сети. Это гарантирует, что глубокие слои получают полную входную информацию, смягчает проблему исчезающего градиента и улучшает сходимость.
- Обобщенная эффективная сеть агрегации уровней (Generalized Efficient Layer Aggregation Network, GELAN): Эта новая архитектура заменяет традиционную ELAN, использовавшуюся в предыдущих версиях. GELAN оптимизирует использование параметров и эффективность вычислений (FLOPs), позволяя YOLOv9 достичь более высокой точности при размере модели, сравнимом с предшественниками.
Глубокое обучение
Упор на сохранение информации делает YOLOv9 исключительно сильным в обнаружении объектов в сложных сценах, где детали могут быть потеряны во время операций понижающей дискретизации в магистрали.
Метрики производительности: Скорость против точности
Выбор между этими двумя моделями часто сводится к компромиссу между скоростью вывода и точностью обнаружения. В таблице ниже показаны различия в производительности при различных масштабах модели.
Анализ:
- Задержка: 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
- Развертывание краевого ИИ: Приложения, работающие на таких устройствах, как 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 обычно занимают меньше памяти по сравнению с альтернативами на основе трансформаторов, что облегчает обучение на графических процессорах потребительского класса.
Заключение
Оба YOLOv10 и YOLOv9 представляют собой значительные вехи в области обнаружения объектов. YOLOv10 благодаря инновационной архитектуре NMS, является безусловным победителем для приложений, в которых приоритет отдается скорости и эффективности. И наоборот, YOLOv9 остается надежным выбором для сценариев, требующих максимальной точности и сохранения информации.
Разработчикам, которые ищут самое современное и универсальное решение, мы также рекомендуем обратить внимание на YOLO11. YOLO11 опирается на сильные стороны предшественников, предлагая улучшенный баланс скорости, точности и возможностей для задач обнаружения, сегментации и оценки позы.
Изучите другие модели
- Ultralytics YOLO11 - Новейшая современная модель.
- Ultralytics YOLOv8 - Универсальная и зрелая модель для различных задач зрения.
- RT-DETR - Детектор на основе трансформатора для высокоточных приложений.