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
- Дата: 2019-11-20
- Arxiv: 1911.09070
- Документация: README Brain AutoML
В основе EfficientDet лежит двунаправленная пирамидальная сеть признаков (BiFPN). В отличие от традиционных FPN, BiFPN обеспечивает простое и быстрое объединение признаков разных масштабов, вводя обучаемые веса, которые определяют важность различных входных признаков. В сочетании с магистральной сетью EfficientNet EfficientDet систематически одновременно увеличивает ширину, глубину и разрешение сети.
Несмотря на высокую теоретическую эффективность с точки зрения FLOPs, моделям EfficientDet иногда не удаётся добиться соответствующей реальной скорости на периферийных устройствах из-за сложных шаблонов доступа к памяти. Это резко контрастирует с меньшими требованиями моделей 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 стремится минимизировать количество параметров. Однако обе модели уступают современным решениям по возможностям работы в реальном времени, необходимым для передового периферийного ИИ.
Сценарии использования и рекомендации#
Выбор между PP-YOLOE+ и EfficientDet зависит от требований конкретного проекта, ограничений среды развёртывания и предпочтений в отношении экосистемы.
Когда выбирать PP-YOLOE+#
PP-YOLOE+ — хороший выбор для:
- Интеграция с экосистемой PaddlePaddle: Организации с готовой инфраструктурой на базе фреймворка и инструментов PaddlePaddle от Baidu.
- Развертывание на периферийных устройствах с Paddle Lite: Развертывание на оборудовании со специально оптимизированными ядрами инференса для Paddle Lite или движка инференса Paddle.
- Обнаружение объектов на сервере с высокой точностью: Сценарии, где приоритетом является максимальная точность обнаружения на мощных серверах с GPU, а зависимость от конкретного фреймворка не имеет значения.
Когда стоит выбрать EfficientDet#
EfficientDet подойдёт для следующих задач:
- Google Cloud и конвейеры TPU: Системы, тесно интегрированные с API Google Cloud Vision или инфраструктурой TPU, где EfficientDet оптимизирована изначально.
- Исследования составного масштабирования: Академические исследования и сравнительное тестирование, посвящённые влиянию сбалансированного масштабирования глубины, ширины и разрешения сети.
- Развертывание на мобильных устройствах через LiteRT: Проекты, для которых требуется экспорт в LiteRT (ранее TensorFlow Lite) для Android или встраиваемых устройств с Linux.
Когда выбирать Ultralytics (YOLO26)#
Для большинства новых проектов Ultralytics YOLO26 предлагает оптимальное сочетание производительности и удобства разработки:
- Развертывание на периферийных устройствах без NMS: Приложения, которым необходим стабильный инференс с низкой задержкой без усложнения постобработки подавлением немаксимумов.
- Среды только с CPU: Устройства без выделенного ускорителя GPU, где до 43% более быстрый инференс YOLO26 на CPU даёт решающее преимущество.
- Обнаружение небольших объектов: Сложные сценарии, например съёмка с дронов или анализ данных IoT-датчиков, где ProgLoss и STAL заметно повышают точность обнаружения крошечных объектов.
Современная альтернатива: Ultralytics YOLO26#
Хотя PP-YOLOE+ и EfficientDet стали значительными вехами в истории, разработчикам, которым нужны передовая точность, меньшее потребление памяти и удобный пользовательский интерфейс, стоит обратить внимание на Ultralytics YOLO26.
YOLO26 — это огромный шаг вперёд в области детекции объектов, воплощающий несколько ключевых инноваций:
- Сквозная архитектура без NMS: Развивая прорывные решения YOLOv10, опциональная сквозная голова YOLO26 (
nms=False) исключает подавление немаксимумов (NMS) на этапе инференса. Это значительно снижает задержку и устраняет узкие места сложной постобработки. - Оптимизатор MuSGD: Вдохновлённая инновациями в обучении больших языковых моделей, YOLO26 использует гибридный оптимизатор SGD и Muon. Это значительно повышает стабильность обучения и сокращает время сходимости.
- Высочайшая скорость: YOLO26 обеспечивает до 43% более быстрый инференс на CPU, чем модели предыдущих поколений, например YOLO11, что делает её оптимальным выбором для периферийных устройств с питанием от аккумулятора или только с CPU.
- Продвинутые функции потерь: Использование ProgLoss и STAL значительно улучшает распознавание мелких объектов, что крайне важно для таких задач, как анализ данных с дронов и робототехника.
В отличие от EfficientDet, ориентированной исключительно на детекцию, YOLO26 изначально поддерживает классификацию изображений, оценку позы и ориентированные ограничивающие рамки (OBB) в рамках одной хорошо поддерживаемой экосистемы.
Простота использования и интеграция в экосистему#
Один из главных недостатков устаревших моделей, таких как EfficientDet, — сложность конвейеров обучения и настройки автоматизированного машинного обучения. В свою очередь, платформа Ultralytics обеспечивает непревзойдённый опыт разработки.
Развёртывание модели с Ultralytics занимает всего несколько строк кода, что резко контрастирует с многословными конфигурациями, необходимыми для старых фреймворков.
from ultralytics import YOLO
# Загрузи предобученную модель YOLO26
model = YOLO("yolo26s.pt")
# Обучи модель на датасете COCO8
results = model.train(data="coco8.yaml", epochs=100)
# Запусти инференс без NMS на тестовом изображении с помощью сквозной головы
predictions = model("https://ultralytics.com/images/bus.jpg", nms=False)Тем, кто изучает другие альтернативы, в экосистеме Ultralytics также доступны архитектуры RT-DETR и устаревшая YOLOv8, что позволяет легко переключаться между ними и тестировать их.
Заключение#
PP-YOLOE+ остаётся хорошим выбором для отдельных серверных развёртываний в экосистеме Paddle, а EfficientDet по-прежнему представляет интерес как пример автоматизированного проектирования архитектур. Однако для современных приложений, которым необходимы инференс в реальном времени, простота развёртывания и минимальные требования к памяти, Ultralytics YOLO26 предлагает наиболее убедительный баланс производительности. Опциональная архитектура без NMS и молниеносная скорость на CPU делают её очевидным выбором для перспективной ИИ-инфраструктуры.