DAMO-YOLO против YOLOX: техническое сравнение
В быстро развивающейся области компьютерного зрения выбор правильной модели обнаружения объектов имеет решающее значение для успеха любого проекта искусственного интеллекта. В этой статье представлено подробное сравнение двух влиятельных архитектур: DAMO-YOLO, разработанной Alibaba Group, и YOLOX, созданной Megvii. Обе модели внесли значительный вклад в эту область, расширив границы скорости и точности. Мы рассмотрим их уникальные архитектуры, показатели производительности и идеальные варианты использования, чтобы помочь вам принять обоснованное решение.
DAMO-YOLO: Оптимизировано для высокоскоростного вывода
DAMO-YOLO представляет собой скачок вперед в обнаружении объектов в реальном времени, уделяя первостепенное внимание низкой задержке на оборудовании GPU без ущерба для точности. Разработанный исследователями Alibaba, он объединяет передовые принципы проектирования нейронных сетей для достижения впечатляющего компромисса между скоростью и точностью.
Технические детали:
- Авторы: Сяньчжэ Сюй, Ици Цзян, Вэйхуа Чэнь, Илунь Хуан, Юань Чжан и Сююй Сунь
- Организация:Alibaba Group
- Дата: 23.11.2022
- Arxiv:https://arxiv.org/abs/2211.15444v2
- GitHub:https://github.com/tinyvision/DAMO-YOLO
- Документация:https://github.com/tinyvision/DAMO-YOLO/blob/master/README.md
Архитектура и инновации
Архитектура DAMO-YOLO построена на нескольких инновационных технологиях, разработанных для максимальной эффективности:
- Поиск нейронной архитектуры (NAS): Модель использует MAE-NAS для автоматического поиска наиболее эффективной структуры backbone, в результате чего получается средство извлечения признаков, известное как GiraffeNet. Этот подход гарантирует, что глубина и ширина сети оптимизированы для конкретных аппаратных ограничений.
- RepGFPN Neck: Для обработки объединения признаков в разных масштабах DAMO-YOLO использует Generalized Feature Pyramid Network (GFPN), улучшенную с помощью репараметризации. Это обеспечивает богатый поток информации в разных масштабах при сохранении высокой скорости инференса.
- ZeroHead: облегченная головка обнаружения, которая развязывает задачи классификации и регрессии, но значительно снижает вычислительную нагрузку по сравнению с традиционными развязанными головками.
- AlignedOTA: Новая стратегия назначения меток, которая устраняет рассогласования между целями классификации и регрессии, гарантируя, что модель учится на наиболее релевантных примерах во время обучения.
Сильные стороны и идеальные сценарии использования
DAMO-YOLO превосходен в сценариях, где производительность в реальном времени является обязательным условием. Его архитектурные оптимизации делают его главным претендентом для промышленных приложений, требующих высокой пропускной способности.
- Промышленная автоматизация: Идеально подходит для высокоскоростного detect дефектов на производственных линиях, где важна каждая миллисекунда.
- Наблюдение в умном городе: способен одновременно обрабатывать несколько видеопотоков для управления трафиком и мониторинга безопасности.
- Робототехника: Позволяет автономным роботам перемещаться в сложных средах, мгновенно обрабатывая визуальные данные.
YOLOX: пионер Anchor-Free
YOLOX ознаменовал собой поворотный момент в серии YOLO, отойдя от anchor-based механизмов. Разработанный компанией Megvii, он представил anchor-free дизайн, который упростил конвейер detect и улучшил обобщение, установив новый стандарт производительности в 2021 году.
Технические детали:
- Авторы: Чжэн Ге, Сунтао Лю, Фэн Ван, Цзэмин Ли и Цзянь Сунь
- Организация:Megvii
- Дата: 18.07.2021
- Arxiv:https://arxiv.org/abs/2107.08430
- GitHub:https://github.com/Megvii-BaseDetection/YOLOX
- Документация:https://yolox.readthedocs.io/en/latest/
Ключевые архитектурные особенности
YOLOX отличается надежной философией проектирования, которая решает общие проблемы более ранних версий YOLO:
- Механизм без Anchor: Устраняя предопределенные anchor boxes, YOLOX избегает сложности настройки anchor и уменьшает количество эвристических гиперпараметров. Это приводит к повышению производительности на различных наборах данных.
- Разделенная голова (Decoupled Head): Модель разделяет задачи классификации и локализации на отдельные ветви. Это разделение улучшает скорость сходимости и точность, позволяя каждой задаче независимо изучать свои оптимальные признаки.
- Назначение меток SimOTA: Продвинутая стратегия, которая рассматривает назначение меток как задачу оптимальной транспортировки. SimOTA динамически назначает положительные примеры ground truths, улучшая способность модели обрабатывать переполненные сцены и окклюзии.
- Эффективные аугментации данных: YOLOX использует такие методы, как Mosaic и MixUp, для повышения устойчивости и предотвращения переобучения во время обучения.
Сильные стороны и идеальные сценарии использования
YOLOX известен своей высокой точностью и стабильностью, что делает его надежным выбором для приложений, где точность имеет первостепенное значение.
- Автономное вождение: Обеспечивает высокую точность обнаружения объектов, необходимую для систем восприятия транспортных средств для безопасной идентификации пешеходов и препятствий.
- Аналитика розничной торговли: Точное detect для мониторинга полок и управления запасами в сложных розничных средах.
- Базовые показатели для исследований: Благодаря чистой реализации без привязки к якорям, он служит отличной отправной точкой для академических исследований новых методологий detection.
Анализ производительности
В следующей таблице представлено прямое сравнение DAMO-YOLO и YOLOX для различных размеров моделей. Метрики показывают компромиссы между сложностью модели (параметры и FLOPs), скоростью инференса и точностью detect (mAP) на наборе данных COCO.
| Модель | размер (пиксели) | 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 |
| YOLOXnano | 416 | 25.8 | - | - | 0.91 | 1.08 |
| YOLOXtiny | 416 | 32.8 | - | - | 5.06 | 6.45 |
| YOLOXs | 640 | 40.5 | - | 2.56 | 9.0 | 26.8 |
| YOLOXm | 640 | 46.9 | - | 5.43 | 25.3 | 73.8 |
| YOLOXl | 640 | 49.7 | - | 9.04 | 54.2 | 155.6 |
| YOLOXx | 640 | 51.1 | - | 16.1 | 99.1 | 281.9 |
Основные выводы
- Преимущество в задержке (Latency Advantage): DAMO-YOLO стабильно превосходит YOLOX по скорости инференса на GPU при сопоставимых уровнях точности. Например, DAMO-YOLOs достигает 46.0 mAP при 3.45 мс, тогда как YOLOXm требуется 5.43 мс для достижения 46.9 mAP со значительно более высокими FLOPs.
- Эффективность: NAS-оптимизированный бэкбон DAMO-YOLO обеспечивает лучшее соотношение эффективности параметров.
- Пиковая точность: YOLOX-x остается сильным конкурентом по максимальной точности (51,1 mAP), хотя и достигается это высокой вычислительной ценой (281,9B FLOPs).
- Легковесные опции: YOLOX-Nano чрезвычайно легок (0,91M параметров), что делает его подходящим для микроконтроллеров со строгими ограничениями ресурсов, хотя точность значительно падает.
Оптимизация GPU
Активное использование DAMO-YOLO репараметризации и эффективных структур neck делает его особенно подходящим для развертывания TensorRT на графических процессорах NVIDIA, где он может в полной мере использовать возможности параллельных вычислений.
Преимущество Ultralytics
Несмотря на то, что DAMO-YOLO и YOLOX предлагают широкие возможности, модели Ultralytics YOLO, в частности YOLO11, предоставляют превосходное комплексное решение для современной разработки компьютерного зрения. Ultralytics создала экосистему, которая охватывает не только необработанную производительность, но и весь жизненный цикл операций машинного обучения.
Почему стоит выбрать Ultralytics?
Разработчики и исследователи все чаще обращаются к моделям Ultralytics по нескольким веским причинам:
- Непревзойденная простота использования: Ultralytics Python API разработан для простоты. Загрузка современной модели и начало обучения требует всего нескольких строк кода, что значительно снижает порог входа по сравнению со сложными файлами конфигурации, которые часто требуются академическими репозиториями.
- Хорошо поддерживаемая экосистема: В отличие от многих исследовательских проектов, которые приходят в упадок, модели Ultralytics поддерживаются процветающим сообществом и активной разработкой. Регулярные обновления обеспечивают совместимость с последними версиями PyTorch, форматами экспорта и аппаратными ускорителями.
- Универсальность: Модели Ultralytics не ограничиваются ограничивающими прямоугольниками. Они изначально поддерживают широкий спектр задач, включая Instance Segmentation, Pose Estimation, Image Classification и Oriented Object Detection (OBB), и все это в рамках единой структуры.
- Баланс производительности: Модели Ultralytics YOLO разработаны для достижения «золотой середины» между скоростью и точностью. Они часто достигают более высоких показателей mAP, чем конкуренты, сохраняя при этом более быстрое время инференса как на CPU, так и на GPU.
- Эффективность обучения: Благодаря оптимизированным загрузчикам данных и предварительно настроенным гиперпараметрам, обучение модели Ultralytics является очень эффективным. Пользователи могут использовать предварительно обученные веса на COCO для более быстрого достижения сходимости, экономя ценное время вычислений и энергию.
- Эффективность памяти: Модели Ultralytics обычно демонстрируют более низкое использование памяти во время обучения и инференса по сравнению с тяжелыми архитектурами на основе трансформеров или более старыми CNN, что делает их доступными на более широком спектре оборудования, включая периферийные устройства.
Пример простого рабочего процесса
Оцените простоту рабочего процесса Ultralytics с помощью этого примера на python:
from ultralytics import YOLO
# Load the YOLO11 model (pre-trained on COCO)
model = YOLO("yolo11n.pt")
# Train the model on your custom dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("path/to/image.jpg")
Заключение
DAMO-YOLO и YOLOX закрепили свои позиции в истории object detection. DAMO-YOLO — отличный выбор для специализированных приложений с высокой пропускной способностью на GPU, где важна каждая миллисекунда задержки. YOLOX остается надежным и точным детектором без привязки к якорям, который хорошо изучен в исследовательском сообществе.
Однако, для подавляющего большинства реальных приложений, Ultralytics YOLO11 выделяется как лучший выбор. Ее сочетание передовой производительности, многозадачной универсальности и удобной, хорошо поддерживаемой экосистемы позволяет разработчикам создавать надежные решения быстрее и эффективнее. Независимо от того, развертываете ли вы в облаке или на периферии, Ultralytics предоставляет инструменты, необходимые для достижения успеха в современной конкурентной среде искусственного интеллекта.
Изучите другие сравнения
Чтобы лучше понимать ландшафт обнаружения объектов, изучите, как эти модели соотносятся с другими современными архитектурами:
- YOLO11 vs. DAMO-YOLO
- YOLOv8 против YOLOX
- RT-DETR против DAMO-YOLO
- YOLOv10 vs. YOLOX
- EfficientDet против YOLOX