EfficientDet против RTDETRv2: Техническое сравнение для обнаружения объектов
Область обнаружения объектов претерпела значительные изменения, перейдя от традиционных конволюционных нейронных сетей (CNN) к современным архитектурам на основе трансформаторов. Две заметные вехи в этой эволюции - EfficientDet, масштабируемая архитектура CNN от Google, и RTDETRv2, трансформатор обнаружения в реальном времени от Baidu.
В данном руководстве приводится подробное техническое сравнение этих двух моделей, анализируются их архитектурные инновации, показатели производительности и идеальные сценарии развертывания. Мы также исследуем, как Ultralytics YOLO11 выступает в качестве мощной альтернативы, предлагая единую экосистему для различных приложений компьютерного зрения.
Обзор моделей
Прежде чем погружаться в архитектурные нюансы, необходимо понять происхождение и основные цели каждой модели.
EfficientDet Подробнее:
Авторы: Mingxing Tan, Ruoming Pang, and Quoc V. Le
Организация: Google Research
Дата: 2019-11-20
Arxiv: https://arxiv.org/abs/1911.09070
GitHub: https:google
Docs: https:google
RTDETRv2 Подробнее:
Авторы: Wenyu Lv, Yian Zhao, Qinyao Chang, Kui Huang, Guanzhong Wang, and Yi Liu
Организация: Baidu
Дата: 2023-04-17
Arxiv: https://arxiv.org/abs/2304.08069
GitHub: https:RT-DETR
Docs: https:RT-DETR
Архитектурный анализ
Основное различие между EfficientDet и RTDETRv2 заключается в фундаментальном подходе к извлечению признаков и предсказанию границ.
EfficientDet: Эффективность за счет комплексного масштабирования
EfficientDet был разработан для того, чтобы сломать тенденцию простого увеличения размеров моделей для достижения более высокой точности. Он использует основу EfficientNet и вводит взвешенную двунаправленную сеть Feature Pyramid Network (BiFPN).
- BiFPN: В отличие от традиционных FPN, BiFPN позволяет легко объединять многомасштабные признаки за счет введения обучаемых весов. Это позволяет сети научиться определять важность различных входных признаков.
- Составное масштабирование: EfficientDet одновременно масштабирует разрешение, глубину и ширину сети с помощью одного составного коэффициента. Это гарантирует, что модель (варианты с D0 по D7) остается эффективной в широком спектре ограничений на ресурсы.
RTDETRv2: Трансформатор обнаружения в реальном времени
RTDETRv2 опирается на успех DETR (Detection Transformer), но при этом решает проблему высоких вычислительных затрат и медленной сходимости. Это модель без якорей, которая использует механизмы самовнимания для моделирования глобального контекста.
- Гибридный кодировщик: он обрабатывает многомасштабные признаки, отделяя внутримасштабное взаимодействие от межмасштабного слияния, что значительно повышает скорость вывода по сравнению со стандартными преобразователями.
- Выбор запросовIoU: Этот механизм выбирает высококачественные начальные запросы к объектам, что ускоряет сходимость обучения и повышает точность обнаружения.
- Динамическая гибкость: RTDETRv2 позволяет регулировать скорость вывода путем изменения количества слоев декодера без необходимости переобучения, обеспечивая уникальную гибкость для вывода в реальном времени.
Трансформатор против CNN Использование памяти
Хотя трансформаторы типа RTDETRv2 отлично справляются с захватом глобального контекста, они обычно требуют значительно больше памяти CUDA во время обучения по сравнению с архитектурами на основе CNN, такими как EfficientDet или YOLO , из-за квадратичной сложности механизмов внимания.
Метрики производительности
При выборе модели для развертывания разработчики должны взвесить компромиссы между точностьюmAP), скоростью (latency) и размером модели (параметры). В таблице ниже приведено сравнение производительности вариантов EfficientDet с RTDETRv2.
| Модель | размер (пиксели) | 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 |
| RTDETRv2-s | 640 | 48.1 | - | 5.03 | 20 | 60 |
| RTDETRv2-m | 640 | 51.9 | - | 7.51 | 36 | 100 |
| RTDETRv2-l | 640 | 53.4 | - | 9.76 | 42 | 136 |
| RTDETRv2-x | 640 | 54.3 | - | 15.03 | 76 | 259 |
Анализ:
- Точность: В RTDETRv2, как правило, достигается более высокий mAPval по сравнению с моделями EfficientDet с аналогичной задержкой на графических процессорах. Например,
RTDETRv2-xпревосходитEfficientDet-d7в точности и при этом значительно быстрее на TensorRT. - Скорость: EfficientDet был оптимизирован для FLOPs, что хорошо коррелирует с производительностью CPU , но не всегда с задержкой GPU . RTDETRv2 специально разработан для максимального использования GPU , что делает его лучшим для высокопроизводительных серверных приложений.
- Эффективность параметров: EfficientDet-d0 остается чрезвычайно легким (3,9 М параметров), что делает его подходящим кандидатом для устаревших устройств с очень низким энергопотреблением, где современные ускорители недоступны.
Преимущество Ultralytics: Превосходная альтернатива
Хотя EfficientDet и RTDETRv2 являются грозными моделями, разработчикам, которые ищут целостное решение, сочетающее в себе производительность, удобство и универсальность, стоит обратить внимание на Ultralytics YOLO серию. Такие модели, как последняя YOLO11 представляют собой убедительный выбор для широкого спектра применений, от исследований до внедрения в производство.
Почему стоит выбрать Ultralytics YOLO11?
- Простота использования: Модели Ultralytics известны своей простотой использования. Благодаря простому API на Python пользователи могут обучать, проверять и развертывать модели всего в нескольких строках кода. Это контрастирует с зачастую сложными конфигурационными файлами, необходимыми для EfficientDet, или циклами обучения RTDETR, занимающими много памяти.
- Универсальность: В отличие от однозадачности многих конкурентов, YOLO11 поддерживает обнаружение объектов, сегментацию экземпляров, классификацию, оценку позы и ориентированное обнаружение объектов (OBB) в рамках единой структуры.
- Хорошо поддерживаемая экосистема: Ultralytics предоставляет надежную экосистему, включая Ultralytics HUB для управления наборами данных и обучения моделей, а также обширную документацию и поддержку сообщества.
- Баланс производительности: Модели Ultralytics тщательно разработаны, чтобы обеспечить превосходный компромисс между скоростью и точностью. Они разработаны с учетом экономии памяти, что позволяет проводить обучение на стандартных потребительских графических процессорах в тех случаях, когда модели Transformer могут испытывать трудности.
Пример кода: Начало работы с YOLO11
Следующий пример демонстрирует, как легко запустить вывод с помощью Ultralytics YOLO11, показывая простоту API по сравнению с более старыми фреймворками.
from ultralytics import YOLO
# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt") # 'n' for nano, or try 's', 'm', 'l', 'x'
# Run inference on an image
results = model("path/to/image.jpg")
# Display the results
results[0].show()
Идеальные варианты использования
Выбор подходящей модели во многом зависит от конкретных аппаратных ограничений и требований проекта.
Когда использовать EfficientDet
- Устаревшие краевые устройства: При развертывании на старых процессорах или оборудовании, где единственной эффективной операцией являются свертки с разделением по глубине.
- Ограничения параметров: Для приложений, в которых абсолютный размер файла модели является основным узким местом (например,
EfficientDet-d0is < 4MB).
Когда использовать RTDETRv2
- Развертывание на высокопроизводительных GPU : Когда у вас есть доступ к мощным графическим процессорам NVIDIA (например, T4, A100) и вы можете использовать оптимизацию TensorRT .
- Сложное понимание сцены: Для сценариев, требующих глобальных контекстных возможностей трансформеров, таких как обнаружение объектов в переполненных или закрытых сценах.
Когда использовать Ultralytics YOLO11
- Быстрая разработка: Когда вам нужно быстро перейти от набора данных к развернутой модели, используя стандартные инструменты, такие как Google Colab, или локальные среды.
- Edge AI в реальном времени: YOLO11 оптимизирован для таких устройств, как NVIDIA Jetson и Raspberry Pi, обеспечивая превосходное соотношение mAP и карты.
- Многозадачные требования: Если в вашем проекте помимо ограничительных рамок требуются маски сегментации или ключевые точки позиционирования.
- Эффективность использования ресурсов: При ограниченных ресурсах обучения (например, при ограниченном объеме памяти VRAM) модели YOLO значительно эффективнее в обучении, чем альтернативы на основе трансформатора.
Заключение
И EfficientDet, и RTDETRv2 представляют собой значительные достижения в области компьютерного зрения. EfficientDet расширил границы эффективности за счет масштабирования, а RTDETRv2 доказал, что трансформаторы могут быть достаточно быстрыми для приложений реального времени.
Однако для подавляющего большинства разработчиков и предприятий моделиUltralytics YOLO представляют собой наиболее практичное решение. Сочетая современную производительность с непревзойденным опытом разработчиков и богатой экосистемой, Ultralytics позволяет быстрее и надежнее создавать надежные ИИ-решения.
Посмотреть больше сравнений
Чтобы помочь вам принять решение, изучите эти и другие сравнения: