YOLOv9 vs PP-YOLOE+#
Le paysage de la détection d'objets en temps réel continue de progresser rapidement, offrant aux ingénieurs en vision par ordinateur un large éventail de choix pour déployer des modèles hautement précis sur une infrastructure cloud et edge. Deux modèles de premier plan dans ce domaine sont YOLOv9 et PP-YOLOE+. Bien que tous deux repoussent les limites de la précision et de la vitesse, ils proviennent de lignées de recherche et d'écosystèmes logiciels différents.
Cette comparaison technique complète explore leurs architectures, leurs méthodologies d'entraînement, leurs métriques de performance et leurs applications idéales dans le monde réel. Nous explorerons également comment le plus large écosystème Ultralytics offre des avantages significatifs aux développeurs qui privilégient la facilité d'utilisation, l'efficacité mémoire et le déploiement polyvalent.
Origines des modèles et spécifications techniques#
Comprendre l'historique de ces modèles aide à contextualiser leurs décisions architecturales et leurs dépendances aux frameworks.
YOLOv9 : Résoudre le goulot d'étranglement de l'information#
Introduit au début de l'année 2024, YOLOv9 s'attaque à la perte de données qui se produit lorsque l'information circule à travers les réseaux de neurones profonds. C'est un réseau de neurones convolutifs 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 : Ultralytics YOLOv9 Documentation
PP-YOLOE+ : Faire progresser l'écosystème Paddle#
Lancé par Baidu en 2022, PP-YOLOE+ est une amélioration itérative de PP-YOLOv2. Il utilise un paradigme sans ancrage et introduit une stratégie d'attribution dynamique des étiquettes pour améliorer la convergence et la précision au sein du cadre PaddlePaddle.
- Auteurs : Auteurs de PaddlePaddle
- Organisation : Baidu
- Date : 2 avril 2022
- Arxiv: 2203.16250
- GitHub : PaddleDetection
- Documentation : PP-YOLOE+ Configuration
Comparaison architecturale#
Programmable Gradient Information vs. CSPRepResStage#
L'innovation principale de YOLOv9 est le Programmable Gradient Information (PGI). Le PGI agit comme un cadre de supervision auxiliaire, garantissant que les informations de gradient vitales sont préservées et propagées avec précision vers les couches superficielles pendant l'entraînement. Cela est associé au Generalized Efficient Layer Aggregation Network (GELAN), qui combine les forces de CSPNet et d'ELAN pour offrir une grande précision tout en réduisant considérablement le coût de calcul (FLOPs).
PP-YOLOE+ s'appuie sur une ossature (backbone) spécialisée appelée CSPRepResStage. Il exploite des techniques de re-paramétrage (similaires à celles observées dans RepVGG) pour accélérer l'inférence en fusionnant les couches de convolution lors du déploiement. De plus, il utilise l'Efficient Task-aligned head (ET-head) pour é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 et l'inférence, ce qui le rend exceptionnellement bien adapté aux appareils edge AI.
Comparaison des performances#
Lors de l'évaluation de modèles pour la production, le compromis entre mAP (mean Average Precision), vitesse d'inférence et taille du modèle est crucial.
| Modèle | taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | params (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é remarquablement plus élevée. Par exemple, YOLOv9c atteint une mAP de 53,0 % en utilisant seulement 25,3 M de paramètres, tandis que PP-YOLOE+l nécessite plus du double de paramètres (52,2 M) pour atteindre une mAP légèrement inférieure de 52,9 %. Cela réduit considérablement les besoins en mémoire pour YOLOv9.
- Vitesse d'inférence : Les modèles YOLOv9 démontrent une excellente optimisation pour les accélérateurs matériels comme TensorRT, offrant des vitesses d'inférence compétitives sur les GPU NVIDIA T4 qui sont cruciales pour l'inférence en temps réel.
Méthodologies 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 qu'il soit puissant, il oblige les utilisateurs à naviguer dans un environnement axé sur la ligne de commande et lourd en configuration. Pour les équipes profondément ancrées dans les écosystèmes PyTorch ou TensorFlow, la transition vers PaddlePaddle introduit des frictions importantes et une courbe d'apprentissage plus raide.
L'avantage Ultralytics : Flux de travail simplifiés#
En revanche, YOLOv9 fonctionne au sein de l'écosystème Ultralytics hautement peaufiné. Conçu pour les développeurs et les chercheurs, Ultralytics privilégie une facilité d'utilisation exceptionnelle. L'API Python fait abstraction complète du code passe-partout complexe.
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 flux de travail met en évidence l'efficacité d'entraînement supérieure des modèles Ultralytics. Le support natif pour l'augmentation de données, l'entraînement distribué et la journalisation automatique vers des plates-formes comme Weights & Bisases ou MLflow est fourni de série.
Bien que YOLOv9 offre des performances exceptionnelles, nous recommandons fortement d'envisager le nouveau Ultralytics YOLO26 pour les nouveaux projets. YOLO26 présente un design natif de type End-to-End NMS-Free, ce qui simplifie radicalement le déploiement. Avec la suppression du DFL (Distribution Focal Loss retirée pour un export simplifié et une meilleure compatibilité avec les appareils edge/à faible consommation), il offre jusqu'à 43 % de vitesse d'inférence CPU en plus pour l'edge computing. Propulsé par l'optimiseur MuSGD, il garantit un entraînement stable et une convergence rapide. De plus, ProgLoss + STAL fournit des fonctions de perte améliorées avec des progrès notables dans la reconnaissance de petits objets, ce qui est critique 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 se limitent rarement à de simples boîtes englobantes.
PP-YOLOE+ est principalement conçu pour la détection d'objets standard. L'adaptation de son architecture à d'autres tâches implique une ingénierie personnalisée approfondie.
Inversement, le cadre Ultralytics est une centrale multi-tâches. En utilisant une API unifiée, les développeurs peuvent passer sans effort de la détection d'objets standard à la segmentation d'instances complexe, à l'estimation de pose hautement 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 est la raison pour laquelle les équipes d'entreprise choisissent systématiquement les modèles Ultralytics comme YOLOv9, YOLO11 et YOLO26.
Cas d'utilisation et applications idéaux#
- Analyses de Smart City & Gestion du trafic : L'efficacité élevée des paramètres et la faible latence de YOLOv9 (et du YOLO26 qui lui succède) les rendent idéaux pour un déploiement sur du matériel edge contraint (comme les appareils NVIDIA Jetson) pour surveiller le flux de trafic et la sécurité urbaine.
- Systèmes d'inventaire de vente au détail : Pour détecter des configurations denses de petits articles sur des étagères, la PGI de YOLOv9 maintient efficacement les détails spatiaux fins, surpassant PP-YOLOE+ sur les tâches de détection de petits objets.
- Déploiements hérités : PP-YOLOE+ reste une option viable strictement pour les équipes expressément mandatées pour utiliser la pile logicielle Baidu/PaddlePaddle dans une infrastructure existante.
Pour les chercheurs qui explorent les architectures basées sur les Transformer, Ultralytics prend également en charge de manière native RT-DETR au sein de la même API facile à utiliser, garantissant que tu disposes toujours d'un accès au modèle optimal pour tes besoins de déploiement spécifiques.