EfficientDet и RTDETRv2#
Для выбора оптимальной архитектуры проектов в области компьютерного зрения необходимо разобраться в многообразии нейросетей. В этом руководстве подробно сравниваются два разных подхода: EfficientDet — масштабируемое семейство сверточных нейронных сетей (CNN) — и RTDETRv2 — передовая модель Transformer для работы в реальном времени. Мы сравниваем их структурные особенности, методики обучения и пригодность для развертывания в разных аппаратных средах.
Понимая компромиссы между эффективностью устаревших решений и возможностями современных Transformer, разработчики смогут принять взвешенное решение. Кроме того, мы рассмотрим, как современные альтернативы, например новая Ultralytics YOLO26, устраняют разрыв, обеспечивая непревзойденные скорость, точность и простоту использования.
Знакомство с EfficientDet#
EfficientDet произвела революцию в обнаружении объектов, предложив системный подход к масштабированию моделей.
- Авторы: Mingxing Tan, Ruoming Pang и Quoc V. Le
- Организация: Google
- Дата: 20 ноября 2019 года
- Arxiv: https://arxiv.org/abs/1911.09070
- GitHub: Репозиторий Google AutoML
- Документация: документация EfficientDet
Архитектура и основные концепции#
В основе EfficientDet лежит EfficientNet, используемая в качестве базовой сети, а также двунаправленная пирамидальная сеть признаков (BiFPN). BiFPN обеспечивает простое и быстрое объединение признаков разных масштабов, используя обучаемые веса для определения важности различных входных признаков. В сочетании с этим применяется метод составного масштабирования, который равномерно масштабирует разрешение, глубину и ширину базовой сети, сети признаков и сетей предсказания рамок и классов.
Сильные стороны и ограничения#
Главное преимущество EfficientDet — эффективность использования параметров. На момент выпуска такие модели, как EfficientDet-D0, обеспечивали более высокую точность при меньшем количестве параметров и операций с плавающей запятой, чем предыдущие версии YOLO. Это делало их привлекательными для сред со строгими ограничениями на вычислительные ресурсы.
Однако при постобработке EfficientDet использует стандартное подавление немаксимумов (NMS) для фильтрации перекрывающихся ограничивающих рамок, что может стать узким местом и увеличить задержку в конвейерах реального времени. Кроме того, хотя процесс обучения хорошо документирован, тонкая настройка EfficientDet может быть сложнее, чем работа с современными инструментами, в которых удобство разработки тщательно оптимизировано.
EfficientDet проложила путь к масштабируемым сетям, однако развертывание этих моделей на современных NPU часто требует масштабной ручной оптимизации. Более новые модели Ultralytics упрощают развертывание благодаря экспорту одним щелчком.
Рассмотрим RTDETRv2#
RTDETRv2 представляет собой развитие архитектур на базе Transformer и меняет традиционный подход, отходя от CNN с якорями.
- Авторы: Wenyu Lv, Yian Zhao, Qinyao Chang, Kui Huang, Guanzhong Wang и Yi Liu
- Организация: Baidu
- Дата: 2024-07-24
- Arxiv: https://arxiv.org/abs/2407.17140
- GitHub: Репозиторий RT-DETR
- Документация: документация RTDETRv2
Усовершенствования Transformer#
RTDETRv2 основана на базовой модели Real-Time Detection Transformer (RT-DETR). Она использует механизмы глобального внимания, благодаря которым модель понимает сложный контекст сцены без локальных ограничений обычных сверточных слоев. Главное архитектурное преимущество модели — изначально безъякорный дизайн без NMS. Предсказывая объекты непосредственно по входному изображению, модель упрощает конвейер инференса и избавляет от необходимости эвристически настраивать постобработку NMS.
Преимущества и недостатки#
RTDETRv2 отлично работает в условиях высокой плотности объектов, где перекрытия сбивают с толку традиционные CNN. Модель показывает высокую точность на сложных тестовых наборах данных, таких как COCO.
Несмотря на высокую точность, моделям Transformer по своей природе требуется много памяти. Их эффективность обучения заметно ниже: для сходимости им нужно значительно больше эпох и больше памяти CUDA, чем CNN. Поэтому RTDETRv2 хуже подходит разработчикам с ограниченным бюджетом на облачные ресурсы и тем, кому нужно быстро создавать прототипы.
Для обучения моделей Transformer, таких как RTDETRv2, обычно требуются мощные GPU. Если возникают ошибки нехватки памяти (OOM), рассмотрим модели, которым при обучении нужно меньше памяти, например семейство Ultralytics YOLO.
Сравнение результатов тестирования производительности#
Понимание реальных показателей производительности крайне важно для выбора модели. В следующей таблице сравниваются 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 |
Сценарии использования и рекомендации#
Выбор между EfficientDet и RT-DETR зависит от требований твоего проекта, ограничений развертывания и предпочтений в отношении экосистемы.
Когда стоит выбрать EfficientDet#
EfficientDet — хороший выбор для:
- Google Cloud и конвейеры TPU: Системы, тесно интегрированные с API Google Cloud Vision или инфраструктурой TPU, где EfficientDet оптимизирована изначально.
- Исследования составного масштабирования: Академические исследования и сравнительное тестирование, посвящённые влиянию сбалансированного масштабирования глубины, ширины и разрешения сети.
- Развертывание на мобильных устройствах через LiteRT: Проекты, для которых требуется экспорт в LiteRT (ранее TensorFlow Lite) для Android или встраиваемых устройств с Linux.
Когда выбрать RT-DETR#
RT-DETR рекомендуется для:
- Исследований обнаружения на основе Transformer: Проектов, в которых изучаются механизмы внимания и архитектуры Transformer для сквозного обнаружения объектов без NMS.
- Сценариев с высокой точностью и гибкими требованиями к задержке: Приложений, где точность обнаружения важнее всего, а немного большая задержка инференса допустима.
- Обнаружения крупных объектов: Сцен, в которых преобладают объекты среднего и крупного размера, а механизм глобального внимания Transformer даёт естественное преимущество.
Когда выбирать Ultralytics (YOLO26)#
Для большинства новых проектов Ultralytics YOLO26 предлагает оптимальное сочетание производительности и удобства разработки:
- Развертывание на периферийных устройствах без NMS: Приложения, которым необходим стабильный инференс с низкой задержкой без усложнения постобработки подавлением немаксимумов.
- Среды только с CPU: Устройства без выделенного ускорителя GPU, где до 43% более быстрый инференс YOLO26 на CPU даёт решающее преимущество.
- Обнаружение небольших объектов: Сложные сценарии, например съёмка с дронов или анализ данных IoT-датчиков, где ProgLoss и STAL заметно повышают точность обнаружения крошечных объектов.
Преимущества Ultralytics: знакомство с YOLO26#
EfficientDet и RTDETRv2 заняли свое место в истории компьютерного зрения, но современные производственные среды требуют идеального баланса скорости, точности и удобства разработки. Недавно выпущенная Ultralytics YOLO26 объединяет лучшие стороны этих разных архитектур.
YOLO26 выделяется тем, что сочетает оптимизированную экосистему, которой славится Ultralytics, с революционными внутренними механизмами.
Почему стоит выбрать YOLO26 вместо конкурентов?#
- Сквозная архитектура без NMS: вдохновленная моделями Transformer, такими как RTDETRv2, YOLO26 предлагает опциональную сквозную голову (
nms=False), которая устраняет постобработку NMS и обеспечивает более быстрые и простые конвейеры развертывания без резкого увеличения числа параметров, характерного для чистых моделей Transformer. - Оптимизатор MuSGD: вдохновленная инновациями в обучении больших языковых моделей (например, Kimi K2 от Moonshot AI), YOLO26 использует гибрид SGD и Muon. Это обеспечивает беспрецедентную стабильность обучения и значительно ускоряет сходимость по сравнению с длительными циклами обучения, необходимыми RTDETRv2.
- Оптимизирована для периферийных устройств: YOLO26 обеспечивает до 43% более быструю инференцию на CPU и создана для периферийного ИИ. Она с легкостью превосходит тяжелые модели на базе Transformer на устройствах с ограниченными ресурсами, таких как смартфоны и интеллектуальные камеры.
- Отказ от DFL: Удаление Distribution Focal Loss упрощает граф модели и обеспечивает беспроблемный экспорт в TensorRT и ONNX.
- ProgLoss + STAL: Эти продвинутые функции потерь заметно улучшают распознавание небольших объектов, устраняя распространенное узкое место при анализе аэрофотоснимков и в робототехнике.
- Универсальность: В отличие от RTDETRv2, ориентированной преимущественно на обнаружение объектов, YOLO26 изначально поддерживает сегментацию экземпляров, классификацию изображений, оценку позы и ориентированные ограничивающие рамки (OBB), а также улучшения для отдельных задач, например RLE для оценки позы и специализированную функцию потерь угла для OBB.
С помощью платформы Ultralytics ты можешь управлять наборами данных, обучать в облаке модели, такие как YOLO26 или YOLO11, и легко развертывать их с помощью гибких API.
Простота кода с Ultralytics#
Хорошо поддерживаемый Python API Ultralytics делает обучение моделей и инференцию предельно простыми. Разработчики могут легко сравнивать модели по производительности и запускать скрипты обучения, используя минимум шаблонного кода.
from ultralytics import YOLO
# Загрузи самую современную модель YOLO26
model = YOLO("yolo26n.pt")
# Обучи модель на собственном датасете
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
# Запусти инференс на тестовом изображении
predictions = model.predict("image.jpg")Для тех, кто работает с устаревшей инфраструктурой, высоко оцененная Ultralytics YOLOv8 остается стабильным и мощным решением, подтверждая долгосрочную надежность экосистемы Ultralytics. Запускаешь ли ты сложные алгоритмы отслеживания объектов в реальном времени или простое обнаружение дефектов, переход на YOLO26 обеспечит системе готовность к будущему, высокую точность и эффективное использование памяти.