EfficientDet vs. RTDETRv2: техническое сравнение для detect object
Ландшафт object detection значительно эволюционировал, переходя от традиционных сверточных нейронных сетей (CNN) к современным архитектурам на основе Transformer. Двумя заметными вехами в этой эволюции являются EfficientDet, масштабируемая архитектура CNN от Google, и RTDETRv2, трансформер detect в реальном времени от Baidu.
В этом руководстве представлено углубленное техническое сравнение этих двух моделей, анализирующее их архитектурные инновации, показатели производительности и идеальные сценарии развертывания. Мы также рассмотрим, как Ultralytics YOLO11 служит мощной альтернативой, предлагая унифицированную экосистему для различных приложений компьютерного зрения.
Обзор модели
Прежде чем углубляться в архитектурные нюансы, важно понять происхождение и основные цели каждой модели.
EfficientDet Details:
Авторы: Mingxing Tan, Ruoming Pang и Quoc V. Le
Организация: Google Research
Дата: 2019-11-20
Arxiv: https://arxiv.org/abs/1911.09070
GitHub: https://github.com/google/automl/tree/master/efficientdet
Docs: https://github.com/google/automl/tree/master/efficientdet#readme
RTDETRv2 Подробности:
Авторы: Wenyu Lv, Yian Zhao, Qinyao Chang, Kui Huang, Guanzhong Wang и Yi Liu
Организация: Baidu
Дата: 2023-04-17
Arxiv: https://arxiv.org/abs/2304.08069
GitHub: https://github.com/lyuwenyu/RT-DETR/tree/main/rtdetrv2_pytorch
Документация: https://github.com/lyuwenyu/RT-DETR/tree/main/rtdetrv2_pytorch#readme
Архитектурный анализ
Основное различие между EfficientDet и RTDETRv2 заключается в их фундаментальном подходе к извлечению признаков и предсказанию ограничивающих рамок.
EfficientDet: Эффективность за счет комбинированного масштабирования
EfficientDet был разработан, чтобы сломать тенденцию простого увеличения размеров моделей для достижения большей точности. Он использует бэкбон EfficientNet и представляет взвешенную двунаправленную пирамиду признаков (BiFPN).
- BiFPN: В отличие от традиционных FPN, BiFPN обеспечивает простое объединение многомасштабных признаков за счет введения обучаемых весов. Это позволяет сети определять важность различных входных признаков.
- Compound Scaling: EfficientDet одновременно масштабирует разрешение, глубину и ширину сети, используя один составной коэффициент. Это гарантирует, что модель (варианты от D0 до D7) остается эффективной в широком спектре ограничений ресурсов.
RTDETRv2: Transformer для обнаружения в реальном времени
RTDETRv2 основывается на успехе DETR (Detection Transformer), но решает его высокую вычислительную стоимость и медленную сходимость. Это anchor-free модель, которая использует механизмы само-внимания для моделирования глобального контекста.
- Гибридный энкодер: Он обрабатывает многомасштабные признаки, разделяя взаимодействие внутри масштаба и слияние между масштабами, что значительно улучшает скорость inference по сравнению со стандартными Transformer.
- Выбор запросов с учетом IoU: Этот механизм выбирает высококачественные начальные запросы объектов, что ускоряет сходимость обучения и повышает точность обнаружения.
- Динамическая гибкость: RTDETRv2 позволяет регулировать скорость инференса, изменяя количество слоев декодера без необходимости переобучения, предлагая уникальную гибкость для инференса в реальном времени.
Использование памяти Transformer в сравнении с CNN
Хотя Transformers, такие как RTDETRv2, превосходно справляются с захватом глобального контекста, они обычно требуют значительно больше памяти CUDA во время обучения по сравнению с архитектурами на основе CNN, такими как EfficientDet или YOLO, из-за квадратичной сложности механизмов внимания.
Метрики производительности
При выборе модели для развертывания разработчики должны взвешивать компромиссы между точностью (mAP), скоростью (задержкой) и размером модели (параметрами). В таблице ниже сравнивается производительность вариантов 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 с аналогичной задержкой на GPU. Например,
RTDETRv2-xпревосходитEfficientDet-d7в точности, будучи значительно быстрее на TensorRT. - Скорость: EfficientDet был оптимизирован для FLOPs, что хорошо коррелирует с производительностью CPU, но не всегда с задержкой GPU. RTDETRv2 специально разработан для максимального использования GPU, что делает его превосходным для высокопроизводительных серверных приложений.
- Эффективность параметров: EfficientDet-d0 остается чрезвычайно легким (3.9M параметров), что делает его жизнеспособным кандидатом для устаревших устройств с очень низким энергопотреблением, где современные ускорители недоступны.
Преимущество Ultralytics: Превосходная альтернатива
Несмотря на то, что EfficientDet и RTDETRv2 являются мощными моделями, разработчикам, ищущим комплексное решение, которое сбалансирует производительность, удобство использования и универсальность, следует рассмотреть серию Ultralytics YOLO. Такие модели, как последняя YOLO11, представляют собой убедительный выбор для широкого спектра приложений, от исследований до внедрения в производство.
Почему стоит выбрать Ultralytics YOLO11?
- Простота использования: Модели Ultralytics известны своим оптимизированным пользовательским интерфейсом. С простым Python API пользователи могут обучать, проверять и развертывать модели всего в несколько строк кода. Это контрастирует с часто сложными файлами конфигурации, необходимыми для EfficientDet, или требующими больших затрат памяти циклами обучения RTDETR.
- Универсальность: В отличие от однозадачной направленности многих конкурентов, YOLO11 поддерживает object detection, instance segmentation, classification, pose estimation и oriented object detection (OBB) в рамках единой структуры.
- Хорошо поддерживаемая экосистема: Ultralytics предоставляет надежную экосистему, включающую Ultralytics HUB для управления наборами данных и обучения моделей, а также обширную документацию и поддержку сообщества.
- Баланс производительности: Модели Ultralytics тщательно разработаны для обеспечения превосходного компромисса между скоростью и точностью. Они разработаны с учетом эффективности использования памяти, что позволяет проводить обучение на стандартных потребительских GPU, где модели Transformer могут испытывать трудности.
Пример кода: Начало работы с YOLO11
В следующем примере демонстрируется, насколько просто запустить inference с помощью 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
- Устаревшие Edge-устройства (Legacy Edge Devices): Если вы выполняете развертывание на старых CPU или оборудовании, где глубинно разделяемые свертки являются единственной эффективной операцией.
- Ограничения параметров: Для приложений, где абсолютный размер файла модели является основным узким местом (например,
EfficientDet-d0is < 4MB).
Когда использовать RTDETRv2
- Развертывание на высокопроизводительных GPU: Когда у вас есть доступ к мощным NVIDIA GPU (например, T4, A100) и вы можете использовать оптимизацию TensorRT.
- Понимание сложных сцен: Для сценариев, требующих глобальных контекстных возможностей Transformers, таких как detect объектов в переполненных или заслоненных сценах.
Когда использовать Ultralytics YOLO11
- Быстрая разработка: Когда вам нужно быстро перейти от набора данных к развернутой модели, используя стандартные инструменты, такие как Google Colab или локальные среды.
- Edge AI в реальном времени: YOLO11 высоко оптимизирован для периферийных устройств, таких как NVIDIA Jetson и Raspberry Pi, предлагая превосходный компромисс между FPS и mAP.
- Multi-Task Requirements: Если вашему проекту требуются маски segment или ключевые точки позы в дополнение к ограничивающим рамкам.
- Эффективность использования ресурсов: Когда ресурсы для обучения ограничены (например, ограниченный VRAM), модели YOLO значительно эффективнее в обучении, чем альтернативы на основе Transformer.
Заключение
EfficientDet и RTDETRv2 представляют собой значительные достижения в области компьютерного зрения. EfficientDet расширил границы эффективности за счет масштабирования, в то время как RTDETRv2 доказал, что Transformers можно сделать достаточно быстрыми для приложений реального времени.
Однако, для подавляющего большинства разработчиков и предприятий модели Ultralytics YOLO представляют собой наиболее практичное решение. Сочетая в себе современную производительность с непревзойденным опытом разработки и богатой экосистемой, Ultralytics позволяет вам быстрее и надежнее создавать надежные решения на основе ИИ.
Больше сравнений
Чтобы помочь вам принять решение, изучите эти и другие сравнения: