YOLOv8 и YOLOv9#
Эволюция обнаружения объектов в реальном времени характеризуется постоянным стремлением к повышению точности, снижению задержки и более эффективному использованию аппаратных ресурсов. Двумя важными этапами этого развития стали Ultralytics YOLOv8 и YOLOv9. Хотя обе модели демонстрируют передовые возможности в области компьютерного зрения, они ориентированы на разные требования к развертыванию, архитектурные подходы и экосистемы разработчиков.
В этом подробном руководстве рассматриваются технические различия, архитектурные нововведения и практические аспекты развертывания, чтобы помочь тебе выбрать подходящую модель для следующего проекта в области искусственного интеллекта.
Происхождение моделей и основные принципы#
Прежде чем переходить к метрикам, важно понять происхождение каждой модели и основные цели, заложенные в её дизайн.
Ultralytics YOLOv8: универсальный стандарт экосистемы#
Выпущенная командой Ultralytics, YOLOv8 была разработана не просто как отдельный детектор объектов, а как унифицированный фреймворк для решения нескольких задач. Приоритетами стали удобство работы разработчика, низкие требования к памяти и широкая совместимость с аппаратным обеспечением.
- Авторы: Glenn Jocher, Ayush Chaurasia и Jing Qiu
- Организация: Ultralytics
- Дата: 2023-01-10
- GitHub: ultralytics/ultralytics
- Документация: Документация YOLOv8
YOLOv9: программируемая информация о градиентах#
YOLOv9, независимо разработанная исследователями из Academia Sinica, уделяет особое внимание архитектурной теории, в частности проблеме информационного узкого места в глубоких нейронных сетях.
- Авторы: Chien-Yao Wang и Hong-Yuan Mark Liao
- Организация: Институт информационных наук Academia Sinica, Тайвань
- Дата: 2024-02-21
- Arxiv: 2402.13616
- GitHub: WongKinYiu/yolov9
Если ты планируешь крупномасштабное коммерческое развертывание, обрати внимание на Ultralytics Platform, которая упрощает облачное обучение, управление наборами данных и создание конечных точек API одним нажатием.
Подробный разбор архитектуры#
Архитектурные решения в глубоком обучении определяют, насколько эффективно модель обучается и насколько быстро работает на целевом оборудовании, например на NVIDIA Jetson или Intel CPU.
Архитектура YOLOv8: C2f и разделённые головы#
В YOLOv8 появился модуль C2f (узкое место с частичной обработкой между этапами и двумя свёртками), заменивший более старый модуль C3. Это изменение улучшает прохождение градиентов и позволяет сети изучать более содержательные представления признаков без существенного увеличения нагрузки на память GPU.
Кроме того, YOLOv8 использует архитектуру без anchor-боксов с разделённой головой. Обрабатывая оценку наличия объекта, классификацию и регрессию по отдельным направлениям, модель быстрее сходится во время обучения и лучше обобщается на разнообразные пользовательские наборы данных.
Архитектура YOLOv9: PGI и GELAN#
В YOLOv9 представлены программируемая информация о градиентах (PGI) и обобщённая эффективная сеть агрегации слоёв (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 сохраняет значительное преимущество в скорости инференса, особенно при компиляции в такие форматы, как 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", quantize=16) # TensorRT exportЭтот единый API значительно сокращает путь от прототипа до промышленной эксплуатации. Кроме того, YOLOv8 обычно требует меньше памяти CUDA во время обучения, позволяя разработчикам использовать большие размеры пакетов на потребительском оборудовании.
Универсальность задач#
Хотя YOLOv9 отлично подходит для обнаружения ограничивающих рамок, реальные задачи компьютерного зрения часто требуют большего. YOLOv8 — универсальная система с нативной поддержкой сегментации экземпляров, оценки позы, классификации изображений и ориентированных ограничивающих рамок (OBB). Использование одного фреймворка для нескольких задач значительно сокращает программный объём и затраты на сопровождение.
Если ты начинаешь новый проект, стоит также оценить Ultralytics YOLO11 или передовую YOLO26, в которых нативно реализованы сквозные архитектуры без NMS.
Практические сценарии использования#
Как эти модели показывают себя в промышленной эксплуатации?
Автономные дроны и робототехника#
Для робототехнических систем, которым требуется быстрое уклонение от препятствий, предпочтительным выбором является YOLOv8. Сверхнизкая задержка YOLOv8n позволяет автономным системам реагировать на окружающую обстановку в реальном времени и предотвращать столкновения. Нативные возможности экспорта в OpenVINO и CoreML упрощают развертывание на маломощных чипах, типичных для коммерческих дронов.
Обнаружение дефектов в изображениях высокого разрешения#
В специализированных производственных условиях, где критически важно обнаруживать микроскопические аномалии, а офлайн-обработка допустима, YOLOv9 может быть очень эффективной. Архитектура PGI помогает сети сохранять мелкие визуальные детали, необходимые для выявления тонких трещин или дефектов пайки на печатных платах.
Аналитика в умной рознице и системах безопасности#
Для отслеживания покупателей между рядами магазина или управления автоматизированными системами оплаты YOLOv8 обеспечивает оптимальный баланс. Возможность одновременно выполнять обнаружение и отслеживание нескольких объектов с использованием стандартных алгоритмов, таких как 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: приложений, требующих стабильного вывода с низкой задержкой без сложной постобработки с подавлением немаксимумов.
- Сред без GPU: устройств без выделенного ускорения GPU, где до 43% более быстрый вывод YOLO26 на CPU дает решающее преимущество.
- Обнаружения мелких объектов: сложных сценариев, таких как аэрофотосъемка с дронов или анализ данных IoT-сенсоров, где ProgLoss и STAL значительно повышают точность обнаружения крошечных объектов.
Следующий этап эволюции: YOLO26#
Хотя YOLOv8 и YOLOv9 обладают широкими возможностями, ландшафт AI быстро меняется. Для команд, которым нужна максимальная производительность, недавно выпущенная YOLO26 развивает успехи предыдущих поколений.
YOLO26 представляет сквозную архитектуру без NMS, полностью устраняющую сложные узкие места постобработки, что упрощает развертывание и делает задержку более предсказуемой. Благодаря новому оптимизатору MuSGD и улучшенным функциям потерь ProgLoss + STAL, а также удалению DFL (Distribution Focal Loss удалена для упрощения экспорта и улучшения совместимости с периферийными устройствами и устройствами с низким энергопотреблением), модель обеспечивает до 43% более быстрый инференс на CPU и одновременно улучшает распознавание небольших объектов. Разработчикам, расширяющим возможности периферийных вычислений, настоятельно рекомендуется оценить YOLO26.
Подводя итог: хотя YOLOv9 предлагает интересные архитектурные исследования и отличную пиковую точность, Ultralytics YOLOv8 остаётся наиболее практичным, хорошо поддерживаемым и универсальным выбором для подавляющего большинства инженеров по компьютерному зрению, стремящихся быстро выпускать надёжное программное обеспечение.