Passer au contenu

YOLOv9 vs. YOLOX : une comparaison technique complète

Le choix de la bonne architecture de détection d'objets est une décision critique 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 YOLOv9un modèle de pointe présenté en 2024, et YOLOX, un détecteur sans ancrage très performant présenté en 2021.

YOLOv9: Surmonter la perte d'information dans les réseaux profonds

YOLOv9 représente une avancée significative dans la détection d'objets en temps réel, conçue pour relever le défi fondamental de la perte d'informations lorsque les données passent par des réseaux neuronaux profonds.

Auteurs : Chien-Yao Wang, Hong-Yuan Mark Liao
Organisation : Institute of Information Science, Academia Sinica, Taiwan
Date : 2024-02-21
Arxiv:arXiv:2402.13616
GitHub:WongKinYiu/yolov9
Docs:docs.ultralytics.com/models/yolov9/

Architecture et innovation

Le cœur de l'innovation de YOLOv9 réside dans deux éléments clés : L'information de gradient programmable (PGI) et le réseau d'agrégation de couches efficace généralisé (GELAN).

  • Information de gradient programmable (PGI) : Dans les réseaux profonds, des données d'entrée cruciales sont souvent perdues au cours du processus d'extraction des caractéristiques, un phénomène connu sous le nom de goulot d'étranglement de l'information. Le PGI fournit un signal de supervision auxiliaire qui garantit une génération de gradient fiable, permettant au modèle d'apprendre des caractéristiques plus efficaces sans augmenter le coût de l'inférence.
  • GELAN : Cette conception architecturale optimise l'utilisation des paramètres et l'efficacité des calculs. 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 plan sur l'ensemble de donnéesCOCO , surpassant les itérations précédentes en termes de précision et d'efficacité des paramètres.

En savoir plus sur YOLOv9

YOLOX : La norme sans ancrage

YOLOX a été introduit pour combler le fossé entre la recherche universitaire et l'application industrielle, en popularisant 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 diffère des versions précédentes de YOLO en supprimant les boîtes d'ancrage et en employant une structure de tête découplée.

  • Conception sans ancrage : Les détecteurs traditionnels s'appuient sur des boîtes d'ancrage prédéfinies, qui nécessitent un réglage heuristique et un regroupement. YOLOX traite la détection d'objets comme un problème de prédiction de points, ce qui simplifie la conception et améliore la généralisation à 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) distinctes. Cette séparation permet au modèle d'optimiser chaque tâche de manière indépendante, ce qui se traduit par une convergence plus rapide et une meilleure précision.
  • SimOTA : une stratégie avancée d'attribution d'étiquettes qui affecte dynamiquement les échantillons positifs aux objets de la vérité de terrain, ce qui améliore encore les performances.

Analyse des performances : Métriques et critères de référence

Lors de l'analyse des performances, YOLOv9 présente un avantage certain, compatible avec une architecture plus récente. En tirant parti de PGI et de GELAN, YOLOv9 atteint une précision moyenne plus élevéemAP 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 atteint un mAP significativement plus élevé (53,0%) que 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èleTaille
(pixels)
mAPval
50-95
Vitesse
CPU ONNX
(ms)
Vitesse
T4 TensorRT10
(ms)
paramètres
(M)
FLOPs
(B)
YOLOv9t64038.3-2.32.07.7
YOLOv9s64046.8-3.547.126.4
YOLOv9m64051.4-6.4320.076.3
YOLOv9c64053.0-7.1625.3102.1
YOLOv9e64055.6-16.7757.3189.0
YOLOXnano41625.8--0.911.08
YOLOXtiny41632.8--5.066.45
YOLOXs64040.5-2.569.026.8
YOLOXm64046.9-5.4325.373.8
YOLOXl64049.7-9.0454.2155.6
YOLOXx64051.1-16.199.1281.9

Vitesse et efficacité

Alors que YOLOX a introduit des vitesses impressionnantes en 2021, YOLOv9 repousse encore les limites. Le modèle YOLOv9 (Tiny) offre un équilibre exceptionnel, délivrant 38,3 % de mAP avec seulement 2,0 M de paramètres, ce qui le rend tout à fait adapté aux applications mobiles et embarquées. En revanche, YOLOX-Nano est plus petit mais sacrifie une précision significative (25,8 % mAP).

Efficacité de la formation

YOLOv9 bénéficie de recettes d'entraînement modernes et de l'entraîneur Ultralytics optimisé, ce qui se traduit souvent par une convergence plus rapide et une utilisation plus faible 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.

  • Edge AI en temps réel : déploiement sur des appareils tels que NVIDIA Jetson où les FLOP sont importants. L'architecture légère de YOLOv9 maximise le débit.
  • Inspection de haute précision : Contrôle de qualité industriel où la détection de petits défauts est essentielle. La haute mAP de YOLOv9 permet de capturer les moindres détails.
  • Systèmes autonomes : La robotique et les drones nécessitent une faible latence. La structure optimisée du graphe de YOLOv9 garantit une inférence rapide sans compromettre les capacités de détection.

Quand envisager YOLOX

YOLOX reste un concurrent de poids pour les flux de travail spécifiques ou les comparaisons de recherche.

  • Recherche universitaire : Sa tête découplée et sa conception sans ancrage en font une référence classique pour l'étude des principes fondamentaux de la détection d'objets.
  • Déploiements anciens : Si une infrastructure existante est fortement optimisée pour l'architecture spécifique de YOLOX (par exemple, des plugins TensorRT personnalisés construits spécifiquement pour les têtes YOLOX), le maintien du modèle existant peut être rentable à court terme.

L'avantage Ultralytics

L'adoption de YOLOv9 par le biais de l'écosystème Ultralytics offre des avantages distincts par rapport aux implémentations autonomes. Le cadre Ultralytics est conçu pour rationaliser l'ensemble du cycle de vie des opérations d'apprentissage automatique (MLOps).

  • Facilité d'utilisation : L'APIPython d'Ultralytics vous permet de charger, d'entraîner et de déployer des modèles en quelques lignes de code seulement.
  • Un écosystème bien entretenu : Des mises à jour régulières garantissent la compatibilité avec les dernières versions de PyTorch, ONNX et CUDA.
  • Polyvalence : Alors que YOLOX est avant tout un détecteur d'objets, le cadre Ultralytics prend en charge un large éventail de tâches, notamment l'estimation de la pose, la segmentation et la classification, ce qui vous permet de changer facilement d'architecture ou de tâche au sein de la même base de code.
  • Efficacité de la mémoire : Les modèles Ultralytics sont optimisés pour l'utilisation de la mémoire, ce qui permet d'éviter les erreurs de sortie de mémoire (OOM), fréquentes lors de l'apprentissage de modèles complexes basés sur Transformer ou de détecteurs anciens non optimisés.

Exemple de code : Exécution de YOLOv9

L'exécution de l'inférence avec YOLOv9 est simple en utilisant le 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é des exportations

Les modèles YOLOv9 entraînés avec Ultralytics peuvent être facilement exportés vers des formats tels que TensorRT, OpenVINOet CoreML pour une flexibilité de déploiement maximale.

Conclusion et recommandations

YOLOX a joué un rôle essentiel dans l'avancement de la détection sans ancrage, YOLOv9 s'est imposé comme le meilleur choix pour le développement actuel. Son architecture innovante PGI et GELAN offre une plus grande précision avec moins de paramètres, résolvant ainsi le problème du 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 YOLO11qui affine encore 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 un chemin de mise à niveau convaincant qui réduit la charge de calcul tout en augmentant 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 :


Commentaires