YOLO против YOLOv9: техническое сравнение
В стремительно развивающемся мире компьютерного зрения выбор оптимальной модели обнаружения объектов является ключевым решением, которое влияет на все - от задержки системы до точности обнаружения. В этом подробном руководстве приводится техническое сравнение между YOLO, высокоскоростным детектором от Alibaba Group, и YOLOv9архитектурой, ориентированной на сохранение информации и эффективность. Мы проанализируем их архитектурные инновации, показатели производительности и идеальные сценарии использования, чтобы помочь разработчикам и исследователям сделать осознанный выбор.
Обе модели значительно улучшены по сравнению с предшественниками, YOLOv9особенно при использовании в экосистеме Ultralytics , обеспечивает убедительное сочетание современной точности, удобного инструментария для разработчиков и универсальных вариантов развертывания.
YOLO: проектирование, ориентированное на скорость, с помощью поиска нейронной архитектуры
YOLO - это разработанный компанией Alibaba фреймворк для обнаружения объектов, созданный по методологии "один раз для всех". Приоритетом для него является низкая задержка и высокая пропускная способность, что делает его сильным соперником для промышленных приложений, требующих строго определенных ограничений скорости на конкретном оборудовании.
Авторы: Xianzhe Xu, Yiqi Jiang, Weihua Chen, Yilun Huang, Yuan Zhang, and Xiuyu Sun
Organization:Alibaba Group
Date: 2022-11-23
Arxiv:https://arxiv.org/abs/2211.15444
GitHubYOLO
Архитектурные инновации
YOLO отличается автоматизированными процессами проектирования и эффективными компонентами:
- Поиск нейронной архитектуры (NAS): Вместо того чтобы вручную проектировать магистрали, YOLO использует нейроархитектурный поиск (NAS) для обнаружения эффективных структур (TinyNAS), приспособленных к различным вычислительным бюджетам.
- RepGFPN Neck: Представляет эффективную вариацию обобщенной сети пирамид признаков (GFPN), называемую RepGFPN. Этот компонент оптимизирует объединение признаков и поддерживает повторную параметризацию, что позволяет повысить скорость вывода.
- ZeroHead: В модели используется легкая головка обнаружения "ZeroHead", которая снижает вычислительные затраты, обычно связанные со сложными головками обнаружения.
- AlignedOTA: Для повышения стабильности и точности обучения используется AlignedOTA - стратегия присвоения меток, которая решает проблемы несоответствия между задачами классификации и регрессии.
Сильные стороны и ограничения
Основная сила YOLO заключается в скорости вычислений. Архитектура в значительной степени оптимизирована для высокой пропускной способности GPU , что делает ее подходящей для конвейеров видеоаналитики, где объем обработки является критическим. Кроме того, использование дистилляции повышает производительность небольших моделей.
Однако YOLO сталкивается с проблемами, связанными со зрелостью экосистемы. По сравнению с надежными инструментами, доступными для моделей Ultralytics , пользователи могут найти меньше ресурсов для развертывания, преобразования форматов и поддержки сообщества. Универсальность его задач также обычно ограничена обнаружением объектов, в то время как современные фреймворки часто поддерживают сегментацию и оценку позы.
YOLOv9: программируемые градиенты для максимальной эффективности
YOLOv9 представляет собой сдвиг в парадигме обнаружения объектов в реальном времени, решая фундаментальную проблему потери информации в глубоких нейронных сетях. Обеспечивая сохранение критически важных данных по всей глубине сети, YOLOv9 достигает высочайшей точности при поразительной эффективности параметров.
Авторы: Chien-Yao Wang, Hong-Yuan Mark Liao
Организация:Institute of Information Science, Academia Sinica, Taiwan
Дата: 2024-02-21
Arxiv:https://arxiv.org/abs/2402.13616
GitHub:https://github.com/WongKinYiu/yolov9
Документацияultralytics
Архитектура ядра: PGI и GELAN
YOLOv9 представляет две революционные технологии, которые отличают его от других:
- Программируемая градиентная информация (PGI): Глубокие сети часто страдают от информационного узкого места, когда входные данные теряются при прохождении слоев. PGI обеспечивает вспомогательную ветвь наблюдения, которая генерирует надежные градиенты, гарантируя, что глубокие слои получают полную информацию для точного обновления весов.
- Обобщенная эффективная сеть агрегации уровней (Generalized Efficient Layer Aggregation Network, GELAN): Эта новая архитектура сочетает в себе сильные стороны CSPNet и ELAN. GELAN разработана для максимального использования параметров, обеспечивая одновременно легкую и невероятно мощную модель.
Почему PGI имеет значение
В традиционных моделях глубокого обучения функция потерь на выходном слое часто не имеет достаточной информации для эффективного управления обновлением неглубоких слоев. PGI действует как мост, сохраняя входную информацию и обеспечивая обучение всей сети надежным характеристикам, что приводит к улучшению сходимости и повышению точности.
Преимущество Ultralytics
Используя YOLOv9 в экосистемеUltralytics , разработчики получают значительные преимущества по сравнению с отдельными реализациями:
- Простота использования: API и CLI Ultralytics Python абстрагируют сложные конвейеры обучения в простые команды.
- Эффективность обучения: Методологии Ultralytics обеспечивают оптимальное использование ресурсов. YOLOv9 обычно требует меньше памятиCUDA во время обучения по сравнению с детекторами на основе трансформаторов, что делает его доступным на более широком спектре оборудования.
- Универсальность: Хотя основной задачей YOLOv9 является обнаружение, фреймворк Ultralytics облегчает расширение этих архитектур для решения других задач и обеспечивает беспрепятственный экспорт в такие форматы, как ONNX, TensorRTи OpenVINO.
Анализ производительности: Точность против эффективности
Приведенное ниже сравнение подчеркивает компромиссы между YOLO и YOLOv9. В то время как YOLO обеспечивает конкурентоспособную скорость на конкретном оборудовании, YOLOv9 постоянно обеспечивает более высокую среднюю точность (mAP) при меньшем количестве параметров, демонстрируя превосходную архитектурную эффективность.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| DAMO-YOLOt | 640 | 42.0 | - | 2.32 | 8.5 | 18.1 |
| DAMO-YOLOs | 640 | 46.0 | - | 3.45 | 16.3 | 37.8 |
| DAMO-YOLOm | 640 | 49.2 | - | 5.09 | 28.2 | 61.8 |
| DAMO-YOLOl | 640 | 50.8 | - | 7.18 | 42.1 | 97.3 |
| 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 |
Основные выводы:
- Эффективность использования параметров: YOLOv9s достигает более высокого показателя mAP (46,8), чем DAMO-YOLOs (46,0), используя при этом менее половины параметров (7,1 М против 16,3 М). Это делает YOLOv9 значительно более удобным для хранения и более простым в обновлении по воздуху для пограничных устройств ИИ.
- Точность высшего класса: Самые крупные варианты YOLOv9 (c и e) выходят за пределы точности YOLO, достигая 55,6 mAP.
- Скорость: хотя YOLO демонстрирует небольшое преимущество в необработанной задержке TensorRT для средних моделей, YOLOv9t чрезвычайно быстр (2,3 мс), что делает его идеальным для мобильных приложений реального времени.
Методологии обучения и удобство использования
Опыт обучения существенно различается между двумя моделями. Опора YOLO на NAS подразумевает сложный этап поиска для получения архитектуры или использование предварительно отобранных магистралей. Его подход "один раз для всех" может быть вычислительно дорогим, если требуется настройка структуры магистрали.
В отличие от этого, YOLOv9, поддерживаемый Ultralytics, предлагает упрощенный режим обучения. Пользователи могут настраивать модели на пользовательских наборах данных, таких как Open Images V7, или специализированных коллекциях с минимальными настройками. Интеграция с Ultralytics HUB позволяет проводить обучение, визуализацию и развертывание в облаке одним щелчком мыши, обеспечивая демократичный доступ к передовому ИИ, не требуя глубоких знаний в области NAS или настройки гиперпараметров.
Пример кода: Обучение YOLOv9
Реализовать YOLOv9 очень просто с помощью пакета Ultralytics Python .
from ultralytics import YOLO
# Load a pre-trained YOLOv9 model
model = YOLO("yolov9c.pt")
# Train the model on the COCO8 dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("path/to/image.jpg")
Идеальные варианты использования
Когда следует выбирать YOLO
- Масштабная обработка видео: Если вы обрабатываете тысячи видеопотоков на специальных серверных GPU, где каждая миллисекунда задержки означает значительную экономию затрат на инфраструктуру, оптимизация YOLO для высокой пропускной способности может оказаться полезной.
- Фиксированные аппаратные ограничения: В сценариях, где аппаратное обеспечение известно и статично, архитектуры на базе NAS могут быть выбраны для идеального заполнения доступного вычислительного бюджета.
Когда выбирать YOLOv9
- Компьютерное зрение общего назначения: Для большинства разработчиков, занимающихся робототехникой, безопасностью или аналитикой розничной торговли, YOLOv9 предлагает оптимальный баланс точности и простоты использования.
- Граничное развертывание: Благодаря превосходной эффективности параметров (например, YOLOv9s), он лучше подходит для ограниченных устройств, таких как Raspberry Pi или NVIDIA Jetson, оставляя больше места для других приложений.
- Исследования и разработки: Архитектура PGI представляет собой интересную основу для дальнейших исследований эффективности глубокого обучения.
- Требуется зрелая экосистема: Если вашему проекту требуется надежное отслеживание, простой экспорт в CoreML или TFLite и активная поддержка сообщества, экосистема Ultralytics , окружающая YOLOv9 , не имеет себе равных.
Заключение
И YOLO , и YOLOv9 демонстрируют стремительные инновации в области обнаружения объектов. YOLO доказывает ценность нейронной архитектуры поиска для достижения максимальной скорости работы. Однако, YOLOv9 является более универсальным и эффективным решением для большинства пользователей.
Решая проблему узкого места в информации глубокого наблюдения с помощью PGI и оптимизируя слои с помощью GELAN, YOLOv9 обеспечивает современную точность и поразительную эффективность. В сочетании с экосистемой Ultralytics она представляет собой надежную, хорошо поддерживаемую и удобную платформу, которая ускоряет переход от концепции к развертыванию. Для разработчиков, стремящихся создавать передовые приложения для технического зрения, модели Ultralytics YOLO остаются лучшим выбором.
Изучите другие модели
Если вы заинтересованы в изучении других современных опций семейства Ultralytics или в дальнейшем сравнении, обратите внимание на эти ресурсы:
- Ultralytics YOLO11 - Новейшая модель SOTA для решения разнообразных задач технического зрения.
- YOLOv8 vs. DAMO-YOLO
- RT-DETR против DAMO-YOLO
- YOLOv10 против YOLO
- YOLOX в сравнении с DAMO-YOLO