YOLOv9 и YOLOX#
За последнее время архитектуры обнаружения объектов в реальном времени в сфере компьютерного зрения стремительно развивались. В этом руководстве подробно сравниваются YOLOv9 и YOLOX: рассматриваются их архитектурные новшества, показатели производительности и методы обучения. Если ты разрабатываешь интеллектуальные приложения для ИИ в производстве или изучаешь предиктивное моделирование, понимание этих моделей поможет принять обоснованное решение для следующего развертывания.
Архитектурные инновации#
YOLOv9: программируемая информация о градиентах#
YOLOv9 изменила подход к решению проблемы информационного узкого места, присущей глубоким нейронным сетям. К ключевым нововведениям относятся программируемая градиентная информация (PGI) и обобщенная эффективная сеть агрегации слоев (GELAN).
- Авторы: Chien-Yao Wang и Hong-Yuan Mark Liao
- Организация: Институт информатики, Academia Sinica, Тайвань
- Дата: 21 февраля 2024 года
- Arxiv: 2402.13616
- GitHub: WongKinYiu/yolov9
Сохраняя важные данные о признаках при прямом проходе, YOLOv9 гарантирует точность градиентов, используемых для обновления весов при обратном распространении ошибки. Эта архитектура отлично справляется с извлечением признаков, что позволяет ей обнаруживать мелкие объекты в сложных условиях, например на аэрофотоснимках и детализированных медицинских снимках.
YOLOX: от исследований к промышленности#
Выпущенная в середине 2021 года, YOLOX перевела серию YOLO на архитектуру без якорей. В ней появилась разделенная голова модели, в которой задачи классификации и локализации выполняются отдельно, а для улучшения сходимости при обучении используется стратегия назначения меток SimOTA.
- Авторы: Чжэн Гэ, Сунтао Лю, Фэн Ван, Цзэмин Ли и Цзянь Сунь
- Организация: Megvii
- Дата: 18 июля 2021 года
- Arxiv: 2107.08430
- GitHub: Megvii-BaseDetection/YOLOX
В свое время YOLOX стала прорывной моделью: она обеспечила высокую среднюю точность (mAP) и избавила от настройки гиперпараметров якорных рамок. Однако с тех пор ее архитектуру превзошли современные сети, лучше балансирующие между количеством параметров и сохранением признаков.
И YOLOX, и более новые модели Ultralytics используют архитектуры без якорей, упрощая настройку гиперпараметров и улучшая обобщение на разных наборах данных.
Анализ производительности#
Сравнение моделей на тесте MS COCO показывает преимущества YOLOv9: она стабильно обеспечивает более удачный баланс точности и FLOPs.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOXnano | 416 | 25.8 | - | - | 0.91 | 1.08 |
| YOLOXtiny | 416 | 32.8 | - | - | 5.06 | 6.45 |
| YOLOXs | 640 | 40.5 | - | 2.56 | 9.0 | 26.8 |
| YOLOXm | 640 | 46.9 | - | 5.43 | 25.3 | 73.8 |
| YOLOXl | 640 | 49.7 | - | 9.04 | 54.2 | 155.6 |
| YOLOXx | 640 | 51.1 | - | 16.1 | 99.1 | 281.9 |
Хотя YOLOX предлагает облегченные варианты, такие как YOLOX-Nano, для крайне ограниченных периферийных устройств, варианты YOLOv9 стабильно превосходят модели YOLOX сопоставимого размера по точности. Например, YOLOv9m достигает mAP 51,4% против 49,7% у YOLOXl, имея при этом менее половины параметров (20,1 млн против 54,2 млн).
Преимущества Ultralytics#
При выборе модели важна не только архитектура: скорость разработки и успех развертывания зависят от экосистемы. Использование YOLOv9 в экосистеме Ultralytics обеспечивает непревзойденную простоту использования и надежную поддержку сообщества.
В отличие от старых репозиториев с оригинальными исследованиями, фреймворк Ultralytics предоставляет единый API Python, который упрощает сложные конвейеры. Для обучения требуется значительно меньше памяти GPU, чем для многих аналогов, что обеспечивает впечатляющую эффективность обучения.
from ultralytics import YOLO
# Инициализируй модель YOLOv9c
model = YOLO("yolov9c.pt")
# Легко обучи модель на собственном наборе данных
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Проверка производительности модели
metrics = model.val()
# Экспортируй оптимизированную модель в формат TensorRT
model.export(format="engine")Благодаря встроенной поддержке множества задач, включая обнаружение объектов, сегментацию экземпляров и оценку позы, ты можешь быстро адаптировать решения для компьютерного зрения, не меняя весь код проекта.
Применение в реальных условиях#
Каждая из этих моделей обладает сильными сторонами, которые определяют подходящие для нее реальные задачи:
Высокоскоростная аналитика в розничной торговле#
Для современной розницы, где требуется распознавать товары в реальном времени, отлично подходит YOLOv9. Благодаря сохранению сложных деталей признаков эта модель идеально подходит для внедрения ИИ в розничной торговле, где нужно различать похожие товары на переполненных полках.
Устаревшие периферийные системы#
В условиях жестких ограничений оборудования или на специализированных NPU, которым сложно обрабатывать новые блоки агрегации, YOLOX-Nano иногда может оказаться подходящим решением. Ее простые, минималистичные схемы сверток порой предпочтительны для микроконтроллеров с крайне ограниченными ресурсами.
Автономная робототехника#
В робототехнике пропуск мелких объектов при навигации может привести к катастрофическим последствиям. Архитектура GELAN в YOLOv9 сохраняет признаки мелких удаленных препятствий на глубоких слоях сети и превосходит более старые модели в критически важных для безопасности сценариях, например в приложениях ИИ для автомобильной отрасли.
Сценарии использования и рекомендации#
Выбор между YOLOv9 и YOLOX зависит от требований конкретного проекта, ограничений развертывания и предпочтений в отношении экосистемы.
Когда выбирать YOLOv9#
YOLOv9 — хороший выбор для:
- Исследование информационного узкого места: Академические проекты, изучающие архитектуры программируемой информации о градиентах (PGI) и обобщённой эффективной сети агрегации слоёв (GELAN).
- Исследования оптимизации потока градиентов: Работы, посвящённые изучению и устранению потери информации в глубоких слоях сети во время обучения.
- Сравнительное тестирование точного детектирования: Сценарии, в которых высокая результативность YOLOv9 на тестах COCO нужна в качестве ориентира для сравнения архитектур.
Когда стоит выбрать YOLOX#
YOLOX подойдёт для следующих задач:
- Исследования обнаружения без якорей: Академические исследования, в которых чистая архитектура YOLOX без якорей используется как базовая модель для экспериментов с новыми головами обнаружения или функциями потерь.
- Сверхкомпактные периферийные устройства: Развертывание на микроконтроллерах или устаревшем мобильном оборудовании, где критически важен крайне малый размер варианта YOLOX-Nano (0,91 млн параметров).
- Исследования назначения меток SimOTA: Исследовательские проекты по изучению стратегий назначения меток на основе оптимального транспорта и их влияния на сходимость обучения.
Когда выбирать Ultralytics (YOLO26)#
Для большинства новых проектов Ultralytics YOLO26 предлагает оптимальное сочетание производительности и удобства разработки:
- Развертывание на периферийных устройствах без NMS: Приложения, которым необходим стабильный инференс с низкой задержкой без усложнения постобработки подавлением немаксимумов.
- Среды только с CPU: Устройства без выделенного ускорителя GPU, где до 43% более быстрый инференс YOLO26 на CPU даёт решающее преимущество.
- Обнаружение небольших объектов: Сложные сценарии, например съёмка с дронов или анализ данных IoT-датчиков, где ProgLoss и STAL заметно повышают точность обнаружения крошечных объектов.
Будущее: встречай YOLO26#
YOLOv9 стала впечатляющей вехой, но требования production-сред постоянно повышаются. Недавно выпущенная YOLO26 — новый стандарт для современного ИИ в сфере компьютерного зрения.
YOLO26 полностью меняет процесс развертывания благодаря необязательной сквозной архитектуре без NMS. Устраняя необходимость в сложном подавлении немаксимумов при постобработке с помощью nms=False, модель значительно сокращает задержку инференса.
Кроме того, в YOLO26 используется революционный оптимизатор MuSGD — гибрид SGD и Muon, в котором применены новшества из области обучения LLM для быстрой и стабильной сходимости. Удалив фокальную функцию потерь распределения (DFL), YOLO26 ускоряет инференс на CPU до 43% по сравнению с предшественниками и становится оптимальным выбором для периферийных устройств и корпоративных развертываний. Благодаря заметному улучшению распознавания мелких объектов с помощью ProgLoss и STAL YOLO26 эффективно превосходит и YOLOX, и YOLOv9.
Инженерам, изучающим современные архитектуры, также рекомендуем обратить внимание на YOLO11 и RT-DETR — мощные альтернативы в линейке Ultralytics. Используй непревзойденную производительность новейших моделей на платформе Ultralytics, чтобы обеспечить актуальность проекта в будущем.