Comparaison entre YOLOv9 et PP-YOLOE+#
Le paysage de la détection d’objets en temps réel continue d’évoluer rapidement, offrant aux ingénieurs en vision par ordinateur un large éventail de choix pour déployer des modèles très précis sur des infrastructures en périphérie et dans le cloud. Deux modèles majeurs dans ce domaine sont YOLOv9 et PP-YOLOE+. Bien qu’ils repoussent tous deux les limites de la précision et de la vitesse, ils sont issus de lignées de recherche et d’écosystèmes logiciels différents.
Cette comparaison technique complète examine leurs architectures, leurs méthodes d’entraînement, leurs indicateurs de performance et leurs applications idéales dans le monde réel. Nous verrons également comment le vaste écosystème Ultralytics offre des avantages considérables aux développeurs qui privilégient la simplicité d’utilisation, l’efficacité mémoire et la polyvalence du déploiement.
Origines des modèles et spécifications techniques#
Comprendre l’origine de ces modèles aide à contextualiser leurs choix architecturaux et leurs dépendances aux frameworks.
YOLOv9 : résoudre le goulot d’étranglement de l’information#
Présenté au début de 2024, YOLOv9 s’attaque à la perte de données qui se produit lorsque les informations circulent dans des réseaux neuronaux profonds. Il s’agit d’un réseau neuronal convolutif hautement optimisé, conçu pour maximiser l’efficacité des paramètres.
- Auteurs : Chien-Yao Wang, Hong-Yuan Mark Liao
- Organisation : Institute of Information Science, Academia Sinica, Taïwan
- Date : 21 février 2024
- Arxiv : 2402.13616
- GitHub : WongKinYiu/yolov9
- Documentation : Documentation Ultralytics YOLOv9
PP-YOLOE+ : faire progresser l’écosystème Paddle#
Publié par Baidu en 2022, PP-YOLOE+ est une amélioration itérative de PP-YOLOv2. Il utilise une approche sans ancres et introduit une stratégie dynamique d’attribution des labels afin d’améliorer la convergence et la précision au sein du framework PaddlePaddle.
- Auteurs : auteurs de PaddlePaddle
- Organisation : Baidu
- Date : 2 avril 2022
- Arxiv : 2203.16250
- GitHub : PaddleDetection
- Documentation : Configuration de PP-YOLOE+
Comparaison des architectures#
Informations de gradient programmables vs. CSPRepResStage#
L’innovation centrale de YOLOv9 est constituée par les informations de gradient programmables (PGI). Les PGI agissent comme un framework de supervision auxiliaire, garantissant que les informations essentielles du gradient sont conservées et propagées avec précision vers les couches superficielles pendant l’entraînement. Cette approche est associée au réseau généralisé d’agrégation efficace des couches (GELAN), qui combine les atouts de CSPNet et d’ELAN afin d’offrir une grande précision tout en réduisant considérablement le coût de calcul (FLOPs).
PP-YOLOE+ repose sur un backbone spécialisé appelé CSPRepResStage. Il exploite des techniques de reparamétrisation (similaires à celles de RepVGG) pour accélérer l’inférence en fusionnant les couches convolutives lors du déploiement. Il utilise en outre la tête Efficient Task-aligned (ET-head) afin d’équilibrer les tâches de classification et de régression.
Bien que PP-YOLOE+ soit robuste, l’architecture GELAN de YOLOv9 nécessite généralement une empreinte mémoire plus faible pendant l’entraînement comme pendant l’inférence, ce qui la rend particulièrement adaptée aux appareils d’IA en périphérie.
Comparaison des performances#
Lors de l’évaluation de modèles destinés à la production, il est essentiel de trouver le bon compromis entre mAP (précision moyenne), vitesse d’inférence et taille du modèle.
| Modèle | taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| 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 |
Analyse#
- Efficacité des paramètres : YOLOv9 atteint une efficacité nettement supérieure. Par exemple, YOLOv9c atteint une mAP de 53,0 % avec seulement 25,3 millions de paramètres, tandis que PP-YOLOE+l nécessite plus du double de paramètres (52,2 millions) pour obtenir une mAP légèrement inférieure de 52,9 %. Cela réduit considérablement les besoins en mémoire de YOLOv9.
- Vitesse d’inférence : les modèles YOLOv9 sont très bien optimisés pour les accélérateurs matériels tels que TensorRT, offrant des vitesses d’inférence compétitives sur les GPU NVIDIA T4, essentielles pour l’inférence en temps réel.
Méthodes d’entraînement et écosystème#
Le choix entre ces modèles dépend souvent de l’écosystème logiciel.
PP-YOLOE+ et PaddlePaddle#
PP-YOLOE+ est étroitement lié à la suite PaddleDetection. Bien que puissante, celle-ci oblige les utilisateurs à évoluer dans un environnement fortement axé sur la configuration et piloté par la ligne de commande. Pour les équipes profondément intégrées aux écosystèmes PyTorch ou TensorFlow, la transition vers PaddlePaddle entraîne d’importantes frictions et une courbe d’apprentissage plus raide.
L’avantage d’Ultralytics : des workflows simplifiés#
À l’inverse, YOLOv9 fonctionne au sein de l’écosystème Ultralytics, particulièrement abouti. Conçu pour les développeurs et les chercheurs, Ultralytics accorde la priorité à une simplicité d’utilisation exceptionnelle. L’API Python masque entièrement la complexité du code passe-partout.
from ultralytics import YOLO
# Load a pre-trained YOLOv9 model
model = YOLO("yolov9c.pt")
# Train on a custom dataset effortlessly
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=0)
# Run inference and visualize results
results = model("https://ultralytics.com/images/bus.jpg")
# Export to ONNX for production deployment
model.export(format="onnx")Ce workflow met en évidence l’efficacité d’entraînement supérieure des modèles Ultralytics. La prise en charge native de l’augmentation des données, de l’entraînement distribué et de la journalisation automatique vers des plateformes telles que Weights & Biases ou MLflow est incluse par défaut.
Bien que YOLOv9 offre des performances exceptionnelles, nous te recommandons vivement d’envisager le Ultralytics YOLO26 récemment publié pour tes nouveaux projets. YOLO26 intègre une conception native de bout en bout, sans NMS, qui simplifie considérablement le déploiement. Grâce à la suppression de DFL (la fonction de perte focale de distribution est supprimée pour simplifier l’exportation et améliorer la compatibilité avec les appareils en périphérie et basse consommation), il offre jusqu’à 43 % d’inférence plus rapide sur CPU pour l’informatique en périphérie. Propulsé par l’optimiseur MuSGD, il garantit un entraînement stable et une convergence rapide. De plus, ProgLoss + STAL fournit de meilleures fonctions de perte, avec des améliorations notables de la reconnaissance des petits objets, essentielle pour l’IoT, la robotique et l’imagerie aérienne.
Polyvalence et prise en charge des tâches#
Les projets modernes de vision par ordinateur ne se limitent que rarement aux simples boîtes englobantes.
PP-YOLOE+ est principalement conçu pour la détection d’objets standard. Adapter son architecture à d’autres tâches nécessite un important travail d’ingénierie personnalisé.
À l’inverse, le framework Ultralytics est une véritable plateforme multitâche. Grâce à une API unifiée, les développeurs peuvent passer facilement de la détection d’objets standard à la segmentation d’instances complexe, à l’estimation de pose très précise, à la détection de boîtes englobantes orientées (OBB) pour l’imagerie aérienne et à la classification d’images. Cette polyvalence inégalée explique pourquoi les équipes d’entreprise choisissent régulièrement des modèles Ultralytics tels que YOLOv9, YOLO11 et YOLO26.
Cas d’utilisation et applications idéaux#
- Analyse des villes intelligentes et gestion du trafic : la grande efficacité des paramètres et la faible latence de YOLOv9 (ainsi que de YOLO26, son successeur) les rendent idéaux pour un déploiement sur du matériel en périphérie aux ressources limitées (comme les appareils NVIDIA Jetson), afin de surveiller le flux de circulation et la sécurité urbaine.
- Systèmes de gestion des stocks dans le commerce de détail : pour détecter des configurations denses de petits articles sur des étagères, les PGI de YOLOv9 préservent efficacement les détails spatiaux fins et surpassent PP-YOLOE+ dans les tâches de détection de petits objets.
- Déploiements existants : PP-YOLOE+ reste une option viable uniquement pour les équipes auxquelles il est explicitement imposé d’utiliser la pile logicielle Baidu/PaddlePaddle dans une infrastructure existante.
Pour les chercheurs qui étudient les architectures fondées sur les Transformer, Ultralytics prend également en charge nativement RT-DETR au sein de la même API facile à utiliser, afin que tu aies toujours accès au modèle optimal pour tes besoins spécifiques de déploiement.