PP-YOLOE+ против YOLOv9: Техническое сравнение
Выбор оптимальной архитектуры для проектов компьютерного зрения требует навигации по ландшафту быстро развивающихся моделей. На этой странице представлено подробное техническое сравнение между PP-YOLOE+ от Baidu и YOLOv9, двумя сложными одноэтапными детекторами объектов. Мы анализируем их архитектурные инновации, показатели производительности и интеграцию в экосистему, чтобы помочь вам принять обоснованное решение. Хотя обе модели демонстрируют высокие возможности, они представляют собой различные философии проектирования и зависимости от фреймворков.
PP-YOLOE+: Высокая точность в экосистеме PaddlePaddle
PP-YOLOE+ — это усовершенствованная версия PP-YOLOE, разработанная Baidu как часть пакета PaddleDetection. Он разработан для обеспечения сбалансированного компромисса между точностью и скоростью inference, специально оптимизированной для фреймворка глубокого обучения PaddlePaddle.
Авторы: Авторы PaddlePaddle
Организация:Baidu
Дата: 2022-04-02
Arxiv:https://arxiv.org/abs/2203.16250
GitHub:https://github.com/PaddlePaddle/PaddleDetection/
Документация:PP-YOLOE+ README PaddleDetection
Архитектура и ключевые особенности
PP-YOLOE+ работает как одноэтапный детектор без anchor boxes. Он построен на основе CSPRepResNet и использует стратегию Task Alignment Learning (TAL) для улучшения согласования между задачами классификации и локализации. Ключевой особенностью является Efficient Task-aligned Head (ET-Head), который снижает вычислительные затраты, сохраняя при этом точность. Модель использует функцию Varifocal Loss для обработки дисбаланса классов во время обучения.
Сильные и слабые стороны
Основная сила PP-YOLOE+ заключается в ее оптимизации для аппаратного и программного стека Baidu. Она предлагает масштабируемые модели (s, m, l, x), которые хорошо работают в стандартных бенчмарках обнаружения объектов.
Однако, ее сильная зависимость от экосистемы PaddlePaddle представляет собой значительное препятствие для более широкого AI-сообщества, которое в основном отдает предпочтение PyTorch. Перенос существующих рабочих процессов PyTorch на PaddlePaddle может потребовать больших ресурсов. Кроме того, по сравнению с новыми архитектурами, PP-YOLOE+ требует больше параметров для достижения аналогичной точности, что влияет на хранение и память на устройствах с ограниченными ресурсами.
YOLOv9: Программируемая градиентная информация для расширенного обучения
Ultralytics YOLOv9 представляет собой сдвиг парадигмы в обнаружении объектов в реальном времени, решая проблему «узкого места информации», присущую глубоким нейронным сетям.
Authors: Chien-Yao Wang and Hong-Yuan Mark Liao
Organization:Institute of Information Science, Academia Sinica, Taiwan
Date: 2024-02-21
Arxiv:https://arxiv.org/abs/2402.13616
GitHub:https://github.com/WongKinYiu/yolov9
Documentation:https://docs.ultralytics.com/models/yolov9/
Архитектура и ключевые особенности
YOLOv9 объединяет две новаторские концепции: Programmable Gradient Information (PGI) и Generalized Efficient Layer Aggregation Network (GELAN).
- PGI: По мере углубления сетей информация входных данных часто теряется в процессе прямого распространения. PGI предоставляет вспомогательную ветвь контроля, которая обеспечивает надежную генерацию градиента, позволяя модели «запоминать» важные признаки для задач отслеживания объектов и detect без увеличения стоимости инференса.
- GELAN: Эта архитектурная конструкция оптимизирует эффективность параметров, позволяя модели достигать более высокой точности с меньшими вычислительными ресурсами (FLOPs) по сравнению с обычными магистральными сетями, использующими depth-wise convolution.
Вы знали?
Метод PGI в YOLOv9 решает проблему информационного узкого места, которая ранее требовала громоздких методов глубокого контроля. Это приводит к созданию моделей, которые одновременно легче и точнее, что значительно улучшает баланс производительности.
Сильные и слабые стороны
YOLOv9 превосходен в эффективности обучения и использовании параметров. Он достигает самых современных результатов на наборе данных COCO, превосходя предыдущие итерации по точности, сохраняя при этом скорость в реальном времени. Его интеграция в экосистему Ultralytics означает, что он получает выгоду от хорошо поддерживаемой экосистемы, включая простое развертывание через режимы экспорта в такие форматы, как ONNX и TensorRT.
Потенциальным соображением является то, что самые крупные варианты (YOLOv9-E) требуют значительных ресурсов GPU для обучения. Однако объем памяти, занимаемой при выводе, остается конкурентоспособным, что позволяет избежать высоких затрат, связанных с моделями на основе трансформеров.
Сравнительный анализ производительности
При прямом сравнении YOLOv9 демонстрирует превосходную эффективность. Например, модель YOLOv9-C достигает более высокого mAP (53,0%), чем PP-YOLOE+l (52,9%), при этом используя примерно вдвое меньше параметров (25,3M против 52,2M). Это значительное уменьшение размера модели без ущерба для точности подчеркивает эффективность архитектуры GELAN.
| Модель | размер (пиксели) | 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 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
Таблица показывает, что для достижения аналогичных целей по точности YOLOv9 постоянно требует меньше вычислительных ресурсов. Модель YOLOv9-E продвигает возможности еще дальше, достигая 55,6% mAP, что является явным преимуществом перед самым большим вариантом PP-YOLOE+.
Преимущество Ultralytics
В то время как PP-YOLOE+ является эффективным детектором, выбор YOLOv9 через фреймворк Ultralytics предлагает явные преимущества в отношении простоты использования и универсальности.
Оптимизированный пользовательский опыт
Ultralytics уделяет первостепенное внимание удобству для разработчиков. В отличие от сложных файлов конфигурации, которые часто требуются PaddleDetection, модели Ultralytics можно загружать, обучать и развертывать всего несколькими строками кода на python. Это значительно снижает порог вхождения для инженеров и исследователей.
Универсальность и экосистема
Ultralytics поддерживает широкий спектр задач, помимо простого detect, включая сегментацию экземпляров, оценку позы и detect ориентированных ограничивающих рамок (obb). Эта универсальность позволяет разработчикам решать разнообразные задачи, используя единый унифицированный API. Кроме того, активное сообщество и частые обновления гарантируют, что пользователи имеют доступ к последним оптимизациям и интеграциям с такими инструментами, как TensorBoard и MLflow.
Пример кода: Использование YOLOv9
В следующем примере демонстрируется, как легко можно запустить inference с YOLOv9, используя Ultralytics Python API. Эта простота контрастирует с более сложной настройкой, часто необходимой для PP-YOLOE+.
from ultralytics import YOLO
# Load a pre-trained YOLOv9 model
model = YOLO("yolov9c.pt")
# Run inference on an image
results = model("path/to/image.jpg")
# Display results
results[0].show()
Идеальные варианты использования
- PP-YOLOE+: Лучше всего подходит для команд, уже глубоко интегрированных в экосистему Baidu/PaddlePaddle, или для конкретных устаревших промышленных приложений в регионах, где доминирует поддержка оборудования PaddlePaddle.
- YOLOv9: Идеально подходит для приложений, требующих высочайшего соотношения точности и эффективности, таких как автономные транспортные средства, видеоаналитика в реальном времени и периферийное развертывание, где требования к памяти и хранилищу являются ограничениями.
Заключение и рекомендации
Для большинства разработчиков и организаций YOLOv9 представляет собой превосходный выбор благодаря своей современной архитектуре (GELAN/PGI), превосходной эффективности параметров и надежной поддержке экосистемы Ultralytics. Он предлагает перспективное решение с легкодоступными предварительно обученными весами и возможностями простой экспорта.
Если вы ищете еще большую универсальность и скорость, мы также рекомендуем изучить YOLO11 — последнюю итерацию в серии YOLO. YOLO11 еще больше улучшает баланс между производительностью и задержкой, предлагая самые современные возможности для задач detect, segment и классификации в компактном пакете.
Для тех, кто заинтересован в проверенной рабочей лошадке, YOLOv8 остается очень надежным вариантом с обширными ресурсами сообщества и сторонними интеграциями.