Passer au contenu

YOLOX vs. YOLOv9 : Une comparaison technique

Choisir la bonne architecture pour la détection d'objets est une décision essentielle qui a un impact sur la vitesse, la précision et la faisabilité du déploiement des projets de vision par ordinateur. Cette analyse compare YOLOX, un modèle sans ancres essentiel sorti en 2021, et YOLOv9, une architecture de pointe introduite en 2024 qui exploite les informations de gradient programmables (PGI).

Bien que YOLOX ait changé le paradigme vers la détection sans ancrage, YOLOv9 introduit de nouveaux mécanismes pour conserver l'information dans les réseaux profonds, offrant des métriques de performance supérieures. Ce guide décompose leurs architectures, leurs benchmarks et leurs cas d'utilisation idéaux pour vous aider à sélectionner le meilleur modèle pour vos besoins.

YOLOX : Le pionnier sans ancrage

YOLOX a été publié pour combler le fossé entre la communauté de la recherche et les applications industrielles en simplifiant la tête de détection et en supprimant la dépendance aux boîtes d’ancrage prédéfinies.

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 :Documentation YOLOX

Points clés de l'architecture

YOLOX a introduit une architecture de tête découplée, séparant les tâches de classification et de régression. Cette séparation permet au modèle de converger plus rapidement et d'obtenir une meilleure précision. Il utilise également un mécanisme sans ancrage, qui élimine le besoin d'une analyse de regroupement pour déterminer les tailles optimales des boîtes d'ancrage, ce qui rend le modèle plus robuste aux formes d'objets variées. De plus, YOLOX utilise SimOTA pour l'attribution d'étiquettes, traitant le processus comme un problème de transport optimal pour améliorer la stabilité de l'entraînement.

Points forts et faiblesses

  • Points forts : La conception sans ancrage simplifie le processus de réglage des hyperparamètres. La tête découplée offre généralement une plus grande précision pour les tâches de localisation par rapport aux têtes couplées de cette époque.
  • Points faibles : En tant que modèle de 2021, il ne possède pas les optimisations modernes que l’on trouve dans les architectures plus récentes. Il peut nécessiter davantage de données d’entraînement pour atteindre des performances optimales par rapport aux modèles utilisant des techniques avancées d’augmentation des données et d’agrégation des couches.

YOLOv9 : Informations de gradient programmables

YOLOv9 représente un progrès significatif, s'attaquant au problème du "goulot d'étranglement de l'information" inhérent aux réseaux neuronaux profonds.

Auteurs : Chien-Yao Wang, Hong-Yuan Mark Liao
Organisation :Institute of Information Science, Academia Sinica
Date : 2024-02-21
Arxiv :arXiv:2402.13616
GitHub :WongKinYiu/yolov9
Docs :Documentation Ultralytics YOLOv9

Points clés de l'architecture

YOLOv9 introduit l'information de gradient programmable (PGI) et le réseau d'agrégation de couches efficace généralisé (GELAN). Le PGI empêche la perte d'informations d'entrée cruciales lorsque les données traversent des couches profondes, assurant ainsi une génération de gradient fiable pour les mises à jour du modèle. GELAN optimise l'utilisation des paramètres, permettant au modèle d'être léger mais précis. Ces innovations permettent à YOLOv9 de surpasser considérablement ses prédécesseurs en termes d'efficacité et de précision moyenne (mAP).

Points forts et faiblesses

  • Points forts : Ratio précision/paramètre exceptionnel, le rendant très efficace pour les applications en temps réel. L'architecture préserve mieux le flux d'informations que les itérations précédentes, ce qui conduit à une meilleure détection des petits objets.
  • Points faibles : Étant donné qu’il s’agit d’une architecture plus récente, il peut nécessiter des pilotes CUDA et une prise en charge matérielle mis à jour par rapport aux modèles existants.

En savoir plus sur YOLOv9

Comparaison des performances

Le tableau suivant compare les performances de YOLOX et YOLOv9 sur le jeu de données COCO. YOLOv9 démontre systématiquement des scores mAP plus élevés avec moins de paramètres, ce qui souligne l'efficacité de l'architecture GELAN.

ModèleTaille
(pixels)
mAPval
50-95
Vitesse
CPU ONNX
(ms)
Vitesse
T4 TensorRT10
(ms)
paramètres
(M)
FLOPs
(B)
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
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

