YOLOX в сравнении с EfficientDet: техническое сравнение
Выбор подходящей архитектуры обнаружения объектов - важнейшее решение при разработке приложений компьютерного зрения. Две модели, оказавшие значительное влияние на ситуацию, - это YOLOX и EfficientDet. Хотя обе они нацелены на решение проблемы обнаружения и классификации объектов на изображениях, они подходят к этой задаче с принципиально разными философиями проектирования.
Это руководство содержит подробное техническое сравнение YOLOX, высокопроизводительного безъякорного детектора, и EfficientDet, масштабируемой архитектуры, ориентированной на эффективность. Мы проанализируем их архитектуры, бенчмарки и методологии обучения, чтобы помочь вам решить, какая модель соответствует вашим ограничениям, а также представим Ultralytics YOLO11 как современную, рекомендуемую альтернативу, обеспечивающую самую высокую производительность.
YOLOX: Эволюция без якоря
Выпущенный в 2021 году исследователями из Megvii, YOLOX представляет собой сдвиг в линейке YOLO (You Only Look Once), отказавшись от механизма, основанного на якоре, который определял предыдущие итерации.
- Авторы: Чжэн Ге, Сунтао Лю, Фэн Ван, Цзэмин Ли и Цзянь Сунь
- Организация:Megvii
- Дата: 18.07.2021
- Arxiv:YOLOX: Превышение серии YOLO в 2021 году
- GitHub:Megvii-BaseDetection/YOLOX
Архитектура и Ключевые Инновации
Отличительной особенностью YOLOX является раздельная структура головы. В традиционных детекторах часто используется связанная голова, в которой задачи классификации и локализации имеют общие параметры, что может привести к конфликту в процессе обучения. YOLOX разделяет эти задачи на разные ветви, значительно повышая скорость сходимости и итоговую точность.
Наиболее заметной особенностью является его безъякорная конструкция. Устраняя необходимость в предопределенных ячейках, YOLOX избавляется от эвристической настройки, связанной с генерацией якорей. В сочетании с SimOTA (Simplified Optimal Transport Assignment), передовой стратегией присвоения меток, которая динамически присваивает положительные образцы истинным, балансирует процесс обучения более эффективно, чем статические пороги IoU .
Безъякорные преимущества
Удаление якорных коробок сокращает количество параметров дизайна, которые разработчикам необходимо настраивать. Кроме того, модель лучше подходит для объектов с необычным соотношением сторон, поскольку она предсказывает ограничительные рамки напрямую, а не подстраивается под заданную форму коробки.
EfficientDet: Масштабируемая эффективность
EfficientDet, разработанный командой Google Brain в 2019 году, нацелен на достижение максимально возможной точности в рамках определенных вычислительных бюджетов. Она построена на базе EfficientNet и представляет собой новую технику слияния признаков.
- Авторы: Мингксинг Тан, Руоминг Панг и Куок В. Ле
- Организация: Google
- Дата: 20.11.2019
- Arxiv:EfficientDet: Масштабируемое и эффективное обнаружение объектов
- GitHub:google
Архитектура и Ключевые Инновации
Основным новшеством EfficientDet является BiFPN (Weighted Bi-directional Feature Pyramid Network). В отличие от традиционной сети Feature Pyramid Network (FPN), которая одинаково суммирует признаки из разных шкал, BiFPN вводит обучаемые веса для понимания важности различных входных признаков. Она также позволяет передавать информацию как сверху вниз, так и снизу вверх.
В EfficientDet также используется комбинированное масштабирование. Вместо того чтобы масштабировать только магистраль или разрешение изображения, он равномерно масштабирует разрешение, глубину и ширину сети. В результате семейство моделей (от D0 до D7) обеспечивает последовательную кривую зависимости эффективности от точности, что делает его легко адаптируемым для задач от мобильных приложений до высокопроизводительной облачной обработки.
Узнайте больше об EfficientDet
Анализ производительности: Скорость против эффективности
Фундаментальное различие между этими двумя моделями заключается в их целях оптимизации. EfficientDet оптимизируется для теоретической эффективности (FLOPs и параметры), что часто хорошо отражается на производительности CPU на граничных устройствах. YOLOX, наоборот, оптимизирован для высокопроизводительных выводов на GPU, используя плотные операторы, с которыми хорошо справляются ускорители.
Приведенная ниже таблица иллюстрирует этот компромисс. В то время как EfficientDet-d0 является чрезвычайно легким с точки зрения параметров, YOLOX-s предлагает значительно более высокую скорость вычислений на 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 |
| 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 демонстрирует превосходную производительность на ускорителях. YOLOX-l достигает той же точности (49,7 mAP), что и EfficientDet-d4, но работает почти в 3,7 раза быстрее на GPU T4 (9,04 мс против 33,55 мс).
- Эффективность параметров: EfficientDet превосходит другие модели, когда основным ограничением является объем памяти. EfficientDet-d3 обеспечивает высокую точность (47,5 mAP) при использовании всего 12 миллионов параметров, в то время как для достижения аналогичной точности с помощью YOLOX требуется модель Medium с более чем вдвое большим количеством параметров.
- Сложность обучения: в YOLOX встроены такие сильные методы дополнения данных, как Mosaic и MixUp , что помогает обучать надежные модели с нуля, в то время как EfficientDet в значительной степени полагается на специфические свойства основы EfficientNet и правила масштабирования соединений.
Ultralytics YOLO11: превосходная альтернатива
Хотя YOLOX и EfficientDet были новаторскими в свое время, область компьютерного зрения быстро развивается. Для современных приложений в 2024 году и далее, Ultralytics YOLO11 предлагает комплексное решение, превосходящее обе устаревшие архитектуры по скорости, точности и удобству использования.
Почему стоит выбрать Ultralytics YOLO11?
- Баланс производительности: YOLO11 спроектирован таким образом, чтобы обеспечить наилучший компромисс между скоростью и точностью. Он обычно соответствует или превосходит максимальную точность EfficientDet-d7, сохраняя при этом скорость вывода, близкую к самым быстрым вариантам YOLOX.
- Простота использования: В отличие от сложных исследовательских репозиториев EfficientDet или YOLOX, Ultralytics предлагает готовый к использованию API наPython . Вы можете загрузить, обучить и развернуть модель всего за несколько строк кода.
- Хорошо поддерживаемая экосистема: Модели Ultralytics поддерживаются активной разработкой, частыми обновлениями и живым сообществом. Интегрированная экосистема включает Ultralytics HUB для удобного управления наборами данных и обучения моделей.
- Универсальность: В то время как YOLOX и EfficientDet - это в первую очередь детекторы объектов, YOLO11 поддерживает широкий спектр задач в рамках одного фреймворка, включая сегментацию объектов, оценку позы, ориентированные граничные коробки (OBB) и классификацию.
- Эффективность обучения: В YOLO11 используются усовершенствованные архитектурные блоки, которые снижают требования к памяти во время обучения по сравнению со старыми трансформаторными или сложными магистральными архитектурами. Это делает возможным обучение самых современных моделей на аппаратном обеспечении потребительского класса.
Начало работы с YOLO11
Выполнять предсказания с помощью YOLO11 невероятно просто. Следующий фрагмент кода демонстрирует, как загрузить предварительно обученную модель и выполнить прогнозирование на изображении.
from ultralytics import YOLO
# Load the YOLO11n model (nano version for speed)
model = YOLO("yolo11n.pt")
# Perform object detection on an image
results = model("path/to/image.jpg")
# Display the results
results[0].show()
Идеальные варианты использования
- Выбирайте EfficientDet только в том случае, если вы развертываете систему на граничных устройствах с ограниченными возможностями CPU, где количество FLOP является абсолютным ограничивающим фактором, и у вас есть унаследованные зависимости.
- Выбирайте YOLOX, если вам нужна надежная основа для академических исследований в области безъякорных детекторов на GPU, но помните о более сложной настройке по сравнению с современными фреймворками.
- Выбирайте Ultralytics YOLO11 практически для всех новых коммерческих и исследовательских проектов. Независимо от того, создаете ли вы автономные транспортные средства, аналитику для "умных городов" или контроль качества на производстве, YOLO11 обеспечивает надежность, скорость и инструментарий, необходимые для эффективного перехода от прототипа к производству.
Заключение
И YOLOX, и EfficientDet внесли значительный вклад в развитие обнаружения объектов. EfficientDet доказал, что масштабирование моделей может быть научным и структурированным, а YOLOX успешно популяризировал полностью безъякорные конвейеры обнаружения.
Однако, Ultralytics YOLO11 синтезирует лучшие уроки этих архитектур - эффективность, безъякорный дизайн и оптимизацию GPU - в единый, удобный для пользователя пакет. Благодаря меньшему объему занимаемой памяти при обучении, поддержке разнообразных задач компьютерного зрения и легкой интеграции с такими форматами развертывания, как ONNX и CoreML, Ultralytics YOLO11 сегодня является рекомендованным выбором для разработчиков.
Дополнительная литература
Изучите больше сравнений, чтобы понять ландшафт моделей обнаружения объектов: