Перейти к содержанию

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

Узнайте больше о RTDETRv2

Архитектурный анализ

Основное различие между 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-d064034.610.23.923.92.54
EfficientDet-d164040.513.57.316.66.1
EfficientDet-d264043.017.710.928.111.0
EfficientDet-d364047.528.019.5912.024.9
EfficientDet-d464049.742.833.5520.755.2
EfficientDet-d564051.572.567.8633.7130.0
EfficientDet-d664052.692.889.2951.9226.0
EfficientDet-d764053.7122.0128.0751.9325.0
RTDETRv2-s64048.1-5.032060
RTDETRv2-m64051.9-7.5136100
RTDETRv2-l64053.4-9.7642136
RTDETRv2-x64054.3-15.0376259

Анализ:

  • Точность: 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

Пример кода: Начало работы с 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-d0 is < 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 позволяет вам быстрее и надежнее создавать надежные решения на основе ИИ.

Больше сравнений

Чтобы помочь вам принять решение, изучите эти и другие сравнения:


Комментарии