YOLOX vs YOLOv9: évolution de la détection d'objets haute performance
Dans le domaine en pleine évolution de la vision par ordinateur, il est essentiel de choisir le bon modèle de détection d'objets afin d'équilibrer précision, vitesse et complexité de déploiement. Cette comparaison explore deux étapes importantes dans la YOLO : YOLOX, un détecteur robuste sans ancrage lancé en 2021, et YOLOv9, une architecture de 2024 introduisant les informations de gradient programmables (PGI) pour une conservation supérieure des caractéristiques.
YOLOX : Le pionnier sans ancrage
YOLOX a représenté un changement majeur dans la YOLO en s'éloignant des mécanismes basés sur des ancrages pour adopter une conception sans ancrage. Cette simplification a éliminé le besoin de régler manuellement la boîte d'ancrage, rendant le modèle plus adaptable à divers ensembles de données et rapports d'aspect. En intégrant une tête découplée et la stratégie avancée d'attribution d'étiquettes SimOTA, YOLOX a obtenu des résultats de pointe dès sa sortie, comblant ainsi le fossé entre la recherche universitaire et l'application industrielle.
- Auteurs : Zheng Ge, Songtao Liu, Feng Wang, Zeming Li et Jian Sun
- Organisation :Megvii
- Date : 2021-07-18
- Arxiv:YOLOX : Dépasser la série YOLO en 2021
- GitHub :Megvii-BaseDetection/YOLOX
Principales caractéristiques architecturales
- Mécanisme sans ancrage : élimine la complexité du regroupement des boîtes d'ancrage, réduisant ainsi le nombre de paramètres de conception et améliorant la généralisation.
- Tête découplée : sépare les tâches de classification et de régression en différentes branches, résolvant ainsi le conflit entre ces deux objectifs et améliorant la vitesse de convergence.
- Attribution d'étiquettes SimOTA : stratégie d'attribution d'étiquettes dynamique qui considère le processus d'apprentissage comme un problème de transport optimal, attribuant des vérités terrain aux prédictions de manière plus efficace que IoU statiques.
YOLOv9: gradients programmables pour l'apprentissage profond
YOLOv9 s'attaque au problème fondamental de la perte d'informations dans les réseaux neuronaux profonds. À mesure que les réseaux deviennent plus profonds, des informations essentielles peuvent disparaître lors de la propagation avant. YOLOv9 les informations de gradient programmables (PGI) et le réseau d'agrégation de couches généralisé et efficace (GELAN) afin de préserver les données critiques à travers les couches du réseau. Cela se traduit par des améliorations significatives de la précision de détection, en particulier pour les modèles légers, tout en conservant une efficacité élevée.
- Auteurs : Chien-Yao Wang et Hong-Yuan Mark Liao
- Organisation : Institute of Information Science, Academia Sinica
- Date : 2024-02-21
- Arxiv:YOLOv9 : Apprendre ce que vous voulez apprendre en utilisant l’information de gradient programmable
- GitHub :WongKinYiu/yolov9
- Docs :Documentation Ultralytics YOLOv9
Principales caractéristiques architecturales
- Architecture GELAN : combine les principes de conception CSPNet et ELAN afin d'optimiser l'efficacité des paramètres et la vitesse de calcul, permettant ainsi au modèle de fonctionner efficacement sur divers matériels.
- Informations sur les gradients programmables (PGI) : un cadre de supervision auxiliaire qui génère des gradients fiables pour mettre à jour les poids du réseau, garantissant ainsi que la branche principale apprend toutes les caractéristiques, même dans des architectures très profondes.
- Fonctions réversibles : atténuent le problème du goulot d'étranglement de l'information en garantissant que les données peuvent être reconstruites efficacement, tout en préservant les informations sémantiques à travers les couches.
Comparaison des performances
Lors de l'évaluation de ces modèles, YOLOv9 surpasse généralement YOLOX en termes de rapport précision/paramètres. Alors que YOLOX-x atteint un mAP respectable de 51,1 %, le nouveau YOLOv9c le surpasse avec mAP 53,0 % tout en utilisant beaucoup moins de paramètres (25,3 millions contre 99,1 millions) et moins de puissance de calcul. Cette efficacité fait de YOLOv9 candidat plus solide pour les applications en temps réel où les ressources matérielles sont limitées mais où une grande précision est requise.
Cependant, YOLOX reste très pertinent pour les anciens appareils périphériques. Sa conception plus simple, sans ancrage, peut parfois être plus facile à optimiser pour des chipsets mobiles spécifiques ou des architectures NPU qui ne prennent pas entièrement en charge les agrégations de couches complexes que l'on trouve dans les modèles plus récents comme GELAN.
Mesures détaillées
| Modèle | Taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| 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 |
Point fort en matière d'efficacité
Notez que YOLOv9c atteint une précision supérieure (53,0 % mAP) à celle du plus grand YOLOX-x (51,1 % mAP) tout en utilisant environ 75 % de paramètres en moins. Cela démontre les progrès rapides réalisés en matière d'efficacité architecturale au cours des trois années qui séparent ces deux versions.
Entraînement et facilité d'utilisation avec Ultralytics
Un facteur déterminant pour les développeurs est l'écosystème qui entoure le modèle. YOLOv9 est entièrement intégré à Ultralytics , ce qui lui confère un avantage significatif en termes de facilité d'utilisation.
L'avantage Ultralytics
L'utilisation dePython Ultralytics vous permet d'accéder à des modèles de pointe avec une syntaxe unifiée. Vous n'avez pas besoin de cloner des référentiels complexes ou de compiler manuellement des opérateurs C++, ce qui constitue souvent un obstacle dans les implémentations de recherche originales telles que YOLOX.
from ultralytics import YOLO
# Load a model (YOLOv9c or the new YOLO26s)
model = YOLO("yolov9c.pt")
# Train on custom data in one line
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Validate performance
metrics = model.val()
Cette intégration offre :
- Flux de travail rationalisé : passez facilement des tâches de détection à celles de segmentation et d'estimation de la pose.
- Efficacité mémoire : les pipelines Ultralytics sont optimisés pour le matériel grand public, nécessitant souvent moins GPU que les alternatives basées sur des transformateurs ou les bases de code de recherche non optimisées.
- Préparation au déploiement : des fonctions d'exportation intégrées vous permettent de convertir des modèles entraînés en ONNX, TensorRT, CoreML et TFLite une seule commande.
Applications concrètes
Le choix entre ces modèles dépend de vos contraintes de déploiement spécifiques.
Analyse rapide des ventes au détail
Pour les environnements de vente au détail nécessitant une reconnaissance des produits en temps réel sur des appareils périphériques, YOLOv9 est souvent le choix le plus judicieux. Son architecture GELAN permet un débit élevé sur des appareils tels que le NVIDIA Orin Nano, offrant des fonctionnalités telles que le paiement automatisé ou l'analyse du stock en rayon sans décalage significatif.
Déploiement mobile hérité
Dans les cas où le matériel mobile est plus ancien ou où certaines architectures NPU favorisent les modèles de convolution simples, YOLOX-Nano ou YOLOX-Tiny peuvent encore être préférables. Leur conception pure sans ancrage et sans blocs d'agrégation complexes peut parfois être plus facile à quantifier et à déployer sur des microcontrôleurs très limités ou Android hérités.
Robotique autonome
Pour les applications robotiques où la précision maximale est primordiale pour éviter les collisions, la conservation supérieure des caractéristiques de YOLOv9e offre une marge de sécurité que les anciens modèles ne peuvent égaler. Le cadre PGI garantit que les petits obstacles ne sont pas perdus dans le processus d'extraction des caractéristiques, ce qui est essentiel pour la navigation dans des environnements encombrés.
L'avenir : entrez dans YOLO26
Si YOLOv9 des performances exceptionnelles, le domaine de l'IA ne cesse d'évoluer. La nouvelle version YOLO26 s'appuie sur ces fondements pour offrir un équilibre parfait entre vitesse et précision.
YOLO26 introduit une conception native de bout en bout NMS, éliminant complètement le besoin de suppression non maximale pendant l'inférence. Il en résulte des pipelines de déploiement nettement plus simples et des vitesses d'exécution plus rapides. De plus, en supprimant la perte focale de distribution (DFL) et en utilisant le nouvel optimiseur MuSGD (un hybride de SGD Muon), YOLO26 atteint CPU jusqu'à 43 % plus rapide que les générations précédentes, ce qui en fait le choix idéal pour l'informatique de pointe moderne.
Pour les développeurs à la recherche du meilleur produit de sa catégorie, nous recommandons d'évaluer YOLO26 pour votre prochain projet afin de tirer parti de ces avancées de pointe en matière de vision par ordinateur.
Modèles similaires à explorer
- YOLO11: un puissant prédécesseur de YOLO26, offrant une excellente polyvalence pour diverses tâches de vision.
- RT-DETR: un détecteur basé sur un transformateur qui élimine également NMS, idéal pour les scénarios où la précision est prioritaire par rapport à la vitesse d'inférence pure.
- YOLOv10: premier YOLO à introduire le paradigme d'entraînement NMS, servant de passerelle vers l'architecture moderne YOLO26.