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, обеспечивали более высокую точность при меньшем количестве параметров и FLOPs по сравнению с предыдущими версиями 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 развивает базовую модель детектора 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: систем, тесно интегрированных с Google Cloud Vision API или инфраструктурой TPU, где EfficientDet имеет нативную оптимизацию.
- Исследований составного масштабирования: академических бенчмарков, посвящённых изучению влияния сбалансированного масштабирования глубины, ширины и разрешения сети.
- Мобильного развертывания через TFLite: проектов, которым необходим экспорт в TensorFlow Lite для Android или встраиваемых устройств под управлением Linux.
Когда стоит выбрать RT-DETR#
RT-DETR рекомендуется для:
- Исследований обнаружения на основе Transformer: Проектов, изучающих механизмы внимания и архитектуры Transformer для сквозного обнаружения объектов без NMS.
- Сценариев с высокой точностью и гибкими требованиями к задержке: Приложений, в которых точность обнаружения является главным приоритетом, а немного большая задержка инференса приемлема.
- Обнаружения крупных объектов: Сцен с преимущественно средними и крупными объектами, где механизм глобального внимания Transformer дает естественное преимущество.
Когда выбирать Ultralytics (YOLO26)#
Для большинства новых проектов Ultralytics YOLO26 предлагает лучшее сочетание производительности и удобства для разработчиков:
- Развертывания на периферийных устройствах без NMS: приложений, требующих стабильного вывода с низкой задержкой без сложной постобработки с подавлением немаксимумов.
- Сред без GPU: устройств без выделенного ускорения GPU, где до 43% более быстрый вывод YOLO26 на CPU дает решающее преимущество.
- Обнаружения мелких объектов: сложных сценариев, таких как аэрофотосъемка с дронов или анализ данных IoT-сенсоров, где ProgLoss и STAL значительно повышают точность обнаружения крошечных объектов.
Преимущество Ultralytics: знакомство с YOLO26#
Хотя EfficientDet и RTDETRv2 заняли прочное место в истории компьютерного зрения, современные производственные среды требуют идеального баланса скорости, точности и исключительного опыта разработчиков. Недавно выпущенный Ultralytics YOLO26 объединяет лучшие стороны этих различающихся архитектур.
YOLO26 выделяется сочетанием оптимизированной экосистемы, которой известна компания Ultralytics, и революционных внутренних механизмов.
Почему стоит выбрать YOLO26 вместо конкурирующих решений?#
- Сквозная конструкция без NMS: Вдохновленный такими моделями Transformer, как RTDETRv2, YOLO26 изначально работает сквозным образом. Он устраняет постобработку NMS, обеспечивая более быстрые и простые конвейеры развертывания без огромного количества параметров, характерного для чистых моделей Transformer.
- Оптимизатор MuSGD: Вдохновленный инновациями в обучении больших языковых моделей, такими как Kimi K2 от Moonshot AI, YOLO26 использует комбинацию SGD и Muon. Это обеспечивает беспрецедентную стабильность обучения и значительно более быструю сходимость по сравнению с длительными расписаниями, необходимыми RTDETRv2.
- Оптимизация для периферийных устройств: Благодаря инференсу на CPU, который до 43% быстрее, YOLO26 создан для периферийного ИИ. Он легко превосходит тяжелые модели 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
# Load the state-of-the-art YOLO26 model
model = YOLO("yolo26n.pt")
# Train the model on your custom dataset
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
# Run inference on a test image
predictions = model.predict("image.jpg")Для тех, кто управляет устаревшей инфраструктурой, высоко оцененная Ultralytics YOLOv8 остается стабильным и мощным выбором, демонстрируя долгосрочную надежность экосистемы Ultralytics. Работаешь ли ты со сложными алгоритмами отслеживания в реальном времени или простым обнаружением дефектов, переход на YOLO26 обеспечит твоей системе готовность к будущему, высокую точность и эффективное использование памяти.