EfficientDet против YOLOX: архитектурные изменения в обнаружении объектов
Эволюция компьютерного зрения была отмечена ключевыми моментами, когда новые архитектуры переопределили баланс между скоростью и точностью. Двумя такими вехами являются EfficientDet и YOLOX. В то время как EfficientDet ввел концепцию масштабируемой эффективности за счет составного масштабирования, YOLOX преодолел разрыв между академическими исследованиями и промышленным применением благодаря своей конструкции без якорей.
В этом руководстве представлено всестороннее техническое сравнение этих двух влиятельных моделей с анализом их архитектуры, показателей производительности и идеальных вариантов использования, чтобы помочь вам выбрать подходящий инструмент для вашего проекта. Мы также рассмотрим, как современные решения, такие как Ultralytics , используют эти основы для обеспечения производительности нового поколения.
Анализ эталонных показателей производительности
Чтобы понять компромиссы между этими архитектурами, необходимо проанализировать их производительность на стандартных тестах, таких как COCO . В таблице ниже показано, как разные размеры моделей соотносятся с точностью (mAP) и скоростью вывода на GPU CPU GPU .
| Модель | размер (пиксели) | 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 |
EfficientDet: Масштабируемая эффективность
EfficientDet, разработанный командой Google , представляет собой системный подход к масштабированию моделей. Он был разработан для оптимизации эффективности в условиях широкого спектра ограничений по ресурсам, от мобильных устройств до высокопроизводительных ускорителей.
- Авторы: Мингксинг Тан, Руоминг Панг и Куок В. Ле
- Организация:Google
- Дата: Ноябрь 2019 г.
- Arxiv:EfficientDet: Масштабируемое и эффективное обнаружение объектов
- GitHub:google/automl/efficientdet
Узнайте больше об EfficientDet
Ключевые архитектурные особенности
EfficientDet построен на основе EfficientNet, который использует составное масштабирование для равномерного масштабирования глубины, ширины и разрешения сети. Важным нововведением стала сеть BiFPN (Bi-directional Feature Pyramid Network), которая позволяет легко и быстро объединять многомасштабные характеристики. В отличие от традиционных FPN, BiFPN вводит обучаемые веса для различных входных характеристик, подчеркивая важность конкретных карт характеристик во время объединения.
Идеальные варианты использования
EfficientDet превосходит другие алгоритмы в сценариях, где основными ограничениями являются размер модели и FLOP, например, в мобильных приложениях или устройствах с батарейным питанием. Его архитектура особенно хорошо подходит для обработки статических изображений, где задержка менее важна, чем эффективность параметров. Однако его сложные слои слияния функций иногда могут приводить к более низкой скорости вывода на GPU по сравнению с более простыми архитектурами, такими как YOLO.
Комбинированное масштабирование
Основная философия EfficientDet заключается в том, что масштабирование модели не должно быть произвольным. Благодаря одновременному балансированию глубины, ширины и разрешения EfficientDet достигает более высокой точности с меньшим количеством параметров, чем модели, масштабированные только в одном измерении.
YOLOX: Anchor-Free инновация
YOLOX значительно отличается от конструкций своих предшественников (таких как YOLOv4 и YOLOv5), основанных на анкерах. Разработанная компанией Megvii, она вновь внедрила в YOLO механизм без анкеров, упростив процесс обучения и улучшив производительность.
- Авторы: Чжэн Ге, Сунтао Лю, Фэн Ван, Цзэмин Ли и Цзянь Сунь
- Организация:Megvii
- Дата: июль 2021 г.
- Arxiv:YOLOX: Exceeding YOLO Series in 2021
- GitHub:Megvii-BaseDetection/YOLOX
Ключевые архитектурные особенности
YOLOX включает в себя Decoupled Head, который разделяет задачи классификации и регрессии на разные ветви. Такой выбор конструкции разрешает конфликт между достоверностью классификации и точностью локализации, что приводит к более быстрой конвергенции. Кроме того, YOLOX использует SimOTA (Simplified Optimal Transport Assignment) для динамического присвоения меток, что обеспечивает устойчивость к различным гиперпараметрам и повышает точность обнаружения.
Идеальные варианты использования
YOLOX очень эффективен для задач общего назначения по обнаружению объектов, где требуется баланс между скоростью и точностью. Он широко используется в исследовательских базовых моделях благодаря своей чистой структуре кода и более простому дизайну по сравнению с детекторами на основе якорей. Он хорошо работает в динамичных средах, что делает его подходящим для видеоаналитики и базовых автономных систем.
Ultralytics : за пределами устаревших архитектур
Хотя EfficientDet и YOLOX по-прежнему остаются важными эталонами, в этой области наблюдается быстрое развитие. Современные разработки требуют инструментов, которые не только хорошо работают, но и просты в интеграции, обучении и развертывании. Именно в этом превосходство Ultralytics .
Модели, такие как YOLO11 и ультрасовременные YOLO26 предлагают значительные преимущества по сравнению с этими устаревшими архитектурами:
- Простота использования: Ultralytics унифицированный Python «от нуля до героя». Вы можете обучить модель, проверить ее и экспортировать для развертывания всего за несколько строк кода. Это резко контрастирует со сложными конфигурационными файлами и фрагментированными репозиториями старых исследовательских моделей.
- Баланс производительности: Ultralytics разработаны для обеспечения оптимального соотношения скорости и точности. Они стабильно превосходят предшественников по стандартным показателям, сохраняя при этом более низкую задержку.
- Эффективность использования памяти: в отличие от моделей на основе трансформаторов или старых тяжелых архитектур,YOLO Ultralytics YOLO требуют значительно меньше CUDA во время обучения. Это позволяет использовать более крупные пакеты данных на потребительских графических процессорах, что делает высокопроизводительный ИИ доступным для широкого круга пользователей.
- Хорошо поддерживаемая экосистема: благодаря частым обновлениям, активной поддержке сообщества и обширной документации Ultralytics , что ваши проекты останутся актуальными в будущем. Ultralytics еще больше упрощает управление наборами данных и обучение моделей.
В центре внимания: YOLO26
Для разработчиков, стремящихся к абсолютному передовому уровню, YOLO26 представляет собой вершину эффективности и производительности.
- Полная NMS: благодаря устранению немаксимального подавления (NMS) YOLO26 упрощает процессы развертывания и снижает изменчивость задержки вывода.
- Оптимизация по краям: такие функции, как удаление Distribution Focal Loss (DFL), делают YOLO26 на 43 % быстрее при CPU , что идеально подходит для приложений искусственного интеллекта по краям.
- Универсальность: помимо обнаружения, YOLO26 изначально поддерживает сегментацию, оценку позы и OBB, предлагая комплексный набор инструментов для различных задач машинного зрения.
Краткое сравнение
| Функциональность | EfficientDet | YOLOX | Ultralytics YOLO26 |
|---|---|---|---|
| Архитектура | BiFPN + EfficientNet | Без анкера, разъемная головка | Сквозной, NMS |
| Направленность | Эффективность параметров | Исследования и общее обнаружение | Скорость в реальном времени и развертывание на периферии |
| Простота использования | Умеренная (TensorFlow ) | Хорошо (PyTorch) | Отлично (унифицированный API) |
| Развертывание | Комплексный (NMS ) | Комплексный (NMS ) | Простой (NMS) |
| Задачи | Обнаружение | Обнаружение | Обнаружение, Сегментация, Поза, OBB, Классификация |
Пример кода: Обучение с Ultralytics
Простота Ultralytics позволяет быстро выполнять итерации. Вот как легко вы можете начать обучение современной модели по сравнению со сложными настройками устаревших фреймворков:
from ultralytics import YOLO
# Load a pre-trained YOLO26 model (recommended for transfer learning)
model = YOLO("yolo26n.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")
Независимо от того, занимаетесь ли вы промышленной автоматизацией или системой наблюдения для «умного города», выбор современной поддерживаемой платформы, такой как Ultralytics вы будете тратить меньше времени на борьбу с кодом и больше времени на решение реальных проблем.
Дополнительная литература
Изучите другие сравнения, чтобы углубить свое понимание области обнаружения объектов: