YOLOv8 против YOLOv9: Подробное техническое сравнение детекторов объектов реального времени
Эволюция обнаружения объектов в реальном времени характеризуется постоянным стремлением к повышению точности, снижению задержек и улучшению использования аппаратных средств. Две основные вехи на этом пути — это Ultralytics YOLOv8 и YOLOv9. Хотя обе модели представляют собой передовые возможности в области компьютерного зрения, они отвечают различным потребностям развертывания, архитектурным философиям и экосистемам разработчиков.
Это всестороннее руководство разбирает технические различия, архитектурные инновации и практические аспекты развертывания, чтобы помочь вам выбрать подходящую модель для вашего следующего проекта в области искусственного интеллекта.
Происхождение модели и основные принципы
Прежде чем углубляться в метрики, крайне важно понять истоки и основные проектные цели, лежащие в основе каждой модели.
Ultralytics YOLOv8: Универсальный стандарт экосистемы
Выпущенный командой Ultralytics, YOLOv8 был разработан не просто как автономный детектор объектов, а как унифицированный, многозадачный фреймворк. Он отдает приоритет бесперебойному опыту разработчиков, низким требованиям к памяти и широкой аппаратной совместимости.
- Авторы: Гленн Джокер, Аюш Чаурасия и Цзин Цю
- Организация:Ultralytics
- Дата: 2023-01-10
- GitHub:ultralytics/ultralytics
- Документация:Документация YOLOv8
YOLOv9: Программируемая градиентная информация
Разработанный независимо исследователями из Academia Sinica, YOLOv9 уделяет особое внимание архитектурной теории, в частности, решая проблему информационного узкого места в глубоких нейронных сетях.
- Авторы: Чен-Яо Ванг и Хонг-Юань Марк Ляо
- Организация: Institute of Information Science, Academia Sinica, Taiwan
- Дата: 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 использует безякорную архитектуру с разделенной головой. Обрабатывая объектность, классификацию и регрессию по отдельным путям, модель быстрее сходится во время обучения и лучше обобщается на разнообразные пользовательские наборы данных.
Архитектура 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 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 сохраняет значительное преимущество в скорость inference, особенно при компиляции в такие форматы, как TensorRT или ONNX. Для приложений, требующих высокой частоты кадров (FPS) на ограниченном периферийном оборудовании (например, 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 во время обучения, что позволяет разработчикам использовать большие размеры пакетов на потребительском оборудовании.
Универсальность задач
Хотя YOLOv9 является отличным детектором ограничивающих рамок, реальный ИИ для компьютерного зрения часто требует большего. YOLOv8 — это универсальный инструмент, нативно поддерживающий сегментацию экземпляров, оценку позы, классификацию изображений и ориентированные ограничивающие рамки (obb). Использование единого фреймворка для нескольких задач значительно сокращает раздувание программного обеспечения и накладные расходы на обслуживание.
Взгляд в будущее
Если вы начинаете новый проект, вы также можете рассмотреть Ultralytics YOLO11 или передовую YOLO26, которые изначально имеют сквозные безNMS-дизайны.
Реальные примеры использования
Насколько эффективны эти модели в условиях эксплуатации?
Автономные дроны и робототехника
Для робототехники, требующей быстрого избегания препятствий, YOLOv8 является предпочтительным выбором. Сверхнизкая задержка YOLOv8n гарантирует, что автономные системы реагируют на окружающую среду в реальном времени, предотвращая столкновения. Встроенные возможности экспорта в OpenVINO и CoreML упрощают развертывание на маломощных чипах, характерных для коммерческих дронов.
Высокоразрешающее обнаружение дефектов
В специализированных производственных условиях, где detect микроскопических аномалий критически важен и допустима офлайн-обработка, YOLOv9 может быть очень эффективным. Архитектура PGI помогает сети сохранять мелкие визуальные детали, необходимые для выявления микротрещин или ошибок пайки печатных плат.
Умная розничная торговля и аналитика безопасности
Для отслеживания покупателей по торговым рядам или управления автоматизированными системами оплаты, YOLOv8 обеспечивает оптимальный баланс. Его способность одновременно выполнять detect и отслеживание нескольких объектов с использованием стандартных алгоритмов, таких как BoT-SORT, делает его надежным решением для розничных развертываний с несколькими камерами.
Сценарии использования и рекомендации
Выбор между YOLOv8 и YOLOv9 зависит от конкретных требований вашего проекта, ограничений развертывания и предпочтений экосистемы.
Когда выбирать YOLOv8
YOLOv8 является отличным выбором для:
- Универсальное многозадачное развертывание: Проекты, требующие проверенной модели для обнаружения, сегментации, классификации и оценки позы в экосистеме Ultralytics.
- Устоявшиеся производственные системы: Существующие производственные среды, уже построенные на архитектуре YOLOv8 со стабильными, хорошо протестированными конвейерами развертывания.
- Широкая поддержка сообщества и экосистемы: Приложения, использующие обширные учебные пособия, сторонние интеграции и активные ресурсы сообщества YOLOv8.
Когда выбирать YOLOv9
YOLOv9 рекомендуется для:
- Исследования информационного узкого места: Академические проекты, изучающие архитектуры Programmable Gradient Information (PGI) и Generalized Efficient Layer Aggregation Network (GELAN).
- Исследования по оптимизации потока градиентов: Исследования, направленные на понимание и снижение потери информации в глубоких слоях сети во время обучения.
- Бенчмаркинг обнаружения с высокой точностью: Сценарии, где высокая производительность YOLOv9 в бенчмарке COCO необходима в качестве эталонной точки для архитектурных сравнений.
Когда выбирать Ultralytics (YOLO26)
Для большинства новых проектов Ultralytics YOLO26 предлагает наилучшее сочетание производительности и удобства для разработчиков:
- Развертывание на периферии без NMS: Приложения, требующие стабильного вывода с низкой задержкой без сложности постобработки методом Non-Maximum Suppression.
- Среды только с CPU: Устройства без выделенного ускорения GPU, где до 43% более быстрая инференция YOLO26 на CPU обеспечивает решающее преимущество.
- Обнаружение мелких объектов: Сложные сценарии, такие как аэрофотосъемка с дронов или анализ данных с IoT-датчиков, где ProgLoss и STAL значительно повышают точность на крошечных объектах.
Следующая эволюция: YOLO26
Хотя YOLOv8 и YOLOv9 мощны, ландшафт ИИ быстро меняется. Для команд, требующих абсолютно лучшей производительности, недавно выпущенная YOLO26 основывается на успехах предыдущих поколений.
YOLO26 представляет сквозную архитектуру без NMS, которая полностью устраняет сложные узкие места постобработки, упрощая развертывание и делая задержку более предсказуемой. Благодаря новому оптимизатору MuSGD и улучшенным функциям потерь ProgLoss + STAL, а также удалению DFL (Distribution Focal Loss удалена для упрощения экспорта и лучшей совместимости с граничными/маломощными устройствами), он достигает до 43% более быстрой инференции на CPU, одновременно улучшая распознавание мелких объектов. Разработчикам, расширяющим границы граничных вычислений, настоятельно рекомендуется оценить YOLO26.
Подводя итог, хотя YOLOv9 предлагает увлекательные архитектурные исследования и превосходную пиковую точность, Ultralytics YOLOv8 остается наиболее практичным, хорошо поддерживаемым и универсальным выбором для подавляющего большинства инженеров компьютерного зрения, стремящихся быстро выпустить надежное программное обеспечение.