YOLOv9 в сравнении с YOLOv8: техническое сравнение для detectирования объектов
Выбор оптимальной модели object detection включает в себя балансировку архитектурных инноваций с практическими потребностями развертывания. В этом техническом сравнении анализируются YOLOv9, модель, ориентированная на исследования и представляющая новые методы градиентной информации, и Ultralytics YOLOv8, готовая к производству структура, разработанная для универсальности и скорости. Мы рассмотрим их архитектуры, показатели производительности на наборе данных COCO dataset и идеальные варианты использования, чтобы помочь вам решить, какая модель подходит для вашего конвейера компьютерного зрения.
YOLOv9: Решение проблемы потери информации с помощью новой архитектуры
Выпущенная в начале 2024 года, YOLOv9 направлена на решение фундаментальной проблемы потери информации в глубоких нейронных сетях. По мере углубления сетей важные входные данные могут исчезать, не достигнув последних слоев, что усложняет процесс обучения.
- Авторы: Чен-Яо Ванг, Хонг-Юань Марк Ляо
- Организация:Институт информатики, Academia Sinica, Тайвань
- Дата: 21.02.2024
- Arxiv:arXiv:2402.13616
- GitHub:Репозиторий YOLOv9
- Документация:Документация Ultralytics YOLOv9
Основные инновации: PGI и GELAN
YOLOv9 представляет два основных архитектурных усовершенствования для борьбы с информационными узкими местами:
- Программируемая градиентная информация (PGI): Вспомогательная система управления, которая генерирует надежные градиенты для обновления весов сети, обеспечивая сохранение ключевых входных корреляций во всех слоях. Это особенно эффективно для обучения очень глубоких моделей.
- Обобщенная эффективная сеть агрегации слоев (GELAN): Легкая архитектура сети, которая отдает приоритет эффективности параметров и вычислительной скорости (FLOPs). GELAN позволяет YOLOv9 достигать высокой точности при достойной скорости логического вывода.
Сильные стороны и ограничения
YOLOv9 превосходен в академических бенчмарках, с YOLOv9-E вариант, достигающий первоклассных результатов показатели mAP. Это отличный выбор для исследователей, стремящихся расширить границы точности detect. Однако, будучи моделью, глубоко укоренившейся в исследованиях, ей не хватает широкой многозадачной поддержки, имеющейся в более зрелых экосистемах. Ее основная реализация фокусируется на detect ограничивающих рамок, а рабочие процессы обучения могут быть более ресурсоемкими по сравнению с оптимизированными промышленными решениями.
Ultralytics YOLOv8: Стандарт для Production AI
Ultralytics YOLOv8 представляет собой целостный подход к Vision AI. Вместо того чтобы сосредотачиваться исключительно на одной метрике, YOLOv8 разработана для обеспечения наилучшего пользовательского опыта, универсальности развертывания и баланса производительности. Она является частью обширной экосистемы Ultralytics, что обеспечивает ее надежность и простоту использования для разработчиков любого уровня подготовки.
- Авторы: Glenn Jocher, Ayush Chaurasia, Jing Qiu
- Организация:Ultralytics
- Дата: 10.01.2023
- GitHub:Репозиторий Ultralytics
- Документация:Документация Ultralytics YOLOv8
Архитектура и преимущества экосистемы
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.
Анализ производительности: скорость, точность и эффективность
Выбор между моделями часто сводится к конкретным требованиям проекта в отношении скорости и абсолютной точности. В таблице ниже сравниваются стандартные варианты на наборе валидации COCO.
| Модель | размер (пиксели) | 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.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 |
| 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 |
Основные выводы
- Высокая точность: Параметр
YOLOv9emodel достигает впечатляющих 55,6% mAP, превосходяYOLOv8x. Если вашему приложению требуется detect наиболее сложные объекты, а задержка является вторичной, YOLOv9e — сильный претендент. - Скорость в реальном времени: Для приложений, зависящих от скорости,
YOLOv8nиYOLOv8sпоказывают превосходную производительность.YOLOv8nособенно эффективен для развертывание на мобильных устройствах, предлагая легкое решение, которое невероятно быстро работает как на CPU, так и на GPU. - Готовность к развертыванию: В таблице выделены скорости 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, еще больше повышающая эффективность.