YOLOv9 vs. YOLOX : une comparaison technique complète
Le choix de la bonne architecture de détection d'objets est une décision essentielle qui a un impact sur l'efficacité, la précision et l'évolutivité des applications de vision par ordinateur. Ce guide fournit une comparaison technique détaillée entre YOLOv9, un modèle à la pointe de la technologie introduit en 2024, et YOLOX, un détecteur sans ancrage haute performance sorti en 2021.
YOLOv9 : Surmonter la perte d’informations dans les réseaux profonds
YOLOv9 représente un progrès significatif dans la détection d'objets en temps réel, conçu pour relever le défi fondamental de la perte d'informations lorsque les données traversent des réseaux neuronaux profonds.
Auteurs : Chien-Yao Wang, Hong-Yuan Mark Liao
Organisation : Institute of Information Science, Academia Sinica, Taïwan
Date : 2024-02-21
Arxiv :arXiv:2402.13616
GitHub :WongKinYiu/yolov9
Docs :docs.ultralytics.com/models/yolov9/
Architecture et innovation
L'innovation principale de YOLOv9 réside dans deux composantes clés : l'information de gradient programmable (PGI) et le réseau d'agrégation de couches efficace généralisé (GELAN).
- Informations de gradient programmables (PGI) : Dans les réseaux profonds, les données d'entrée cruciales sont souvent perdues pendant le processus d'extraction des caractéristiques, un phénomène connu sous le nom de goulot d'étranglement de l'information. PGI fournit un signal de supervision auxiliaire qui garantit la génération de gradients fiables, permettant au modèle d'apprendre des caractéristiques plus efficaces sans augmenter le coût d'inférence.
- GELAN : Cette conception architecturale optimise l’utilisation des paramètres et l’efficacité du calcul. En généralisant le concept des réseaux d’agrégation de couches efficaces (ELAN), GELAN permet un empilement flexible des blocs de calcul, ce qui donne un modèle à la fois léger et rapide.
Ces innovations permettent à YOLOv9 d'atteindre des performances de premier ordre sur l'ensemble de données COCO, surpassant les itérations précédentes en termes de précision et d'efficacité des paramètres.
YOLOX : La norme sans ancrage
YOLOX a été introduit pour combler le fossé entre la recherche universitaire et l’application industrielle, popularisant ainsi l’approche sans ancrage dans la série YOLO.
Auteurs : Zheng Ge, Songtao Liu, Feng Wang, Zeming Li et Jian Sun
Organisation : Megvii
Date : 2021-07-18
Arxiv :arXiv:2107.08430
GitHub :Megvii-BaseDetection/YOLOX
Docs :yolox.readthedocs.io
Principales caractéristiques architecturales
YOLOX s'éloigne des versions antérieures de YOLO en supprimant les boîtes d'ancrage et en utilisant une structure de tête découplée.
- Conception sans ancres : Les détecteurs traditionnels s'appuient sur des boîtes d'ancrage prédéfinies, qui nécessitent un réglage et un clustering heuristiques. YOLOX traite la détection d'objets comme un problème de prédiction de points, simplifiant la conception et améliorant la généralisation à travers diverses formes d'objets.
- Tête découplée : Les tâches de classification et de régression sont traitées dans des branches (têtes) séparées. Cette séparation permet au modèle d'optimiser chaque tâche indépendamment, ce qui conduit à une convergence plus rapide et à une meilleure précision.
- SimOTA : Une stratégie avancée d'attribution de label qui attribue dynamiquement des échantillons positifs aux objets de vérité terrain, améliorant encore les performances.
Analyse des performances : métriques et benchmarks
Lors de l'analyse des performances, YOLOv9 démontre un avantage certain, cohérent avec son architecture plus récente. En tirant parti de PGI et de GELAN, YOLOv9 atteint une Précision Moyenne Moyenne (mAP) plus élevée tout en maintenant ou en réduisant la charge de calcul (FLOPs) par rapport à YOLOX.
Le tableau ci-dessous met en évidence les différences de performance. Notamment, YOLOv9-C atteint un mAP nettement supérieur (53,0 %) à celui de YOLOX-L (49,7 %) avec moins de la moitié du nombre de paramètres (25,3M contre 54,2M). Cette efficacité fait de YOLOv9 un choix supérieur pour les applications limitées par les ressources matérielles mais exigeant une grande précision.
| 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 |
| YOLOXnano | 416 | 25.8 | - | - | 0.91 | 1.08 |
| YOLOXtiny | 416 | 32.8 | - | - | 5.06 | 6.45 |
| YOLOXs | 640 | 40.5 | - | 2.56 | 9.0 | 26.8 |
| YOLOXm | 640 | 46.9 | - | 5.43 | 25.3 | 73.8 |
| YOLOXl | 640 | 49.7 | - | 9.04 | 54.2 | 155.6 |
| YOLOXx | 640 | 51.1 | - | 16.1 | 99.1 | 281.9 |
Vitesse et efficacité
Bien que YOLOX ait introduit des vitesses impressionnantes en 2021, YOLOv9 repousse encore les limites. Le modèle YOLOv9-T (Tiny) offre un équilibre exceptionnel, fournissant 38,3 % de mAP avec seulement 2,0 M de paramètres, ce qui le rend très approprié pour les applications mobiles et embarquées. En revanche, YOLOX-Nano est plus petit mais sacrifie une précision significative (25,8 % de mAP).
Efficacité de l'entraînement
YOLOv9 bénéficie de méthodes d'entraînement modernes et de l'outil d'entraînement Ultralytics optimisé, ce qui se traduit souvent par une convergence plus rapide et une utilisation réduite de la mémoire pendant l'entraînement par rapport aux architectures plus anciennes.
Cas d'utilisation idéaux
Le choix entre ces modèles dépend des exigences spécifiques de votre projet.
Quand choisir YOLOv9
YOLOv9 est le choix recommandé pour la plupart des applications modernes de vision par ordinateur en raison de son rapport précision/efficacité supérieur.
- IA en temps réel à la périphérie : Déploiement sur des appareils tels que NVIDIA Jetson où les FLOPs sont importants. L’architecture légère de YOLOv9 maximise le débit.
- Inspection de haute précision : Contrôle qualité industriel où la détection de petits défauts est essentielle. Le mAP élevé de YOLOv9-E garantit la capture des moindres détails.
- Systèmes autonomes : La robotique et les drones nécessitent une faible latence. La structure de graphe optimisée de YOLOv9 garantit une inférence rapide sans compromettre les capacités de détection.
Quand envisager YOLOX
YOLOX reste un concurrent solide pour les flux de travail hérités spécifiques ou les comparaisons de recherche.
- Recherche académique : Sa tête découplée et sa conception sans ancrage en font une base de référence classique pour l’étude des principes fondamentaux de la détection d’objets.
- Déploiements existants : Si une infrastructure existante est fortement optimisée pour l'architecture YOLOX spécifique (par exemple, des plug-ins TensorRT personnalisés conçus spécifiquement pour les heads YOLOX), le maintien du modèle existant pourrait être rentable à court terme.
L'avantage Ultralytics
L'adoption de YOLOv9 via l'écosystème Ultralytics offre des avantages distincts par rapport aux implémentations autonomes. Le framework Ultralytics est conçu pour rationaliser l'ensemble du cycle de vie des opérations d'apprentissage automatique (MLOps).
- Facilité d'utilisation : L'API Python Ultralytics vous permet de charger, d'entraîner et de déployer des modèles en quelques lignes de code.
- Écosystème bien maintenu : Des mises à jour régulières assurent la compatibilité avec les dernières versions de PyTorch, ONNX et CUDA.
- Polyvalence : Bien que YOLOX soit principalement un détecteur d’objets, le framework Ultralytics prend en charge un large éventail de tâches, notamment l’estimation de pose, la segmentation et la classification, ce qui vous permet de changer facilement d’architecture ou de tâche au sein du même code.
- Efficacité de la mémoire : Les modèles Ultralytics sont optimisés pour l’utilisation de la mémoire, empêchant les erreurs de mémoire insuffisante (OOM) qui sont courantes lors de l’entraînement de modèles complexes basés sur transformateur ou de détecteurs hérités non optimisés.
Exemple de code : Exécution de YOLOv9
L'exécution de l'inférence avec YOLOv9 est simple grâce au package Ultralytics.
from ultralytics import YOLO
# Load a pre-trained YOLOv9 compact model
model = YOLO("yolov9c.pt")
# Run inference on a local image
results = model("path/to/image.jpg")
# Display the results
results[0].show()
Flexibilité d'exportation
Les modèles YOLOv9 entraînés avec Ultralytics peuvent être facilement exportés vers des formats tels que TensorRT, OpenVINO et CoreML pour une flexibilité de déploiement maximale.
Conclusion et recommandations
Bien que YOLOX ait joué un rôle essentiel dans l'avancement de la détection sans ancrage, YOLOv9 est le choix supérieur pour le développement actuel. Son architecture innovante PGI et GELAN offre une plus grande précision avec moins de paramètres, résolvant le problème de goulot d'étranglement de l'information qui limitait les réseaux profonds précédents.
Pour les développeurs à la recherche des toutes dernières performances et fonctionnalités, nous recommandons également d'explorer YOLO11, qui affine davantage ces concepts pour une vitesse et une polyvalence encore plus grandes dans de multiples tâches de vision. Cependant, pour une comparaison directe avec YOLOX, YOLOv9 offre une voie de mise à niveau intéressante qui réduit la surcharge de calcul tout en améliorant la fiabilité de la détection.
Explorer d'autres modèles
Développez vos connaissances en comparant d'autres modèles de premier plan dans l'écosystème Ultralytics :