EfficientDet против YOLOX: техническое сравнение
Выбор оптимальной модели обнаружения объектов — это критически важное решение, которое балансирует точность, скорость и вычислительные затраты. На этой странице представлено подробное техническое сравнение между EfficientDet и YOLOX, двумя влиятельными моделями, которые представляют различные философии проектирования в компьютерном зрении. EfficientDet от Google Research отдает приоритет вычислительной эффективности и масштабируемости, в то время как YOLOX от Megvii представляет конструкцию без привязки к YOLO семейству для достижения высокой производительности. Мы углубимся в их архитектуры, показатели производительности и идеальные варианты использования, чтобы помочь вам сделать осознанный выбор для вашего проекта.
EfficientDet: Масштабируемое и эффективное обнаружение объектов
EfficientDet был представлен командой Google Research как семейство высокоэффективных и масштабируемых моделей обнаружения объектов. Его основная инновация заключается в оптимизации архитектурных компонентов для достижения максимальной эффективности без ущерба для точности, что делает его сильным кандидатом для приложений с ограниченными вычислительными ресурсами.
Технические детали:
- Авторы: Мингксинг Тан, Руоминг Панг и Куок В. Ле
- Организация: Google Research
- Дата: 20.11.2019
- Arxiv: https://arxiv.org/abs/1911.09070
- GitHub: https://github.com/google/automl/tree/master/efficientdet
- Документация: https://github.com/google/automl/tree/master/efficientdet#readme
Архитектура и ключевые особенности
В основе конструкции EfficientDet лежат три ключевых принципа:
- EfficientNet Backbone: В качестве основы для извлечения признаков используется высокоэффективная сеть EfficientNet. Модели EfficientNet масштабируются с использованием составного метода, который равномерно балансирует глубину, ширину и разрешение сети.
- BiFPN (Bi-directional Feature Pyramid Network): Для объединения многомасштабных признаков EfficientDet представляет BiFPN, взвешенную двунаправленную сеть пирамиды признаков. В отличие от традиционных FPN, BiFPN обеспечивает более эффективный поток информации между различными уровнями признаков, повышая точность с меньшим количеством параметров и вычислений.
- Комплексное масштабирование (Compound Scaling): Новый метод комплексного масштабирования применяется ко всему детектору, совместно масштабируя backbone, BiFPN и detection heads. Это обеспечивает сбалансированное распределение ресурсов по всем частям модели, от малого D0 до большого варианта D7.
Сильные стороны
- Высокая эффективность: Модели EfficientDet известны небольшим количеством параметров и FLOPs, что делает их идеальными для развертывания на периферийных AI устройствах.
- Масштабируемость: Семейство моделей предлагает широкий спектр опций (D0-D7), позволяя разработчикам выбирать оптимальный компромисс между точностью и использованием ресурсов для своего конкретного оборудования.
- Высокое соотношение точности и эффективности: Достигает конкурентоспособных показателей mAP, требуя при этом значительно меньше ресурсов, чем многие современные модели.
Слабые стороны
- Скорость инференса на GPU: Несмотря на эффективность с точки зрения FLOPs, EfficientDet может быть медленнее с точки зрения фактической задержки на GPU по сравнению с такими моделями, как YOLOX или Ultralytics YOLO, которые в высшей степени оптимизированы для параллельной обработки.
- Зависимость от фреймворка: Официальная реализация основана на TensorFlow, что может потребовать дополнительных усилий для интеграции в пайплайны на основе PyTorch.
- Специализация по задачам: EfficientDet в основном разработан для обнаружения объектов, и ему не хватает встроенной универсальности для других задач, таких как сегментация экземпляров или оценка позы.
Идеальные варианты использования
EfficientDet — отличный выбор для:
- Edge Computing: Развертывание моделей на устройствах с ограниченными ресурсами, таких как Raspberry Pi или мобильные телефоны.
- Облачные приложения с ограниченным бюджетом: Минимизация вычислительных затрат в облачных сервисах инференса.
- Промышленная автоматизация: Приложения в производстве, где ключевыми факторами являются эффективность и масштабируемость на различных производственных линиях.
Узнайте больше об EfficientDet
YOLOX: высокопроизводительное обнаружение без привязки к якорям
YOLOX был разработан компанией Megvii для повышения производительности серии YOLO путем внедрения anchor-free дизайна. Такой подход упрощает конвейер обнаружения и, как было показано, улучшает производительность за счет устранения необходимости в настраиваемых вручную anchor boxes.
Технические детали:
- Авторы: Чжэн Ге, Сунтао Лю, Фэн Ван, Цзэмин Ли и Цзянь Сунь
- Организация: 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-Free Design: Благодаря прямому прогнозированию свойств объекта без anchor boxes, YOLOX уменьшает количество параметров проектирования и упрощает процесс обучения.
- Разделенная Head: Она использует отдельные heads для задач классификации и регрессии. Показано, что такое разделение устраняет конфликт между этими двумя задачами, что приводит к повышению точности и более быстрой сходимости.
- Продвинутое назначение меток: YOLOX использует стратегию динамического назначения меток под названием SimOTA (Simplified Optimal Transport Assignment), которая формулирует задачу назначения как задачу оптимальной транспортировки для выбора наилучших положительных образцов для обучения.
- Надежные аугментации: Она включает в себя надежные методы аугментации данных, такие как MixUp и Mosaic, для повышения устойчивости и обобщающей способности модели.
Сильные стороны
- Высокая точность: YOLOX достигает самых современных показателей, часто превосходя аналогичные по размеру аналоги на основе якорей.
- Быстрый вывод на GPU: Оптимизированная конструкция без привязки к якорям способствует высокой скорости вывода, что делает ее подходящей для вывода в реальном времени.
- Упрощенный конвейер: Удаление anchor-ов устраняет сложную логику, связанную с сопоставлением anchor-ов, и уменьшает количество гиперпараметров.
Слабые стороны
- Внешняя экосистема: YOLOX не является частью пакета Ultralytics, а это означает, что ей не хватает простой интеграции с такими инструментами, как Ultralytics HUB, и обширной поддержки сообщества Ultralytics.
- Сложность обучения: Хотя конструкция без якоря проще, продвинутые стратегии, такие как SimOTA, могут увеличить сложность конвейера обучения.
- Ограниченная универсальность: Как и EfficientDet, YOLOX в основном ориентирован на обнаружение объектов и не предлагает встроенной поддержки других задач компьютерного зрения в рамках того же фреймворка.
Идеальные варианты использования
YOLOX хорошо подходит для приложений, в которых приоритет отдается высокой точности и скорости на оборудовании с GPU:
- Автономные системы: Задачи восприятия в автономных транспортных средствах и робототехнике, где высокая точность имеет решающее значение.
- Расширенное наблюдение: Высокопроизводительный видеоанализ для систем безопасности.
- Исследования: Служит надежной отправной точкой для изучения методологий без привязки к anchor boxes и передовых методов обучения.
Сравнение производительности: эффективность и скорость
В таблице ниже представлено количественное сравнение различных моделей EfficientDet и YOLOX. EfficientDet превосходит по задержке CPU и эффективности параметров, особенно с его меньшими вариантами. Например, EfficientDet-d0 имеет очень низкое количество параметров и быстрое время логического вывода CPU. В отличие от этого, модели YOLOX демонстрируют превосходную скорость логического вывода GPU, при этом YOLOX-s достигает замечательной задержки в 2,56 мс на GPU T4. В то время как самая большая модель EfficientDet-d7 достигает самого высокого mAP, это достигается за счет значительной потери скорости. Это подчеркивает основной компромисс: EfficientDet оптимизирован для эффективности ресурсов, а YOLOX создан для максимальной производительности 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 |
Ultralytics YOLO: Рекомендуемая альтернатива
В то время как EfficientDet и YOLOX являются значительными моделями, модели Ultralytics YOLO часто представляют собой более привлекательный выбор для разработчиков и исследователей сегодня.
- Простота использования: Ultralytics предоставляет оптимизированный пользовательский интерфейс с простым Python API, обширной документацией и многочисленными учебными пособиями.
- Развитая экосистема: Воспользуйтесь преимуществами активной разработки, сильной поддержки сообщества, частых обновлений и интегрированных инструментов, таких как Ultralytics HUB для управления наборами данных и обучения.
- Баланс производительности: Такие модели, как YOLOv8 и YOLO11, обеспечивают превосходный компромисс между скоростью и точностью, что делает их подходящими для различных реальных сценариев развертывания, от периферийных устройств до облачных серверов.
- Требования к памяти: Модели Ultralytics YOLO, как правило, эффективно используют память во время обучения и инференса по сравнению с более сложными архитектурами.
- Универсальность: Модели Ultralytics поддерживают множество задач, помимо обнаружения, включая сегментацию, классификацию, оценку позы и обнаружение ориентированных ограничивающих рамок (OBB) в рамках единой унифицированной структуры.
- Эффективность обучения: Воспользуйтесь преимуществами эффективных процессов обучения, готовых предварительно обученных весов на различных наборах данных, таких как COCO, и простой интеграции с такими инструментами, как ClearML и Weights & Biases, для отслеживания экспериментов.
Для пользователей, которым нужна современная производительность в сочетании с простотой использования и надежной экосистемой, настоятельно рекомендуется изучить модели Ultralytics YOLO.
Заключение: какую модель вам следует выбрать?
EfficientDet и YOLOX предлагают мощные возможности, но ориентированы на разные приоритеты. EfficientDet — это оптимальный выбор, когда параметры и вычислительная эффективность являются наиболее важными факторами. Его масштабируемая архитектура делает его идеальным для развертывания на широком спектре оборудования, особенно на периферийных устройствах с ограниченными ресурсами. YOLOX блистает в приложениях, требующих высокой точности и скорости GPU в реальном времени. Его конструкция без привязки к якорям и передовые стратегии обучения обеспечивают первоклассную производительность для требовательных задач.
Однако, для большинства современных рабочих процессов разработки модели Ultralytics, такие как YOLOv8 и YOLO11, обеспечивают превосходный общий пакет. Они сочетают в себе высокую производительность с беспрецедентной простотой использования, обширной документацией, многозадачной универсальностью и процветающей экосистемой. Это делает их идеальным выбором как для быстрого прототипирования, так и для надежного развертывания в производство.
Сравнения с другими моделями
Если вам интересно сравнить эти модели с другими, ознакомьтесь со следующими страницами:
- YOLOv5 против YOLOX
- YOLOv8 против YOLOX
- YOLOv10 против YOLOX
- RT-DETR против EfficientDet
- YOLOv8 vs. EfficientDet
- YOLO11 vs. EfficientDet