YOLOv8 против YOLOv9: подробное техническое сравнение детекторов объектов реального времени
Эволюция детектирования объектов в реальном времени характеризуется постоянным стремлением к повышению точности, снижению задержек и улучшенному использованию оборудования. Двумя важными вехами на этом пути стали Ultralytics YOLOv8 и YOLOv9. Хотя обе модели представляют собой современные достижения в области компьютерного зрения, они ориентированы на различные требования к развертыванию, архитектурные философии и экосистемы разработчиков.
Это полное руководство раскрывает технические различия, архитектурные инновации и практические аспекты развертывания, чтобы помочь тебе выбрать правильную модель для твоего следующего проекта в области искусственного интеллекта.
Происхождение моделей и основные философии
Прежде чем погружаться в метрики, важно понять истоки и основные цели проектирования каждой модели.
Ultralytics YOLOv8: универсальный стандарт экосистемы
Выпущенная командой Ultralytics, YOLOv8 была разработана не просто как отдельный детектор объектов, а как единая многозадачная среда. Она отдает приоритет удобству разработчика, низким требованиям к памяти и широкой совместимости с оборудованием.
- Авторы: Glenn Jocher, Ayush Chaurasia и Jing Qiu
- Организация: Ultralytics
- Дата: 2023-01-10
- GitHub: ultralytics/ultralytics
- Документация: Документация YOLOv8
YOLOv9: программируемая градиентная информация
Разработанная независимо исследователями Academia Sinica, модель YOLOv9 в значительной степени сосредоточена на архитектурной теории, в частности, на решении проблемы информационного узкого места в глубоких нейронных сетях.
- Авторы: Chien-Yao Wang и Hong-Yuan Mark Liao
- Организация: Institute of Information Science, Academia Sinica, Тайвань
- Дата: 2024-02-21
- Arxiv: 2402.13616
- GitHub: WongKinYiu/yolov9
Если ты планируешь масштабное коммерческое развертывание, рассмотри возможность использования платформы Ultralytics для упрощенного облачного обучения, управления наборами данных и работы с API-эндпоинтами в один клик.
Архитектурный разбор
Архитектурные решения в глубоком обучении определяют, насколько эффективно модель обучается и как быстро она работает на целевом оборудовании, например NVIDIA Jetson или Intel CPU.
Архитектура YOLOv8: C2f и разделенные головы
В YOLOv8 представлен модуль C2f (Cross-Stage Partial bottleneck с двумя свертками), который заменил старый модуль C3. Это изменение улучшает прохождение градиентов и позволяет сети изучать более богатые представления признаков, не перегружая при этом память GPU.
Кроме того, YOLOv8 использует anchor-free (безякорный) дизайн с разделенной головой (decoupled head). Обрабатывая объектность, классификацию и регрессию по отдельным путям, модель быстрее сходится во время обучения и лучше обобщается на разнообразных пользовательских наборах данных.
Архитектура YOLOv9: PGI и GELAN
YOLOv9 внедряет Programmable Gradient Information (PGI) и Generalized Efficient Layer Aggregation Network (GELAN). PGI гарантирует, что важные данные не теряются при прохождении через слои сети, обеспечивая надежные градиенты для обновления весов. GELAN максимизирует эффективность параметров, позволяя модели достигать высокой точности, стараясь при этом держать FLOPs в разумных пределах.
Хотя архитектура YOLOv9 математически впечатляет, использование во время обучения специфических вспомогательных обратимых ветвей может усложнить настройку кода обучения по сравнению со стандартными конвейерами.
Метрики производительности и бенчмарки
В приведенной ниже таблице представлено прямое сравнение моделей разных размеров. Производительность измерена на наборе данных MS COCO, стандартном бенчмарке для детектирования объектов.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (М) | FLOPs (Б) |
|---|---|---|---|---|---|---|
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
| 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 |
Примечание: лучшие значения в каждом столбце выделены жирным шрифтом.
Анализ компромиссов
YOLOv9 достигает немного более высокой пиковой точности (mAP), особенно с ее более крупным вариантом e. Однако за это приходится платить. Ultralytics YOLOv8 сохраняет значительное преимущество в скорости вывода, особенно при компиляции в такие форматы, как TensorRT или ONNX. Для приложений, требующих высокой частоты кадров (FPS) на ограниченном по ресурсам edge-оборудовании (например, Raspberry Pi или старых мобильных чипах), варианты YOLOv8 n и s предлагают гораздо более практичный баланс производительности.
Эффективность обучения и интеграция в экосистему
Выбор модели включает в себя нечто большее, чем просто просмотр таблиц точности; опыт разработчика имеет первостепенное значение.
Преимущество Ultralytics: простота использования
Обучение YOLOv9 часто требует клонирования сложных репозиториев GitHub, тщательного управления средами PyTorch и ручной настройки весов вспомогательных функций потерь.
Напротив, Ultralytics YOLOv8 поддерживается удивительно оптимизированным Python API. Созданный для простоты использования, он нативно обрабатывает аугментацию данных, логирование (в такие инструменты, как Weights & Biases и Comet ML) и распределение нагрузки на оборудование.
from ultralytics import YOLO
# Load a pre-trained YOLOv8 small model
model = YOLO("yolov8s.pt")
# Train the model efficiently on custom data
results = model.train(data="custom_dataset.yaml", epochs=100, imgsz=640)
# Export for edge deployment
model.export(format="engine", half=True) # TensorRT exportЭтот единый API значительно сокращает время от прототипа до промышленного использования. Кроме того, YOLOv8 обычно требует меньше памяти CUDA во время обучения, что позволяет тебе использовать большие размеры пакетов (batch sizes) на потребительском оборудовании.
Универсальность задач
Хотя YOLOv9 является отличным детектором ограничивающих рамок, для реальных задач компьютерного зрения часто требуется больше. YOLOv8 — это универсальная мощная система, нативно поддерживающая сегментацию экземпляров, оценку позы, классификацию изображений и ориентированные ограничивающие рамки (OBB). Использование одного фреймворка для множества задач значительно снижает перегруженность программного обеспечения и накладные расходы на обслуживание.
Если ты начинаешь новый проект, возможно, стоит оценить Ultralytics YOLO11 или передовую модель YOLO26, которые нативно обладают дизайном end-to-end без использования NMS.
Реальные сценарии использования
Как эти модели показывают себя в продакшене?
Автономные дроны и робототехника
Для робототехники, требующей быстрого предотвращения столкновений, предпочтительным выбором является YOLOv8. Сверхнизкая задержка YOLOv8n гарантирует, что автономные системы реагируют на окружающую среду в реальном времени, предотвращая столкновения. Возможности нативного экспорта в OpenVINO и CoreML позволяют легко развертывать их на маломощных чипах, типичных для коммерческих дронов.
Детектирование дефектов с высоким разрешением
В специализированных производственных условиях, где обнаружение микроскопических аномалий критично, а офлайн-обработка приемлема, YOLOv9 может быть весьма эффективным. Архитектура PGI помогает сети сохранять мелкие визуальные детали, необходимые для идентификации микротрещин или ошибок пайки печатных плат.
Умная розничная торговля и аналитика безопасности
Для отслеживания покупателей в торговых залах или управления автоматизированными системами оплаты, YOLOv8 обеспечивает наилучший баланс. Его способность одновременно выполнять детектирование и многообъектное отслеживание с использованием стандартных алгоритмов, таких как BoT-SORT, делает его надежным решением для многокамерных торговых систем.
Варианты использования и рекомендации
Выбор между YOLOv8 и YOLOv9 зависит от твоих конкретных требований к проекту, ограничений развертывания и предпочтений в экосистеме.
Когда выбирать YOLOv8
YOLOv8 — отличный выбор для:
- Универсальное многозадачное развертывание: Проекты, требующие проверенной модели для обнаружения, сегментации, классификации и оценки позы внутри экосистемы Ultralytics.
- Устоявшиеся производственные системы: Существующие производственные среды, уже построенные на архитектуре YOLOv8 со стабильными, хорошо протестированными конвейерами развертывания.
- Широкая поддержка сообщества и экосистемы: Приложения, использующие преимущества обширных руководств, сторонних интеграций и активных ресурсов сообщества YOLOv8.
Когда выбирать YOLOv9
YOLOv9 рекомендуется для:
- Исследований информационных узких мест: академических проектов, изучающих архитектуры PGI (Programmable Gradient Information) и GELAN (Generalized Efficient Layer Aggregation Network).
- Изучения оптимизации градиентного потока: исследований, сфокусированных на понимании и смягчении потери информации в глубоких слоях сети во время обучения.
- Бенчмаркинга высокоточного детектирования: сценариев, где высокая производительность YOLOv9 на бенчмарке COCO нужна как точка отсчета для архитектурных сравнений.
Когда выбирать Ultralytics (YOLO26)
Для большинства новых проектов Ultralytics YOLO26 предлагает лучшее сочетание производительности и опыта разработчика:
- Периферийное развертывание без NMS: Приложениям требуется стабильный вывод с низкой задержкой без сложности постобработки Non-Maximum Suppression.
- Среды только с CPU: Устройства без выделенного GPU-ускорения, где преимущество YOLO26 в виде до 43% более быстрого вывода на CPU является решающим.
- Обнаружение мелких объектов: Сложные сценарии, такие как аэросъемка с дронов или анализ данных IoT-датчиков, где ProgLoss и STAL значительно повышают точность распознавания крошечных объектов.
Следующая эволюция: YOLO26
Хотя YOLOv8 и YOLOv9 мощны, ландшафт ИИ меняется быстро. Для команд, требующих абсолютной максимальной производительности, недавно выпущенная YOLO26 опирается на успехи этих предыдущих поколений.
YOLO26 внедряет end-to-end дизайн без использования NMS, что полностью устраняет сложные узкие места при пост-обработке, делая развертывание проще, а задержку — более предсказуемой. Благодаря новому оптимизатору MuSGD, улучшенным функциям потерь ProgLoss + STAL, а также удалению DFL Removal (Distribution Focal Loss удален для упрощенного экспорта и лучшей совместимости с edge-устройствами и устройствами с низким энергопотреблением), она достигает до 43% более быстрого вывода на CPU при улучшенном распознавании мелких объектов. Разработчикам, расширяющим границы edge-вычислений, настоятельно рекомендуется оценить YOLO26.
Подводя итог: в то время как YOLOv9 предлагает захватывающие архитектурные исследования и отличную пиковую точность, Ultralytics YOLOv8 остается самым практичным, хорошо поддерживаемым и универсальным выбором для подавляющего большинства инженеров в области компьютерного зрения, стремящихся быстро выпускать надежное программное обеспечение.