YOLOX в сравнении с EfficientDet: техническое сравнение
Выбор подходящей модели обнаружения объектов — это критически важное решение, которое уравновешивает точность, скорость инференса и вычислительные затраты. На этой странице представлено подробное техническое сравнение YOLOX, высокопроизводительной модели без привязки к якорям от Megvii, и EfficientDet, семейства масштабируемых и эффективных детекторов от Google. Мы углубимся в их архитектурные различия, показатели производительности и идеальные варианты использования, чтобы помочь вам выбрать лучшую модель для вашего проекта компьютерного зрения.
YOLOX: высокопроизводительное обнаружение без привязки к якорям
YOLOX — это модель детекции объектов без привязки к anchor box, разработанная компанией Megvii, которая стремится упростить популярную архитектуру YOLO, обеспечивая при этом современную производительность. Она была представлена для устранения разрыва между академическими исследованиями и промышленными приложениями, предлагая оптимизированную, но мощную конструкцию.
Технические детали:
- Авторы: Чжэн Ге, Сунтао Лю, Фэн Ван, Цзэмин Ли и Цзянь Сунь
- Организация: 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 и уменьшает количество гиперпараметров, требующих настройки. Такой подход может привести к лучшей генерализации для объектов разных размеров и соотношений сторон.
- Decoupled Head (Разделенная голова): В отличие от более ранних моделей YOLO, которые использовали связанную голову для классификации и регрессии, YOLOX использует разделенную голову. Это разделяет задачи классификации и локализации, что, как было показано, решает проблему рассогласования и улучшает как скорость сходимости, так и точность.
- Продвинутое назначение меток: YOLOX включает SimOTA (Simplified Optimal Transport Assignment), стратегию динамического назначения меток, которая выбирает оптимальные положительные образцы для каждого объекта ground-truth во время обучения. Это более продвинутый подход, чем статические правила назначения.
- Надежная аугментация: Модель использует надежные методы аугментации данных, такие как MixUp и Mosaic, для повышения своей устойчивости и производительности.
Сильные и слабые стороны
Преимущества:
- Высокая производительность: YOLOX обеспечивает хороший баланс между скоростью и точностью, что делает его конкурентоспособным с другими современными детекторами своего времени.
- Простота Anchor-Free (Anchor-Free Simplicity): Дизайн без привязки к якорям снижает сложность модели и инженерные усилия, связанные с конфигурацией якорных прямоугольников.
- Устоявшаяся модель: Будучи хорошо известной моделью с 2021 года, она имеет значительную поддержку сообщества и примеры развертывания.
Слабые стороны:
- Скорость инференса: Несмотря на быстродействие, его могут превзойти новые, более оптимизированные архитектуры, такие как Ultralytics YOLOv8 и YOLO11, особенно если учитывать задержку GPU.
- Универсальность задач: YOLOX в основном разработан для обнаружения объектов. Ему не хватает встроенной поддержки для других задач компьютерного зрения, таких как сегментация экземпляров, оценка позы или классификация, которые являются стандартными в современных фреймворках, таких как Ultralytics.
- Внешняя экосистема: Она изначально не является частью экосистемы Ultralytics, что может означать, что потребуется больше усилий для обучения, развертывания и интеграции с такими инструментами, как Ultralytics HUB.
Идеальные варианты использования
YOLOX — это отличный выбор для:
- Обнаружение объектов общего назначения: Приложения, требующие надежный и точный детектор, например, в системах безопасности или розничной аналитике.
- Базовая модель для исследований: Служит отличной отправной точкой для исследователей, изучающих методы обнаружения без привязки к anchor boxes и передовые методы назначения меток.
- Промышленная автоматизация: Такие задачи, как контроль качества в производстве, где точность обнаружения является ключевым требованием.
EfficientDet: Масштабируемое и эффективное обнаружение объектов
EfficientDet, разработанный командой Google Brain, представляет собой семейство моделей обнаружения объектов, разработанных для исключительной эффективности. Он представляет новую архитектуру и метод составного масштабирования, который позволяет масштабировать его от периферийных устройств с ограниченными ресурсами до крупномасштабных облачных серверов, сохраняя при этом превосходное соотношение точности и эффективности.
Технические детали:
- Авторы: Мингксинг Тан, Руоминг Панг и Куок В. Ле
- Организация: Google
- Дата: 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 была разработана с использованием поиска нейронной архитектуры для оптимизации точности и FLOPs.
- BiFPN (Bi-directional Feature Pyramid Network): Для объединения признаков EfficientDet представляет BiFPN, взвешенную двунаправленную сеть пирамиды признаков. В отличие от традиционных FPN, BiFPN обеспечивает более насыщенное объединение многомасштабных признаков с меньшим количеством параметров и вычислений за счет включения обучаемых весов для каждого входного признака.
- Комплексное масштабирование (Compound Scaling): EfficientDet использует метод комплексного масштабирования, который равномерно масштабирует глубину, ширину и разрешение для backbone, сети признаков и prediction network. Это обеспечивает сбалансированный и оптимальный компромисс между точностью и вычислительными ресурсами во всем семействе моделей (от D0 до D7).
Сильные и слабые стороны
Преимущества:
- Современная эффективность: Модели EfficientDet очень эффективны с точки зрения параметров и FLOPs, часто достигая более высокой точности, чем другие модели с аналогичным вычислительным бюджетом.
- Масштабируемость: Семейство моделей предлагает широкий спектр опций (D0-D7), что упрощает выбор модели, соответствующей конкретным аппаратным требованиям и требованиям к производительности.
- Высокая точность: Более крупные модели EfficientDet достигают очень высоких показателей mAP на стандартных эталонных наборах данных, таких как COCO.
Слабые стороны:
- Более высокая задержка: Несмотря на низкий показатель FLOPs, EfficientDet может иметь более высокую задержку инференса на GPU по сравнению с такими моделями, как YOLOX или Ultralytics YOLO, которые часто лучше оптимизированы для оборудования параллельной обработки.
- Сложность обучения: Процесс обучения может быть более ресурсоемким и сложным по сравнению с упрощенным опытом, предлагаемым такими фреймворками, как Ultralytics.
- Ограниченная универсальность: Как и YOLOX, EfficientDet специализируется на обнаружении объектов и не предлагает унифицированный фреймворк для других задач компьютерного зрения.
Идеальные варианты использования
EfficientDet особенно хорошо подходит для:
- Edge AI: Меньшие варианты (D0-D2) отлично подходят для развертывания на периферийных устройствах с ограниченными ресурсами, где количество параметров и память имеют решающее значение.
- Облачные приложения: Более крупные варианты (D5-D7) подходят для облачных приложений, где достижение максимальной точности является приоритетом, а задержка не имеет большого значения.
- Проекты с ограниченными ресурсами: Любое приложение, где основным ограничением является вычислительный бюджет (FLOPs), а не задержка в реальном времени.
Узнайте больше об EfficientDet
Сравнение производительности и сравнительное тестирование
При сравнении YOLOX и EfficientDet становятся очевидными компромиссы между скоростью, точностью и эффективностью. В таблице ниже представлен подробный анализ производительности на наборе данных COCO.
Модель | размер (пиксели) |
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 |
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 |
На основании сравнительных тестов можно отметить несколько ключевых тенденций:
- Скорость GPU: Модели YOLOX стабильно демонстрируют значительно меньшую задержку (более высокую скорость) на GPU T4 с TensorRT по сравнению с моделями EfficientDet с аналогичным или даже более низким mAP. Например, YOLOX-l достигает тех же 49,7 mAP, что и EfficientDet-d4, но более чем в 3,5 раза быстрее.
- Эффективность параметров: EfficientDet превосходит другие модели по эффективности параметров и FLOP. EfficientDet-d3 достигает 47,5 mAP, используя всего 12,0 млн параметров, тогда как YOLOX-m требуется 25,3 млн параметров для достижения аналогичного показателя 46,9 mAP. Это делает EfficientDet сильным кандидатом для сред с жесткими ограничениями на размер модели.
- Компромисс между точностью и скоростью: YOLOX обеспечивает более выгодный компромисс для приложений, требующих инференса в реальном времени на GPU. EfficientDet, хотя и обладает высокой точностью в топовом сегменте (D7), значительно проигрывает в задержке, что делает его более крупные модели менее подходящими для использования в реальном времени.
Ultralytics YOLO: Рекомендуемая альтернатива
Несмотря на то, что YOLOX и EfficientDet являются мощными моделями, современные разработчики и исследователи часто находят более убедительное решение в экосистеме Ultralytics YOLO. Такие модели, как YOLOv8 и новейшая YOLO11, предлагают превосходное сочетание производительности, удобства использования и универсальности.
- Простота использования: Ultralytics предоставляет оптимизированный пользовательский интерфейс с простым Python API, обширной документацией и многочисленными учебными пособиями.
- Развитая экосистема: Воспользуйтесь преимуществами активной разработки, сильной поддержки сообщества, частых обновлений и интегрированных инструментов, таких как Ultralytics HUB для управления наборами данных и обучения.
- Баланс производительности: Модели Ultralytics YOLO достигают превосходного компромисса между скоростью и точностью, подходящего для различных реальных сценариев развертывания, от периферийных устройств до облачных серверов.
- Требования к памяти: Модели Ultralytics YOLO, как правило, эффективно используют память во время обучения и инференса, часто требуя меньше памяти CUDA, чем более сложные архитектуры.
- Универсальность: Модели Ultralytics поддерживают множество задач, помимо обнаружения, включая сегментацию экземпляров, классификацию изображений, оценку позы и обнаружение ориентированных ограничивающих рамок (OBB) в рамках единой унифицированной структуры.
- Эффективность обучения: Воспользуйтесь преимуществами эффективных процессов обучения, готовых предварительно обученных весов на различных наборах данных и простой интеграции с инструментами отслеживания экспериментов, такими как ClearML и Weights & Biases.
Для пользователей, которым нужна современная производительность в сочетании с простотой использования и надежной экосистемой, настоятельно рекомендуется изучить модели Ultralytics YOLO.
Заключение: какую модель вам следует выбрать?
Выбор между YOLOX и EfficientDet во многом зависит от конкретных приоритетов вашего проекта.
-
YOLOX — отличный выбор для приложений, которым требуется быстрый и точный детектор объектов, особенно для развертывания на основе GPU. Его конструкция без привязки к anchor упрощает определенные аспекты конвейера обнаружения, и он остается надежным.
-
EfficientDet выделяется в сценариях, где вычислительные ресурсы, такие как параметры модели и FLOPs, являются основным ограничением. Его масштабируемая архитектура делает его универсальным выбором для проектов, которые необходимо развертывать на различном оборудовании с разными возможностями.
Однако, для большинства современных задач компьютерного зрения модели Ultralytics YOLO, такие как YOLOv8 и YOLO11, представляют собой наиболее выгодный вариант. Они предлагают превосходный баланс скорости и точности, невероятно просты в использовании и поддерживаются всесторонней экосистемой, которая ускоряет разработку от исследований до производства. Их многозадачная универсальность делает их перспективным выбором для широкого спектра решений ИИ.
Сравнения с другими моделями
Если вам интересно сравнить эти модели с другими, ознакомьтесь со следующими страницами:
- YOLOv8 против YOLOX
- YOLOv10 в сравнении с YOLOX
- RT-DETR против YOLOX
- YOLOv8 против EfficientDet
- YOLO11 против EfficientDet
- RT-DETR против EfficientDet
- YOLOv5 против EfficientDet