YOLOX против YOLOv5: изучение инноваций без якорных фреймов и проверенной эффективности
В быстро развивающейся области обнаружения объектов выбор правильной архитектуры имеет решающее значение для успеха проекта. В этом сравнении рассматриваются две влиятельные модели: YOLOX, академический лидер, известный своей конструкцией без привязки, и YOLOv5, отраслевой стандарт скорости и простоты развертывания. Обе модели сформировали область компьютерного зрения, но они служат различным потребностям в зависимости от того, что является вашим приоритетом: точность исследовательского уровня или эффективность, готовая к производству.
Анализ производительности: скорость, точность и эффективность
При оценке YOLOX и YOLOv5 различие часто сводится к компромиссу между необработанной точностью и операционной эффективностью. YOLOX представила значительные архитектурные изменения, такие как разделенная голова и механизм без якорей, что позволило ей достичь самых современных показателей mAP (средняя точность) после ее выпуска. Она превосходна в сценариях, где важен каждый процент точности, особенно на сложных эталонных тестах, таких как COCO.
И наоборот, Ultralytics YOLOv5 была разработана с акцентом на производительность в "реальном мире". Она уделяет приоритетное внимание скорости inference и низкой задержке, что делает ее исключительно подходящей для мобильных приложений, встроенных систем и периферийных AI устройств. Хотя YOLOX может иметь небольшое преимущество в mAP для конкретных больших моделей, YOLOv5 стабильно превосходит ее по пропускной способности (кадров в секунду) и гибкости развертывания, используя всестороннюю экосистему Ultralytics.
В таблице ниже представлено подробное сопоставление моделей различных размеров. Обратите внимание, как YOLOv5 сохраняет конкурентоспособную точность, предлагая при этом значительно более быстрое время инференса, особенно при оптимизации с помощью TensorRT.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
YOLOX: претендент Anchor-Free
YOLOX был разработан исследователями из Megvii, чтобы устранить разрыв между серией YOLO и академическими достижениями в области detect без якорных фреймов. Устраняя ограничение предварительно заданных якорных фреймов, YOLOX упрощает процесс обучения и уменьшает необходимость в эвристической настройке.
- Авторы: Чжэн Ге, Сунтао Лю, Фэн Ван, Цзэмин Ли и Цзянь Сунь
- Организация: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 включает в себя Decoupled Head, которая разделяет задачи классификации и регрессии на разные ветви. Этот дизайн контрастирует со связанными головами более ранних версий YOLO и, как сообщается, улучшает скорость сходимости и точность. Кроме того, он использует SimOTA, продвинутую стратегию назначения меток, которая динамически назначает положительные примеры, повышая устойчивость модели в плотных сценах.
Сильные и слабые стороны
Основным преимуществом YOLOX является ее высокий потолок точности, особенно у самых крупных вариантов (YOLOX-x), и ее чистый, свободный от якорей дизайн, который привлекает исследователей. Однако эти преимущества имеют свои компромиссы. Разделенная голова добавляет вычислительной сложности, что часто приводит к более медленному выводу по сравнению с YOLOv5. Кроме того, как модель, ориентированная на исследования, она не имеет целостного, удобного инструментария, который есть в экосистеме Ultralytics, что потенциально усложняет интеграцию в коммерческие конвейеры.
Идеальные варианты использования
- Академические исследования: Эксперименты с новыми архитектурами detect и стратегиями назначения меток.
- Высокоточные задачи: Сценарии, в которых выигрыш в 1-2% mAP перевешивает стоимость более медленного inference, например, автономная аналитика видео.
- Плотное обнаружение объектов: Среды с сильно загроможденными объектами, где SimOTA работает хорошо.
YOLOv5: Производственный стандарт
С момента выпуска в 2020 году Ultralytics YOLOv5 стал основной моделью для разработчиков во всем мире. Он обеспечивает исключительный баланс между производительностью и практичностью, поддерживаемый платформой, предназначенной для оптимизации всего жизненного цикла операций машинного обучения (MLOps).
- Автор: Гленн Джокер
- Организация:Ultralytics
- Дата: 26.06.2020
- GitHub:https://github.com/ultralytics/yolov5
- Документация:https://docs.ultralytics.com/models/yolov5/
Архитектура и экосистема
YOLOv5 использует основу CSPNet и сеть агрегирования путей (PANet) neck, оптимизированную для эффективного извлечения признаков. Хотя он первоначально популяризировал подход на основе якорей в PyTorch, его самым большим преимуществом является окружающая экосистема. Пользователи получают выгоду от автоматического экспорта в такие форматы, как ONNX, CoreML и TFLite, а также от простой интеграции с Ultralytics HUB для обучения и управления моделями.
Вы знали?
YOLOv5 не ограничивается ограничивающими рамками. Он поддерживает несколько задач, включая segmentation экземпляров и классификацию изображений, что делает его универсальным инструментом для сложных конвейеров обработки изображений.
Сильные и слабые стороны
Простота использования — отличительная черта YOLOv5. Благодаря простому Python API разработчики могут загружать предварительно обученные веса и запускать вывод всего за несколько строк кода. Модель высоко оптимизирована для скорости, стабильно обеспечивая более низкую задержку как на CPU, так и на GPU по сравнению с YOLOX. Она также может похвастаться более низкими требованиями к памяти во время обучения, что делает ее доступной на стандартном оборудовании. Хотя ее конструкция на основе anchor требует эволюции anchor для пользовательских наборов данных (обрабатывается автоматически YOLOv5), ее надежность и хорошо поддерживаемая экосистема делают ее превосходной для производства.
Идеальные варианты использования
- Приложения реального времени: Видеонаблюдение, автономное вождение и робототехника, где критически важна низкая задержка.
- Развертывание на периферии: Работа на Raspberry Pi, NVIDIA Jetson или мобильных устройствах благодаря своей эффективной архитектуре.
- Коммерческие продукты: Быстрое прототипирование и развертывание, где требуются долгосрочная поддержка и простота интеграции.
- Машинное зрение для нескольких задач: Проекты, требующие detection, segment и классификации в рамках единого фреймворка.
Пример кода: Запуск YOLOv5 с Ultralytics
Python-пакет Ultralytics делает использование моделей YOLOv5 невероятно простым. Ниже приведен пример запуска inference с использованием предварительно обученной модели.
from ultralytics import YOLO
# Load a pre-trained YOLOv5 model (Nano version for speed)
model = YOLO("yolov5nu.pt")
# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Display the results
results[0].show()
Вывод: делаем правильный выбор
Обе модели представляют собой значительные достижения в области компьютерного зрения, но они ориентированы на разные аудитории. YOLOX - отличный выбор для исследователей, расширяющих границы anchor-free detect, которым удобно ориентироваться в более фрагментированном наборе инструментов.
Однако, для подавляющего большинства разработчиков, инженеров и предприятий, Ultralytics YOLOv5 остается превосходным вариантом. Его выигрышная комбинация непревзойденной скорости, универсальности и надежной, активной экосистемы гарантирует, что вы сможете перейти от концепции к развертыванию с минимальными трудностями. Кроме того, принятие фреймворка Ultralytics обеспечивает четкий путь обновления до моделей следующего поколения, таких как YOLO11, которая сочетает в себе лучшее из anchor-free дизайна с фирменной эффективностью Ultralytics.
Сравнения с другими моделями
Узнайте, как эти модели соотносятся с другими архитектурами, чтобы найти лучший вариант для ваших конкретных потребностей:
- YOLO11 против YOLOX
- YOLOv8 против YOLOX
- YOLOv10 vs YOLOX
- RT-DETR против YOLOX
- EfficientDet в сравнении с YOLOX
- YOLOv5 против YOLOv8