EfficientDet vs. YOLOX: всестороннее техническое сравнение
Выбор правильной архитектуры обнаружения объектов — это ключевое решение в разработке компьютерного зрения. Двумя известными моделями, которые сформировали эту область, являются EfficientDet, разработанная Google для оптимальной масштабируемости, и YOLOX, высокопроизводительный детектор без привязки к якорям (anchor-free) от Megvii. В то время как EfficientDet фокусируется на максимизации точности в рамках строгих вычислительных бюджетов с использованием составного масштабирования, YOLOX уделяет приоритетное внимание скорости инференса и упрощенным конвейерам обучения.
В этом руководстве представлен подробный анализ их архитектур, показателей производительности и идеальных сценариев развертывания, чтобы помочь вам выбрать лучший вариант для вашего проекта. Кроме того, мы рассмотрим, как современные альтернативы, такие как Ultralytics YOLO11, объединяют сильные стороны этих предшественников в единую, удобную для пользователя структуру.
EfficientDet: Масштабируемая эффективность
EfficientDet был представлен для решения задачи эффективного масштабирования моделей detect object. В отличие от предыдущих архитектур, которые произвольно масштабировали размеры, EfficientDet использует принципиальный метод compound scaling, который равномерно масштабирует разрешение, глубину и ширину.
Архитектура и ключевые особенности
Основным нововведением EfficientDet является его Bi-directional Feature Pyramid Network (BiFPN). Традиционные FPN суммируют признаки из разных масштабов без различия, но BiFPN вводит обучаемые веса, чтобы подчеркнуть наиболее важные признаки во время объединения. В сочетании с магистральной сетью EfficientNet, это позволяет модели достичь современной точности со значительно меньшим количеством параметров и FLOPs (операций с плавающей запятой в секунду).
- Compound Scaling: Одновременное масштабирование ширины сети, глубины и разрешения изображения с использованием простого составного коэффициента.
- BiFPN: Обеспечивает простое и быстрое объединение многомасштабных признаков.
- Эффективность: оптимизирован для минимизации использования ресурсов при максимальном увеличении mAP (средняя точность).
Метаданные модели
- Авторы: Мингксинг Тан, Руоминг Панг и Куок В. Ле
- Организация:Google
- Дата: 20.11.2019
- Arxiv:EfficientDet: Масштабируемое и эффективное обнаружение объектов
Узнайте больше об EfficientDet
YOLOX: Эволюция Anchor-Free
YOLOX представляет собой сдвиг в серии YOLO в сторону конструкции без якорных фреймов. Отказываясь от необходимости в предварительно заданных якорных фреймах, YOLOX упрощает процесс обучения и улучшает обобщение на различных наборах данных.
Архитектура и ключевые особенности
YOLOX разделяет голову detect'а, разделяя задачи классификации и регрессии на разные ветви. Такая конструкция "decoupled head" обычно приводит к более быстрой сходимости и лучшей производительности. Кроме того, она включает в себя SimOTA — продвинутую стратегию назначения меток, которая динамически назначает положительные примеры, сокращая время обучения и повышая точность.
- Без привязки к якорям: Устраняет необходимость ручной настройки anchor box, снижая сложность проектирования.
- Разделенная голова (Decoupled Head): Улучшает производительность за счет разделения задач классификации и локализации.
- Расширенная аугментация: Использует аугментации Mosaic и MixUp для надежного обучения.
Метаданные модели
- Авторы: Чжэн Ге, Сунтао Лю, Фэн Ван, Цзэмин Ли и Цзянь Сунь
- Организация:Megvii
- Дата: 18.07.2021
- Arxiv:YOLOX: Exceeding YOLO Series in 2021
Сравнение производительности и сравнительное тестирование
Компромиссы между этими двумя моделями различны. EfficientDet разработана для эффективности параметров, что делает ее сильным конкурентом для приложений, ограниченных CPU, или сценариев, где размер модели (хранилище) является основным ограничением. И наоборот, YOLOX оптимизирована для задержки GPU, используя удобные для оборудования операции для обеспечения высокой скорости inference на таких устройствах, как NVIDIA T4 или V100.
В таблице ниже показаны эти различия на наборе данных COCO. Обратите внимание, что модели YOLOX обычно предлагают более высокую скорость инференса на оборудовании GPU по сравнению с вариантами EfficientDet с аналогичной точностью.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| EfficientDet-d0 | 640 | 34.6 | 10.2 | 3.92 | 3.9 | 2.54 |
| EfficientDet-d1 | 640 | 40.5 | 13.5 | 7.31 | 6.6 | 6.1 |
| EfficientDet-d2 | 640 | 43.0 | 17.7 | 10.92 | 8.1 | 11.0 |
| EfficientDet-d3 | 640 | 47.5 | 28.0 | 19.59 | 12.0 | 24.9 |
| EfficientDet-d4 | 640 | 49.7 | 42.8 | 33.55 | 20.7 | 55.2 |
| EfficientDet-d5 | 640 | 51.5 | 72.5 | 67.86 | 33.7 | 130.0 |
| EfficientDet-d6 | 640 | 52.6 | 92.8 | 89.29 | 51.9 | 226.0 |
| EfficientDet-d7 | 640 | 53.7 | 122.0 | 128.07 | 51.9 | 325.0 |
| 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 vs. Throughput): YOLOX-s достигает впечатляющих 2.56 мс на T4 TensorRT, что значительно быстрее, чем EfficientDet-d0 (3.92 мс), несмотря на большее количество параметров. Это иллюстрирует превосходную оптимизацию YOLOX для инференса в реальном времени на GPU.
- Размер модели: EfficientDet-d0 остается весьма конкурентоспособным для периферийных устройств с крайне ограниченным объемом памяти, обладая компактным количеством параметров в 3,9M.
- Масштабирование: EfficientDet-d7 достигает высокого mAP 53,7, но за счет высокой задержки (128 мс), что делает его менее подходящим для прямых видеотрансляций по сравнению с более легкими моделями.
Преимущество Ultralytics
Несмотря на то, что EfficientDet и YOLOX первыми внедрили важные методы, область компьютерного зрения развивается стремительными темпами. Ultralytics YOLO11 представляет собой передовое решение, объединяющее лучшие архитектурные уроки предыдущих поколений в единый высокопроизводительный пакет.
Для разработчиков и исследователей Ultralytics предлагает убедительные преимущества по сравнению с устаревшими моделями:
- Простота использования: Python API от Ultralytics разработан для простоты. Вы можете загрузить модель, выполнить predict на изображении и визуализировать результаты всего в несколько строк кода, снижая порог вхождения для AI solutions.
- Comprehensive Ecosystem: В отличие от автономных репозиториев, модели Ultralytics поддерживаются надежной экосистемой. Это включает в себя бесшовную интеграцию с инструментами MLOps, такими как Weights & Biases и ClearML, а также активную поддержку сообщества.
- Баланс производительности: Модели Ultralytics YOLO разработаны для обеспечения оптимального компромисса между скоростью и точностью. Они часто превосходят YOLOX по задержке, при этом соответствуют эффективности параметров EfficientDet.
- Требования к памяти: Модели Ultralytics оптимизированы для снижения использования памяти CUDA во время обучения по сравнению со многими архитектурами на основе transformer или старыми архитектурами CNN, что позволяет обучать большие пакеты на стандартном оборудовании.
- Универсальность: Единый фреймворк Ultralytics поддерживает Object Detection, Instance Segmentation, Pose Estimation, Classification и Oriented Bounding Boxes (OBB). Эта универсальность устраняет необходимость изучать различные кодовые базы для разных задач.
Простой пример Inference
Посмотрите, как легко запустить вывод с Ultralytics YOLO11 по сравнению со сложными устаревшими конвейерами:
from ultralytics import YOLO
# Load a pre-trained YOLO11n model
model = YOLO("yolo11n.pt")
# Run inference on a local image
results = model("bus.jpg")
# Display the results
results[0].show()
Вывод: идеальные варианты использования
Выбор между EfficientDet, YOLOX и Ultralytics YOLO зависит от ваших конкретных ограничений.
- Выберите EfficientDet, если ваше приложение развернуто на оборудовании, где место для хранения и FLOPs являются абсолютным узким местом, например, в очень маленьких встроенных микроконтроллерах. Его принципиальное масштабирование позволяет точно контролировать размер модели.
- Выберите YOLOX, если вы выполняете развертывание на GPU и вам требуется высокая скорость. Его архитектура позволяет избежать некоторых операционных издержек методов, основанных на якорях, что делает его очень эффективным для анализа видео в реальном времени на поддерживаемом оборудовании.
- Выберите Ultralytics YOLO11 для достижения наилучшей общей производительности. Он сочетает в себе скорость YOLOX с эффективностью современных архитектурных решений. Кроме того, его экосистема, документация и поддержка многозадачности значительно сокращают время разработки, что делает его превосходным выбором как для быстрого прототипирования, так и для масштабируемых производственных развертываний.
Сравнения с другими моделями
Углубитесь в технические различия между ведущими моделями компьютерного зрения:
- YOLOv8 vs. EfficientDet
- YOLO11 vs. EfficientDet
- RT-DETR против YOLOX
- YOLOv8 против YOLOX
- YOLO11 против YOLOX