YOLOv9 и PP-YOLOE+#
Сфера детекции объектов в реальном времени продолжает стремительно развиваться, предлагая инженерам по компьютерному зрению широкий выбор высокоточных моделей для развертывания на периферийной и облачной инфраструктуре. Среди заметных моделей в этой области — YOLOv9 и PP-YOLOE+. Обе модели обеспечивают высокую точность и скорость, но имеют разное научное происхождение и принадлежат к разным программным экосистемам.
В этом техническом сравнении рассматриваются архитектуры, методы обучения, метрики производительности и оптимальные варианты применения этих моделей в реальных условиях. Также объясняется, как широкая экосистема Ultralytics помогает разработчикам, для которых важны простота использования, эффективное использование памяти и универсальность развертывания.
История создания и технические характеристики моделей#
Знание предыстории этих моделей помогает понять особенности их архитектуры и зависимость от фреймворков.
YOLOv9: решение проблемы информационного узкого места#
Представленная в начале 2024 года YOLOv9 решает проблему потери данных, возникающую при прохождении информации через глубокие нейронные сети. Это эффективная сверточная нейронная сеть, разработанная для максимальной эффективности использования параметров.
- Авторы: Chien-Yao Wang, Hong-Yuan Mark Liao
- Организация: Институт информатики, Academia Sinica, Тайвань
- Дата: 21 февраля 2024 года
- arXiv: 2402.13616
- GitHub: WongKinYiu/yolov9
- Документация: документация Ultralytics YOLOv9
PP-YOLOE+: развитие экосистемы Paddle#
Выпущенная Baidu в 2022 году PP-YOLOE+ представляет собой итеративное улучшение PP-YOLOv2. В ней используется безанкерная архитектура и стратегия динамического назначения меток, повышающая скорость сходимости и точность в рамках фреймворка PaddlePaddle.
- Авторы: авторы PaddlePaddle
- Организация: Baidu
- Дата: 2 апреля 2022 года
- arXiv: 2203.16250
- GitHub: PaddleDetection
- Документация: конфигурация PP-YOLOE+
Сравнение архитектур#
Программируемая информация о градиентах и CSPRepResStage#
Ключевое нововведение YOLOv9 — программируемая градиентная информация (PGI). PGI служит вспомогательной системой обучения, обеспечивая сохранение важной градиентной информации и ее точную передачу к неглубоким слоям во время обучения. Она сочетается с обобщенной эффективной сетью агрегации слоев (GELAN), которая объединяет сильные стороны CSPNet и ELAN, обеспечивая высокую точность при меньших вычислительных затратах (FLOPs).
PP-YOLOE+ использует специализированную базовую сеть CSPRepResStage. Для ускорения инференса модель применяет методы репараметризации, похожие на используемые в RepVGG: при развертывании слои свертки объединяются. Кроме того, модель использует голову Efficient Task-aligned (ET-head), которая уравновешивает задачи классификации и регрессии.
Несмотря на надежность PP-YOLOE+, архитектура GELAN в YOLOv9 использует меньше параметров при любом размере модели, уменьшая объем занимаемой памяти при инференсе и делая ее подходящей для периферийных ИИ-устройств.
Сравнение производительности#
При оценке моделей для промышленной эксплуатации критически важно учитывать компромисс между mAP (средней средней точностью), скоростью инференса и размером модели.
| Модель | размер (пиксели) | mAPval50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.2 | 26.7 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.1 | 76.8 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.5 | 102.8 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 58.1 | 192.5 |
| 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 |
Анализ#
- Эффективность использования параметров: YOLOv9 эффективнее использует параметры. Например, YOLOv9c достигает mAP 53,0% всего с 25,5 млн параметров, тогда как PP-YOLOE+l требуется более чем вдвое больше параметров (52,2 млн), чтобы получить немного меньшую mAP — 52,9%, что увеличивает требования YOLOv9 к памяти. При этом PP-YOLOE+ использует меньше FLOPs в моделях размеров s и m.
- Скорость инференса: YOLOv9 обеспечивает конкурентную скорость с TensorRT на GPU NVIDIA T4; YOLOv9t — самая быстрая модель в этой категории, тогда как PP-YOLOE+ быстрее в размерах s, m и x. Обе линейки подходят для инференса в реальном времени.
Методики обучения и экосистема#
Выбор между этими моделями часто сводится к выбору программной экосистемы.
PP-YOLOE+ и PaddlePaddle#
PP-YOLOE+ тесно связана с набором инструментов PaddleDetection. Несмотря на широкие возможности, для работы с ней нужно освоить среду, ориентированную на командную строку и требующую множества конфигураций. Для команд, глубоко интегрированных в экосистемы PyTorch или TensorFlow, переход на PaddlePaddle создает серьезные трудности и требует больше времени на освоение.
Преимущества Ultralytics: оптимизированные рабочие процессы#
В отличие от нее, YOLOv9 поддерживается экосистемой Ultralytics, созданной для разработчиков и исследователей с упором на простоту использования. Python API избавляет от большей части шаблонного кода.
from ultralytics import YOLO
# Загрузи предобученную модель YOLOv9
model = YOLO("yolov9c.pt")
# Обучай на пользовательском наборе данных
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=0)
# Выполни инференс и визуализируй результаты
results = model("https://ultralytics.com/images/bus.jpg")
# Экспортируй модель в ONNX для развёртывания в production
model.export(format="onnx")Этот рабочий процесс демонстрирует эффективность обучения моделей Ultralytics. Встроенная поддержка аугментации данных, распределенного обучения и автоматического логирования на такие платформы, как Weights & Biases или MLflow, доступна по умолчанию.
Хотя YOLOv9 показывает хорошие результаты, для новых проектов Ultralytics рекомендует Ultralytics YOLO26. В YOLO26 предусмотрена встроенная архитектура от начала до конца без NMS (опционально через nms=False), которая устраняет постобработку с подавлением немаксимумов (NMS) и упрощает развертывание. Благодаря удалению DFL (Distribution Focal Loss убрана для упрощения экспорта и улучшения совместимости с периферийными устройствами и устройствами с низким энергопотреблением) YOLO26n обеспечивает до 43% более быстрый инференс на CPU, чем YOLO11n, при периферийных вычислениях. Оптимизатор MuSGD обеспечивает стабильное обучение и быструю сходимость, а ProgLoss + STAL (прогрессивная функция потерь и назначение меток с учетом малых объектов) улучшают детекцию мелких объектов, что особенно важно для IoT, робототехники и аэрофотосъемки.
Универсальность и поддержка задач#
Современные проекты в сфере компьютерного зрения редко ограничиваются простым обнаружением ограничивающих рамок.
PP-YOLOE+ в первую очередь предназначена для стандартной детекции объектов. Адаптация ее архитектуры для других задач требует значительных инженерных усилий.
В свою очередь, фреймворк Ultralytics поддерживает множество задач. Благодаря единому API разработчики могут перейти от стандартной детекции объектов к сегментации экземпляров, классификации изображений, оценке позы и детекции ориентированных ограничивающих рамок (OBB) на аэрофотоснимках. Эта универсальность — одна из ключевых причин, по которым команды выбирают модели на базе Ultralytics, например YOLOv9, YOLO11 и YOLO26.
Оптимальные сценарии применения#
- Аналитика умного города и управление дорожным движением: высокая эффективность использования параметров и низкая задержка YOLOv9 (а также последующей модели YOLO26) делают их подходящими для развертывания на периферийном оборудовании с ограниченными ресурсами, например устройствах NVIDIA Jetson, для мониторинга транспортных потоков и городской безопасности.
- Системы учета товаров в рознице: при обнаружении множества мелких товаров на полках PGI в YOLOv9 помогает сохранять точную пространственную информацию, что улучшает детекцию мелких объектов.
- Устаревшие системы: PP-YOLOE+ остается практичным вариантом для команд, которым необходимо использовать программный стек Baidu/PaddlePaddle в существующей инфраструктуре.
Для исследователей, изучающих архитектуры на основе Transformer, Ultralytics также нативно поддерживает RT-DETR в том же API, поэтому ты можешь выбрать модель, которая лучше всего подходит под требования к развертыванию.