PP-YOLOE+ против EfficientDet#
Выбор правильной архитектуры — критически важный шаг при создании надежных приложений computer vision. В этом техническом руководстве рассматриваются компромиссы между двумя известными моделями обнаружения объектов: PP-YOLOE+ и EfficientDet. Мы разберем их архитектуры, проанализируем performance metrics и изучим их идеальные сценарии развертывания.
Хотя обе модели внесли значительный вклад в эту область, мы также обсудим, как современные альтернативы, такие как Ultralytics YOLO26, предлагают значительно превосходящую эффективность использования памяти, более быструю инференс и максимально оптимизированный опыт для разработчиков.
Архитектурный обзор: PP-YOLOE+#
PP-YOLOE+ — это эволюционировавшая версия оригинальной PP-YOLO, созданная специально для оптимизации производительности на серверных GPU в экосистеме PaddlePaddle. Она вводит несколько улучшений в базовую архитектуру, фокусируясь на парадигме без использования анкоров (anchor-free).
- Авторы: Авторы PaddlePaddle
- Организация: Baidu
- Дата: 2022-04-02
- Arxiv: 2203.16250
- Docs: PaddleDetection README
PP-YOLOE+ оснащен бэкбоном CSPRepResNet, головой Efficient Task-aligned head (ET-head) и в значительной степени полагается на varifocal loss для классификации наряду с distribution focal loss для регрессии ограничивающих прямоугольников. Переход на дизайн anchor-free detector помог оптимизировать конвейер постобработки, сделав ее весьма конкурентоспособной на момент выпуска.
Командам, уже глубоко вовлеченным в экосистему PaddlePaddle от Baidu, часто проще внедрить PP-YOLOE+ для таких задач, как instance segmentation, хотя ей не хватает широкой поддержки множества фреймворков, наблюдаемой в новых инструментах.
Архитектурный обзор: EfficientDet#
EfficientDet применяет радикально иной подход к object detection, сильно полагаясь на поиск архитектуры нейросети и принципы составного масштабирования.
- Авторы: Минсин Тан, Руомин Пан и Куок В. Ле
- Организация: Google
- Дата: 2019-11-20
- Arxiv: 1911.09070
- Docs: Brain AutoML README
Краеугольным камнем EfficientDet является ее двунаправленная пирамидальная сеть признаков (BiFPN). В отличие от традиционных FPN, BiFPN позволяет легко и быстро выполнять многомасштабное слияние признаков за счет введения обучаемых весов для определения важности различных входных признаков. В сочетании с backbone EfficientNet, EfficientDet систематически и одновременно масштабирует ширину, глубину и разрешение сети.
Хотя теоретически EfficientDet обладает высокой эффективностью с точки зрения FLOPs, этим моделям иногда бывает трудно реализовать свою теоретическую эффективность в реальной скорости на граничных устройствах (edge devices) из-за сложных шаблонов доступа к памяти, что резко контрастирует с меньшими требованиями к памяти у моделей на базе YOLO.
Анализ производительности и бенчмарки#
В таблице ниже сопоставлены ключевые метрики на стандартных datasets like COCO. Сравнение mean Average Precision (mAP) со скоростью инференса дает четкое представление о границе Парето.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (М) | FLOPs (Б) |
|---|---|---|---|---|---|---|
| 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 пытается минимизировать количество параметров. Тем не менее, обе модели отстают от современных возможностей реального времени, необходимых для передового edge AI.
Сценарии использования и рекомендации#
Выбор между PP-YOLOE+ и EfficientDet зависит от требований твоего конкретного проекта, ограничений развертывания и предпочтений в экосистеме.
Когда выбирать PP-YOLOE+#
PP-YOLOE+ — это сильный выбор в следующих случаях:
- Интеграция с экосистемой PaddlePaddle: Организации с существующей инфраструктурой, созданной на базе фреймворка и инструментов Baidu's PaddlePaddle.
- Развертывание на периферии с 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: приложений, требующих стабильного вывода с низкой задержкой без сложности постобработки подавления немаксимумов.
- Среды только с CPU: устройств без выделенного GPU-ускорения, где до 43% более быстрый вывод на CPU у YOLO26 дает решающее преимущество.
- Обнаружение малых объектов: Сложные сценарии, такие как aerial drone imagery или анализ с помощью IoT-сенсоров, где ProgLoss и STAL значительно повышают точность для крошечных объектов.
Современная альтернатива: Ultralytics YOLO26#
Хотя PP-YOLOE+ и EfficientDet представляют собой важные исторические вехи, разработчикам, стремящимся к передовой точности, сниженному потреблению памяти и удобству работы, следует обратить внимание на Ultralytics YOLO26.
YOLO26 представляет собой огромный шаг вперед в обнаружении объектов, внедряя несколько критических инноваций:
- End-to-End NMS-Free Design: Опираясь на прорывы YOLOv10, YOLO26 нативно исключает подавление не максимальных элементов (Non-Maximum Suppression, NMS) во время инференса. Это приводит к значительному снижению задержки и устраняет сложные узкие места постобработки.
- Оптимизатор MuSGD: Вдохновленный инновациями в обучении LLM, YOLO26 использует гибридный оптимизатор SGD и Muon. Это радикально повышает стабильность обучения и сокращает время сходимости.
- Extreme Speed: YOLO26 обеспечивает до 43% более быстрый инференс на CPU по сравнению с более старыми поколениями, такими как YOLO11, что делает его абсолютным лучшим выбором для работающих от батареи или использующих только CPU периферийных устройств.
- Advanced Loss Functions: Интеграция ProgLoss и STAL значительно улучшает распознавание мелких объектов, что крайне важно для таких задач, как drone analytics и robotics.
В отличие от EfficientDet, которая фокусируется исключительно на детекции, YOLO26 нативно справляется с pose estimation, image classification и oriented bounding boxes (OBB), и все это в рамках одной и той же поддерживаемой экосистемы.
Удобство использования и интеграция с экосистемой#
Один из главных недостатков устаревших моделей, таких как EfficientDet, заключается в сложности их тренировочных конвейеров и настроек automated machine learning. Напротив, Ultralytics Platform предлагает непревзойденный опыт для разработчиков.
Развертывание модели с помощью 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")Для тех, кто изучает другие альтернативы, в экосистеме Ultralytics также доступны такие архитектуры, как RT-DETR или устаревшая YOLOv8, что позволяет осуществлять плавную замену и тестирование.
Заключение#
PP-YOLOE+ остается сильным выбором для конкретных серверных развертываний в экосистеме Paddle, а EfficientDet продолжает оставаться интересным объектом для изучения в области автоматизированного проектирования архитектур. Однако для современных приложений, требующих real-time inference, простоты развертывания и минимальных требований к памяти, Ultralytics YOLO26 обеспечивает наиболее убедительный баланс производительности. Его нативный дизайн без NMS и молниеносная производительность на CPU делают его безусловным выбором для подготовки вашей инфраструктуры ИИ к будущему.