DAMO-YOLO против YOLOX: техническое сравнение
В быстро развивающемся ландшафте компьютерного зрения выбор правильной модели обнаружения объектов имеет решающее значение для успеха любого проекта в области искусственного интеллекта. В этой статье приводится подробное сравнение двух влиятельных архитектур: YOLO, разработанной Alibaba Group, и YOLOX, созданной Megvii. Обе модели внесли значительный вклад в развитие отрасли, расширив границы скорости и точности. Мы рассмотрим их уникальные архитектуры, показатели производительности и идеальные сценарии использования, чтобы помочь вам принять обоснованное решение.
YOLO: оптимизация для высокоскоростного вывода
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
Архитектура и инновации
Архитектура YOLO построена на нескольких инновационных технологиях, призванных обеспечить максимальную эффективность:
- Поиск нейронной архитектуры (NAS): Модель использует MAE-NAS для автоматического поиска наиболее эффективной магистральной структуры, в результате чего создается экстрактор функций, известный как GiraffeNet. Этот подход гарантирует, что глубина и ширина сети оптимизированы для конкретных аппаратных ограничений.
- RepGFPN Neck: Для работы с многомасштабным объединением признаков в YOLO используется обобщенная сеть пирамид признаков (GFPN), усовершенствованная с помощью репараметризации. Это позволяет передавать богатый информационный поток между различными масштабами, сохраняя при этом высокую скорость вывода.
- ZeroHead: облегченная головка обнаружения, которая развязывает задачи классификации и регрессии, но значительно снижает вычислительную нагрузку по сравнению с традиционными развязанными головками.
- AlignedOTA: новая стратегия присвоения меток, которая позволяет устранить несоответствия между целями классификации и регрессии, гарантируя, что модель обучается на наиболее релевантных выборках во время обучения.
Сильные стороны и идеальные варианты использования
YOLO превосходно работает в сценариях, где производительность в реальном времени не является обязательным условием. Оптимизация архитектуры делает его лучшим претендентом для промышленных приложений, требующих высокой пропускной способности.
- Промышленная автоматизация: Идеально подходит для высокоскоростного обнаружения дефектов на производственных линиях, где счет идет на миллисекунды.
- Smart City Surveillance: возможность одновременной обработки нескольких видеопотоков для управления дорожным движением и мониторинга безопасности.
- Робототехника: Позволяет автономным роботам ориентироваться в сложных средах, мгновенно обрабатывая визуальные данные.
YOLOX: пионер без якоря
YOLOX ознаменовал поворотный момент в серии YOLO , отказавшись от механизмов на основе якорей. Разработанная компанией Megvii, она представила безъякорную конструкцию, которая упростила конвейер обнаружения и улучшила обобщение, установив новый стандарт производительности в 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 :
- Механизм без якорей: Отказ от предопределенных якорных ящиков позволяет YOLOX избежать сложности настройки якорных ячеек и уменьшить количество эвристических гиперпараметров. Это приводит к улучшению производительности на различных наборах данных.
- Разделенная голова: модель разделяет задачи классификации и локализации на отдельные ветви. Такое разделение повышает скорость и точность сходимости, позволяя каждой задаче самостоятельно выучить оптимальные характеристики.
- Назначение этикеток SimOTA: Усовершенствованная стратегия, которая рассматривает назначение меток как задачу оптимального переноса. SimOTA динамически присваивает положительные образцы базовым истинам, улучшая способность модели справляться с переполненными сценами и окклюзиями.
- Сильные дополнения к данным: YOLOX использует такие техники, как Mosaic и MixUp , для повышения устойчивости и предотвращения чрезмерной подгонки в процессе обучения.
Сильные стороны и идеальные варианты использования
YOLOX известен своей высокой точностью и стабильностью, что делает его надежным выбором для применения в тех случаях, когда точность имеет первостепенное значение.
- Автономное вождение: Обеспечивает высокоточное обнаружение объектов, необходимое системам восприятия автомобиля для безопасного распознавания пешеходов и препятствий.
- Аналитика розничной торговли: Точное обнаружение для мониторинга полок и управления запасами в сложных условиях розничной торговли.
- Исследовательские базы: Благодаря чистой реализации без якорей, он служит отличной базой для академических исследований новых методологий обнаружения.
Анализ производительности
В следующей таблице представлено прямое сравнение YOLO и YOLOX для моделей различных размеров. Метрики подчеркивают компромисс между сложностью модели (параметры и FLOPs), скоростью вывода и точностью обнаружения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 |
Основные выводы
- Преимущество по латентности: YOLO постоянно превосходит YOLOX по скорости вычислений GPU для сопоставимых уровней точности. Например, DAMO-YOLO достигает 46,0 mAP за 3,45 мс, в то время как YOLOXm требуется 5,43 мс для достижения 46,9 mAP при значительно большем количестве FLOP.
- Эффективность: Оптимизированная под NAS магистраль YOLO обеспечивает лучшее соотношение эффективности параметров.
- Пиковая точность: YOLOX-x остается сильным конкурентом по максимальной точности (51,1 mAP), хотя и требует больших вычислительных затрат (281,9B FLOPs).
- Легкие возможности: YOLOX-Nano очень легкий (0.91M params), что делает его подходящим для микроконтроллеров с ограниченными ресурсами, хотя точность значительно падает.
Оптимизация GPU
Широкое использование повторной параметризации и эффективных шейных структур в YOLO делает его особенно хорошо подходящим для TensorRT на графических процессорах NVIDIA , где он может полностью использовать возможности параллельных вычислений.
Преимущество Ultralytics
В то время как YOLO и YOLOX предлагают сильные возможности, моделиUltralytics YOLO - а именноYOLO11-представляют собой превосходное комплексное решение для современной разработки компьютерного зрения. Ultralytics создала экосистему, которая решает не только вопросы сырой производительности, но и всего жизненного цикла операций машинного обучения.
Почему стоит выбрать Ultralytics?
Разработчики и исследователи все чаще обращаются к моделям Ultralytics по нескольким веским причинам:
- Непревзойденная простота использования:API Ultralytics Python создан для простоты. Для загрузки современной модели и начала обучения требуется всего несколько строк кода, что значительно снижает барьер для входа в систему по сравнению со сложными конфигурационными файлами, которые часто требуются в академических хранилищах.
- Хорошо поддерживаемая экосистема: В отличие от многих исследовательских проектов, которые становятся застойными, модели Ultralytics поддерживаются процветающим сообществом и активно развиваются. Регулярные обновления обеспечивают совместимость с последними версиями PyTorch версиями, форматами экспорта и аппаратными ускорителями.
- Универсальность: Модели Ultralytics не ограничиваются ограничивающими рамками. Они поддерживают широкий спектр задач, включая сегментацию объектов, оценку позы, классификацию изображений и обнаружение ориентированных объектов (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")
Заключение
И YOLO, и YOLOX заняли достойное место в истории обнаружения объектов. YOLO - отличный выбор для специализированных высокопроизводительных GPU , где важна каждая миллисекунда задержки. YOLOX остается надежным и точным безъякорным детектором, хорошо известным в исследовательском сообществе.
Однако для подавляющего большинства реальных приложений, Ultralytics YOLO11 является лучшим выбором. Сочетание современной производительности, многозадачности и удобной, хорошо поддерживаемой экосистемы позволяет разработчикам создавать надежные решения быстрее и эффективнее. Вне зависимости от того, развертываете ли вы облако или периферию, Ultralytics предоставляет инструменты, необходимые для успеха в современном конкурентном ландшафте ИИ.
Изучите другие сравнения
Чтобы лучше понять, как обстоят дела с обнаружением объектов, изучите, как эти модели соотносятся с другими современными архитектурами:
- YOLO11 vs. DAMO-YOLO
- YOLOv8 против YOLOX
- RT-DETR против DAMO-YOLO
- YOLOv10 против YOLOX
- EfficientDet против YOLOX