PP-YOLOE+ и EfficientDet#
Выбор подходящей архитектуры — критически важный этап при создании надёжных приложений для компьютерного зрения. В этом техническом руководстве рассматриваются компромиссы между двумя известными моделями обнаружения объектов: PP-YOLOE+ и EfficientDet. Мы разберём их архитектуры, проанализируем метрики производительности и рассмотрим оптимальные сценарии развёртывания.
Хотя обе модели внесли значительный вклад в развитие этой области, мы также обсудим, как современные альтернативы, такие как Ultralytics YOLO26, обеспечивают значительно более эффективное использование памяти, более быстрый инференс и существенно более удобный процесс разработки.
Обзор архитектуры: PP-YOLOE+#
PP-YOLOE+ — это усовершенствованная версия оригинальной PP-YOLO, разработанная специально для оптимизации производительности на серверных GPU в экосистеме PaddlePaddle. В ней реализован ряд улучшений базовой архитектуры с акцентом на безъякорную концепцию.
- Авторы: авторы PaddlePaddle
- Организация: Baidu
- Дата: 2022-04-02
- Arxiv: 2203.16250
- Документация: README PaddleDetection
PP-YOLOE+ использует магистральную сеть CSPRepResNet и голову Efficient Task-aligned (ET-head), а также активно применяет varifocal loss для классификации и distribution focal loss для регрессии ограничивающих рамок. Переход к архитектуре детектора без якорей упростил конвейер постобработки, благодаря чему модель на момент выпуска успешно конкурировала с другими решениями.
Команды, уже активно использующие фреймворк PaddlePaddle от Baidu, часто считают PP-YOLOE+ более простой для внедрения в такие задачи, как сегментация экземпляров, хотя ей не хватает широкой поддержки нескольких фреймворков, характерной для более новых инструментов.
Обзор архитектуры: EfficientDet#
EfficientDet использует принципиально другой подход к обнаружению объектов, в значительной степени опираясь на поиск нейронной архитектуры и принципы составного масштабирования.
- Авторы: Mingxing Tan, Ruoming Pang и Quoc V. Le
- Организация: Google
- Дата: 20.11.2019
- Arxiv: 1911.09070
- Документация: README Brain AutoML
Ключевой компонент EfficientDet — двунаправленная пирамидальная сеть признаков (BiFPN). В отличие от традиционных FPN, BiFPN обеспечивает простое и быстрое объединение признаков разных масштабов благодаря введению обучаемых весов, позволяющих учитывать важность различных входных признаков. В сочетании с магистральной сетью EfficientNet модель EfficientDet системно одновременно масштабирует ширину, глубину и разрешение сети.
Хотя с теоретической точки зрения модели EfficientDet отличаются высокой эффективностью по количеству FLOPs, иногда им не удаётся преобразовать эту теоретическую эффективность в реальную скорость на периферийных устройствах из-за сложных шаблонов доступа к памяти. Это резко контрастирует с меньшими требованиями к памяти у моделей на базе YOLO.
Анализ производительности и результаты тестов#
В таблице ниже сопоставляются ключевые метрики на стандартных наборах данных, таких как COCO. Сравнение средней точности (mAP) со скоростью инференса позволяет наглядно оценить фронт Парето.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| PP-YOLOE+t | 640 | 39.9 | - | 2.84 | 4.85 | 19.15 |
| PP-YOLOE+s | 640 | 43.7 | - | 2.62 | 7.93 | 17.36 |
| PP-YOLOE+m | 640 | 49.8 | - | 5.56 | 23.43 | 49.91 |
| PP-YOLOE+l | 640 | 52.9 | - | 8.36 | 52.2 | 110.07 |
| PP-YOLOE+x | 640 | 54.7 | - | 14.3 | 98.42 | 206.59 |
| 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 |
Как показано в результатах, PP-YOLOE+ обычно лучше масштабируется по абсолютному значению mAP на высокопроизводительных GPU, тогда как EfficientDet стремится минимизировать количество параметров. Однако обе модели уступают современным решениям по возможностям работы в реальном времени, необходимым для передовых периферийных AI-систем.
Варианты применения и рекомендации#
Выбор между PP-YOLOE+ и EfficientDet зависит от конкретных требований твоего проекта, ограничений развёртывания и предпочтений относительно экосистемы.
Когда выбирать PP-YOLOE+#
PP-YOLOE+ — хороший выбор для:
- Интеграция с экосистемой PaddlePaddle: Организации с существующей инфраструктурой, построенной на фреймворке и инструментах PaddlePaddle от Baidu.
- Развертывание на периферийных устройствах с Paddle Lite: Развертывание на оборудовании с высокооптимизированными ядрами инференса, специально предназначенными для Paddle Lite или механизма инференса Paddle.
- Высокоточное обнаружение на сервере: Сценарии, в которых приоритетом является максимальная точность обнаружения на мощных GPU-серверах, а зависимость от фреймворка не имеет значения.
Когда стоит выбрать EfficientDet#
EfficientDet рекомендуется для:
- Конвейеров Google Cloud и TPU: систем, тесно интегрированных с Google Cloud Vision API или инфраструктурой TPU, где EfficientDet имеет нативную оптимизацию.
- Исследований составного масштабирования: академических бенчмарков, посвящённых изучению влияния сбалансированного масштабирования глубины, ширины и разрешения сети.
- Мобильного развертывания через TFLite: проектов, которым необходим экспорт в TensorFlow Lite для Android или встраиваемых устройств под управлением Linux.
Когда выбирать Ultralytics (YOLO26)#
Для большинства новых проектов Ultralytics YOLO26 предлагает лучшее сочетание производительности и удобства для разработчиков:
- Развертывания на периферийных устройствах без NMS: приложений, требующих стабильного вывода с низкой задержкой без сложной постобработки с подавлением немаксимумов.
- Сред без GPU: устройств без выделенного ускорения GPU, где до 43% более быстрый вывод YOLO26 на CPU дает решающее преимущество.
- Обнаружения мелких объектов: сложных сценариев, таких как аэрофотосъемка с дронов или анализ данных IoT-сенсоров, где ProgLoss и STAL значительно повышают точность обнаружения крошечных объектов.
Современная альтернатива: Ultralytics YOLO26#
Хотя PP-YOLOE+ и EfficientDet стали важными историческими этапами, разработчикам, которым нужны передовая точность, меньшее потребление памяти и удобный пользовательский интерфейс, стоит обратить внимание на Ultralytics YOLO26.
YOLO26 представляет собой огромный шаг вперёд в обнаружении объектов и включает ряд важных инноваций:
- Сквозная архитектура без NMS: опираясь на достижения YOLOv10, YOLO26 нативно устраняет подавление немаксимумов (NMS) во время инференса. Это значительно снижает задержку и устраняет узкие места сложной постобработки.
- Оптимизатор MuSGD: вдохновлённый инновациями в обучении LLM, YOLO26 использует гибридный оптимизатор SGD и Muon. Это значительно повышает стабильность обучения и сокращает время сходимости.
- Экстремальная скорость: YOLO26 обеспечивает до 43% более быстрый инференс на CPU по сравнению со старыми поколениями, такими как YOLO11, что делает его оптимальным выбором для периферийных устройств с питанием от батареи или работающих только на CPU.
- Продвинутые функции потерь: интеграция ProgLoss и STAL значительно улучшает распознавание небольших объектов, что особенно важно для таких задач, как анализ данных с дронов и робототехника.
В отличие от EfficientDet, которая сосредоточена исключительно на обнаружении, YOLO26 нативно поддерживает оценку позы, классификацию изображений и ориентированные ограничивающие рамки (OBB) — всё это в рамках одной экосистемы с качественной поддержкой.
Простота использования и интеграция с экосистемой#
Один из главных недостатков устаревших моделей, таких как EfficientDet, — сложность их конвейеров обучения и настроек автоматизированного машинного обучения. В отличие от них, платформа Ultralytics предлагает непревзойдённый опыт разработки.
Развёртывание модели с помощью Ultralytics занимает всего несколько строк кода, что разительно отличается от объёмных конфигураций, необходимых в старых фреймворках.
from ultralytics import YOLO
# Load a pretrained YOLO26 model
model = YOLO("yolo26s.pt")
# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100)
# Run inference on a test image natively without NMS overhead
predictions = model("https://ultralytics.com/images/bus.jpg")Тем, кто рассматривает другие альтернативы, также доступны такие архитектуры, как RT-DETR или устаревшая YOLOv8, в экосистеме Ultralytics, что позволяет легко заменять модели и тестировать их.
Заключение#
PP-YOLOE+ остаётся сильным выбором для определённых серверных развёртываний в экосистеме Paddle, а EfficientDet по-прежнему представляет интерес как пример автоматизированного проектирования архитектур. Однако для современных приложений, требующих инференса в реальном времени, простоты развёртывания и минимальных требований к памяти, Ultralytics YOLO26 обеспечивает наиболее убедительный баланс производительности. Нативная архитектура без NMS и молниеносная производительность на CPU делают эту модель очевидным выбором для создания перспективной AI-инфраструктуры.