Analyse : YOLOv9 offre une amélioration substantielle de la densité de performance. Par exemple, YOLOv9c atteint 53,0 % de mAP avec seulement 25,3 M de paramètres, tandis que YOLOX-L nécessite 54,2 M de paramètres pour atteindre un score inférieur de 49,7 % de mAP. Cela indique que YOLOv9 est environ deux fois plus efficace en termes d’utilisation des paramètres pour ce niveau de précision.

L'efficacité compte

Lors du déploiement sur des appareils edge, l'examen des FLOPs et des paramètres est tout aussi important que le mAP. L'architecture GELAN de YOLOv9 réduit considérablement la surcharge de calcul, ce qui permet aux appareils de fonctionner plus froidement et d'allonger la durée de vie de la batterie dans les déploiements mobiles.

L'avantage Ultralytics

Bien que YOLOX soit un référentiel autonome robuste, l'utilisation de YOLOv9 au sein de l'écosystème Ultralytics offre des avantages distincts pour les développeurs et les chercheurs.

Facilité d'utilisation et intégration

Le framework Ultralytics unifie l'interaction avec les modèles. Vous pouvez entraîner, valider et déployer YOLOv9 à l'aide d'une API python simple et intuitive. Ceci contraste avec la base de code YOLOX, qui nécessite souvent une configuration plus manuelle des variables d'environnement et des chemins d'accès aux ensembles de données.

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")

# Train the model on a custom dataset with a single line of code
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Écosystème bien entretenu

Les modèles Ultralytics bénéficient de mises à jour continues, de corrections de bogues et du soutien de la communauté. L'intégration avec Ultralytics HUB permet aux équipes de gérer les ensembles de données, de track expériences et de déployer les modèles dans différents formatsONNX, TensorRT, CoreML) sans avoir à écrire des scripts d'exportation complexes.

Équilibre des performances et efficacité de la mémoire

Les modèles Ultralytics YOLO sont conçus pour un équilibre pratique entre vitesse et précision. De plus, ils présentent généralement des besoins en mémoire inférieurs pendant l'entraînement par rapport aux architectures plus anciennes ou aux modèles lourds basés sur des transformeurs. Cette efficacité réduit les coûts de calcul en nuage et rend l'entraînement accessible sur des GPU grand public.

Polyvalence

Bien que YOLOX soit principalement un détecteur d'objets, le framework Ultralytics étend les capacités de ses modèles pris en charge. Les utilisateurs peuvent facilement basculer entre des tâches telles que la segmentation d'instance, l'estimation de pose et la détection de boîtes englobantes orientées (obb) en utilisant une syntaxe et des flux de travail similaires, une polyvalence dont les référentiels de recherche autonomes manquent souvent.

Cas d'utilisation idéaux

Quand choisir YOLOv9

  • Systèmes autonomes : La haute précision de YOLOv9-E est idéale pour les véhicules autonomes où la détection de petits obstacles à distance est essentielle à la sécurité.
  • Analyse en temps réel : Pour la vente au détail ou la gestion du trafic, YOLOv9c offre le juste milieu entre des fréquences d’images élevées et une détection précise.
  • IA en périphérie : L’efficacité architecturale de GELAN rend YOLOv9t et YOLOv9s parfaits pour un déploiement sur des appareils tels que NVIDIA Jetson ou Raspberry Pi.

Quand choisir YOLOX

  • Intégration existante : Si un pipeline de production existant est déjà fortement conçu autour du format de tête sans ancrage YOLOX spécifique.
  • Recherche académique : Les chercheurs qui étudient spécifiquement le comportement des têtes découplées dans les premiers détecteurs sans ancrage peuvent trouver que YOLOX est une base de référence précieuse pour la comparaison.

Conclusion

Les deux architectures ont gagné leur place dans l'histoire de la vision par ordinateur. YOLOX a remis en question avec succès le statu quo basé sur l'ancrage en 2021. Cependant, YOLOv9 représente la norme moderne, intégrant des années de progrès dans l'optimisation du flux de gradients et l'agrégation des couches.

Pour la plupart des nouveaux développements, YOLOv9 est le choix recommandé. Ses performances supérieures par paramètre, combinées à la facilité d'utilisation, à l'efficacité de l'entraînement et aux options de déploiement robustes fournies par l'écosystème Ultralytics, garantissent un chemin plus rapide du concept à la production.

Explorez d'autres options modernes de l'écosystème, telles que YOLO11 et YOLOv8, afin de trouver la solution idéale pour les contraintes spécifiques de votre application.


Commentaires