Перейти к содержанию

YOLOv9 в сравнении с YOLOv8: техническое сравнение для detectирования объектов

Выбор оптимальной модели object detection включает в себя балансировку архитектурных инноваций с практическими потребностями развертывания. В этом техническом сравнении анализируются YOLOv9, модель, ориентированная на исследования и представляющая новые методы градиентной информации, и Ultralytics YOLOv8, готовая к производству структура, разработанная для универсальности и скорости. Мы рассмотрим их архитектуры, показатели производительности на наборе данных COCO dataset и идеальные варианты использования, чтобы помочь вам решить, какая модель подходит для вашего конвейера компьютерного зрения.

YOLOv9: Решение проблемы потери информации с помощью новой архитектуры

Выпущенная в начале 2024 года, YOLOv9 направлена на решение фундаментальной проблемы потери информации в глубоких нейронных сетях. По мере углубления сетей важные входные данные могут исчезать, не достигнув последних слоев, что усложняет процесс обучения.

Основные инновации: PGI и GELAN

YOLOv9 представляет два основных архитектурных усовершенствования для борьбы с информационными узкими местами:

  1. Программируемая градиентная информация (PGI): Вспомогательная система управления, которая генерирует надежные градиенты для обновления весов сети, обеспечивая сохранение ключевых входных корреляций во всех слоях. Это особенно эффективно для обучения очень глубоких моделей.
  2. Обобщенная эффективная сеть агрегации слоев (GELAN): Легкая архитектура сети, которая отдает приоритет эффективности параметров и вычислительной скорости (FLOPs). GELAN позволяет YOLOv9 достигать высокой точности при достойной скорости логического вывода.

Сильные стороны и ограничения

YOLOv9 превосходен в академических бенчмарках, с YOLOv9-E вариант, достигающий первоклассных результатов показатели mAP. Это отличный выбор для исследователей, стремящихся расширить границы точности detect. Однако, будучи моделью, глубоко укоренившейся в исследованиях, ей не хватает широкой многозадачной поддержки, имеющейся в более зрелых экосистемах. Ее основная реализация фокусируется на detect ограничивающих рамок, а рабочие процессы обучения могут быть более ресурсоемкими по сравнению с оптимизированными промышленными решениями.

Узнайте больше о YOLOv9

Ultralytics YOLOv8: Стандарт для Production AI

Ultralytics YOLOv8 представляет собой целостный подход к Vision AI. Вместо того чтобы сосредотачиваться исключительно на одной метрике, YOLOv8 разработана для обеспечения наилучшего пользовательского опыта, универсальности развертывания и баланса производительности. Она является частью обширной экосистемы Ultralytics, что обеспечивает ее надежность и простоту использования для разработчиков любого уровня подготовки.

Архитектура и преимущества экосистемы

YOLOv8 использует голову обнаружения без anchor boxes и backbone C2f (Cross-Stage Partial bottleneck с 2 свертками), что улучшает распространение градиента, сохраняя при этом небольшой объем. Помимо архитектуры, его сила заключается в интеграции:

  • Простота использования: Благодаря унифицированному Python API и интерфейсу командной строки (CLI) обучение и развертывание модели занимает всего несколько строк кода.
  • Универсальность: В отличие от конкурентов, часто ограничивающихся detect, YOLOv8 изначально поддерживает Instance Segmentation, Pose Estimation, Oriented Bounding Boxes (OBB) и Image Classification.
  • Баланс производительности: Он предлагает исключительный компромисс между задержкой и точностью, что делает его подходящим для инференса в реальном времени на периферийных устройствах, таких как NVIDIA Jetson или Raspberry Pi.
  • Эффективность использования памяти: YOLOv8 обычно требует меньше памяти CUDA во время обучения по сравнению с архитектурами на основе transformer, что снижает порог вхождения для оборудования.

Интегрированные рабочие процессы

Модели Ultralytics легко интегрируются с такими инструментами, как TensorBoard для визуализации и MLflow для отслеживания экспериментов, что упрощает жизненный цикл MLOps.

Узнайте больше о YOLOv8

Анализ производительности: скорость, точность и эффективность

Выбор между моделями часто сводится к конкретным требованиям проекта в отношении скорости и абсолютной точности. В таблице ниже сравниваются стандартные варианты на наборе валидации COCO.

Модельразмер
(пиксели)
mAPval
50-95
Скорость
CPU ONNX
(мс)
Скорость
T4 TensorRT10
(мс)
параметры
(M)
FLOPs
(B)
YOLOv9t64038.3-2.32.07.7
YOLOv9s64046.8-3.547.126.4
YOLOv9m64051.4-6.4320.076.3
YOLOv9c64053.0-7.1625.3102.1
YOLOv9e64055.6-16.7757.3189.0
YOLOv8n64037.380.41.473.28.7
YOLOv8s64044.9128.42.6611.228.6
YOLOv8m64050.2234.75.8625.978.9
YOLOv8l64052.9375.29.0643.7165.2
YOLOv8x64053.9479.114.3768.2257.8

Основные выводы

  1. Высокая точность: Параметр YOLOv9e model достигает впечатляющих 55,6% mAP, превосходя YOLOv8x. Если вашему приложению требуется detect наиболее сложные объекты, а задержка является вторичной, YOLOv9e — сильный претендент.
  2. Скорость в реальном времени: Для приложений, зависящих от скорости, YOLOv8n и YOLOv8s показывают превосходную производительность. YOLOv8n особенно эффективен для развертывание на мобильных устройствах, предлагая легкое решение, которое невероятно быстро работает как на CPU, так и на GPU.
  3. Готовность к развертыванию: В таблице выделены скорости CPU ONNX для YOLOv8, что является критическим показателем для сред без GPU. Эта прозрачность данных отражает конструкцию YOLOv8 для широких сценариев развертывания, тогда как YOLOv9 часто тестируется в основном на высокопроизводительных GPU, таких как V100 или T4, в исследовательских контекстах.

Обучение и удобство использования

Одно из наиболее существенных различий заключается в опыте разработчиков. Ultralytics отдает приоритет подходу "все включено".

Простота с Ultralytics

Обучение модели YOLOv8 требует минимальной настройки. Библиотека автоматически обрабатывает увеличение данных, настройку гиперпараметров и загрузку предварительно обученных весов.

from ultralytics import YOLO

# Load a pre-trained YOLOv8 model
model = YOLO("yolov8n.pt")

# Train on a custom dataset with a single command
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")

Сложность исследований

Хотя YOLOv9 интегрирована в кодовую базу Ultralytics для облегчения доступа, оригинальные исследовательские репозитории часто требуют сложной конфигурации среды и ручного управления гиперпараметрами. Хорошо поддерживаемая экосистема Ultralytics гарантирует, что независимо от того, используете ли вы YOLOv8 или портированную YOLOv9, вы получаете выгоду от стабильных конвейеров CI/CD, обширной документации и поддержки сообщества через Discord.

Идеальные варианты использования

Выберите YOLOv9, если:

  • Максимальная точность имеет решающее значение: Проекты, такие как анализ медицинских изображений (например, detectирование опухолей), где важен каждый процентный пункт mAP.
  • Академические исследования: Вы исследуете новые архитектуры, такие как PGI, или проводите сравнительные исследования эффективности нейронных сетей.
  • Среды с высокой вычислительной мощностью: Целями развертывания являются мощные серверы (например, NVIDIA A100), где более высокие FLOP допустимы.

Выберите Ultralytics YOLOv8, если:

  • Требуются разнообразные задачи: Вам необходимо выполнять отслеживание объектов, segment или estimate позы в рамках единой структуры проекта.
  • Развертывание на периферии: Приложения, работающие на оборудовании с ограничениями, таком как умные камеры или дроны, где память и циклы CPU ограничены.
  • Быстрая разработка: Стартапы и корпоративные команды, которым необходимо быстро перейти от концепции к производству, используя форматы экспорта, такие как ONNX, TensorRT или OpenVINO.
  • Стабильность и поддержка: Вам требуется модель, поддерживаемая частыми обновлениями и большим сообществом для эффективного устранения неполадок.

Заключение

В то время как YOLOv9 представляет впечатляющие теоретические достижения и достигает высокой точности detect, Ultralytics YOLOv8 остается более практичным выбором для подавляющего большинства реальных приложений. Его баланс скорости, точности и универсальности в сочетании с удобным API и эффективным процессом обучения делает его лучшим решением для разработчиков.

Для тех, кто ищет самые последние новинки в линейке Ultralytics, рекомендуем изучить YOLO11, которая еще больше совершенствует эти атрибуты для достижения самых современных результатов. Однако, между двумя обсуждаемыми здесь моделями, YOLOv8 предлагает отлаженный, готовый к производству опыт, который ускоряет путь от данных к развертыванию.

Изучите другие модели

Если вас интересуют другие архитектуры, в документации Ultralytics представлены сравнения нескольких других моделей:

  • RT-DETR: Детектор на основе Transformer'а, обеспечивающий высокую точность, но с другими требованиями к ресурсам.
  • YOLOv5: Легендарный предшественник, известный своей исключительной стабильностью и широким распространением.
  • YOLO11: Последняя итерация от Ultralytics, еще больше повышающая эффективность.

Комментарии