YOLOv10 vs YOLOX#
Le domaine de la vision par ordinateur est propulsé par des avancées rapides dans les architectures de détection d'objets en temps réel. Cette comparaison technique détaillée explore deux modèles influents qui ont repoussé les limites de l'efficacité et des paradigmes de conception : YOLOv10 et YOLOX. En examinant leurs différences architecturales, leurs métriques de performance et leurs méthodologies d'entraînement, les développeurs et les chercheurs peuvent prendre des décisions éclairées pour déployer des systèmes de vision robustes.
Historique et origines des modèles#
Comprendre les origines de ces modèles de deep learning apporte un contexte précieux concernant leurs objectifs architecturaux et leurs cas d'utilisation visés.
YOLOv10 : Éliminer la NMS pour une véritable détection de bout en bout#
Développé pour résoudre les goulots d'étranglement de latence persistants, YOLOv10 a introduit une approche native de bout en bout à la famille YOLO.
- Auteurs : Ao Wang, Hui Chen, Lihao Liu, et al.
- Organisation : Tsinghua University
- Date : 23 mai 2024
- ArXiv : 2405.14458
- GitHub : THU-MIG/yolov10
- Docs : Ultralytics YOLOv10 Documentation
YOLOX : Combler le fossé entre recherche et industrie#
YOLOX est apparu comme une version sans ancres (anchor-free) de la conception YOLO traditionnelle, offrant une méthodologie plus simple avec des performances compétitives, spécifiquement ciblée pour faciliter le déploiement dans les communautés industrielles.
- Auteurs : Zheng Ge, Songtao Liu, Feng Wang, Zeming Li et Jian Sun
- Organisation : Megvii
- Date : 18 juillet 2021
- ArXiv : 2107.08430
- GitHub : Megvii-BaseDetection/YOLOX
- Docs : YOLOX Official Documentation
Points forts et innovations architecturales#
Les deux frameworks s'écartent des détecteurs traditionnels basés sur des ancres, mais ils résolvent des problèmes différents dans le pipeline de détection d'objets.
Architecture de YOLOX#
YOLOX a apporté plusieurs mises à jour cruciales à l'écosystème en 2021. Sa principale contribution a été le passage à une conception de détecteur sans ancres (anchor-free). En éliminant les boîtes d'ancrage prédéfinies, YOLOX a considérablement réduit le nombre de paramètres de conception et le réglage heuristique requis pour différents datasets.
De plus, YOLOX emploie une tête découplée, séparant les tâches de classification et de régression. Cela a résolu le conflit entre les deux objectifs, accélérant considérablement la convergence pendant l'entraînement. Il utilise également SimOTA pour l'attribution avancée des étiquettes, améliorant la gestion des scènes encombrées et des occlusions fréquentes dans le COCO dataset.
Les conceptions sans ancres, comme celle initiée par YOLOX, réduisent considérablement la complexité du réglage des modèles. Tu n'as plus besoin d'effectuer de clustering k-means sur des datasets personnalisés pour définir des tailles de boîtes d'ancrage optimales, ce qui te fait gagner un temps de préparation précieux.
Architecture de YOLOv10#
Bien que YOLOX ait amélioré la tête de détection, il dépendait toujours de la Non-Maximum Suppression (NMS) pendant l'inférence, ce qui provoque une variabilité de latence. YOLOv10 a spécifiquement ciblé ce défaut en introduisant une stratégie de double assignation cohérente pour un entraînement sans NMS. Pendant l'entraînement, il utilise à la fois des assignations d'étiquettes un-à-plusieurs et un-à-un, mais pendant l'inférence, il abandonne complètement la tête un-à-plusieurs, produisant des prédictions propres sans post-traitement NMS.
YOLOv10 propose également une conception de modèle axée sur une efficacité et une précision holistiques. Il intègre des têtes de classification légères et un sous-échantillonnage découplé spatial-canal, réduisant considérablement le nombre de paramètres et les FLOPs sans sacrifier la précision.
Comparaison des performances#
L'évaluation de ces modèles sur du matériel comme le GPU NVIDIA T4 révèle des avantages distincts selon l'échelle. Tu trouveras ci-dessous le tableau comparatif complet.
| Modèle | taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
| 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 |
Comme vu ci-dessus, YOLOv10 s'adapte exceptionnellement bien. La variante YOLOv10x atteint la plus haute précision (54,4 mAP), tandis que la variante YOLOv10n offre l'inférence la plus rapide grâce à l'intégration TensorRT. À l'inverse, l'ancien modèle YOLOX nano présente l'empreinte globale la plus faible pour les environnements fortement contraints.
Méthodologies d'entraînement et besoins en ressources#
Lors de la mise en œuvre de modèles pour la production, l'écosystème d'entraînement et les demandes en ressources sont tout aussi critiques que la vitesse brute d'inférence.
YOLOX repose souvent sur des configurations d'environnement anciennes qui peuvent être lourdes à gérer. De plus, son code source hérité nécessite plus de code répétitif (boilerplate) pour réaliser un entraînement distribué multi-GPU ou une optimisation en précision mixte.
En revanche, YOLOv10 s'intègre harmonieusement aux flux de travail PyTorch modernes, mais c'est l'écosystème Ultralytics qui transforme réellement l'expérience de développement. Les modèles Ultralytics se caractérisent par une utilisation de mémoire CUDA nettement inférieure lors de l'entraînement par rapport aux architectures basées sur des transformers telles que RT-DETR.
Exemple de code : Entraînement simplifié#
En utilisant l'API unifiée Ultralytics, tu peux entraîner en toute transparence des modèles de pointe en quelques lignes de Python. Cela évite la compilation manuelle d'opérateurs C++ ou des fichiers de configuration complexes.
from ultralytics import YOLO
# Initialize a pre-trained YOLOv10 model
model = YOLO("yolov10s.pt")
# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Validate the model's performance
metrics = model.val()
# Export the optimized model to ONNX format
model.export(format="onnx")Cette syntaxe simple offre un accès immédiat à la precision mixte automatique, à l'augmentation automatisée des données et à l'intégration d'outils tels que Weights & Biases dès la sortie de la boîte.
Cas d'utilisation et recommandations#
Le choix entre YOLOv10 et YOLOX dépend des exigences spécifiques de ton projet, des contraintes de déploiement et de tes préférences en matière d'écosystème.
Quand choisir YOLOv10#
YOLOv10 est un choix solide pour :
- Détection temps réel sans NMS : Applications bénéficiant d'une détection de bout en bout sans NMS (Non-Maximum Suppression), ce qui réduit la complexité du déploiement.
- Compromis vitesse-précision équilibré : Projets nécessitant un bon équilibre entre la vitesse d'inférence et la précision de détection pour différentes tailles de modèles.
- Applications à latence constante : Les scénarios de déploiement où des temps d'inférence prévisibles sont essentiels, tels que la robotique ou les systèmes autonomes.
Quand choisir YOLOX#
YOLOX est recommandé pour :
- Recherche sur la détection sans ancres : La recherche académique utilisant l'architecture propre et sans ancres de YOLOX comme base pour expérimenter de nouvelles têtes de détection ou des fonctions de perte.
- Appareils en périphérie ultra-légers : Le déploiement sur des microcontrôleurs ou du matériel mobile ancien où l'empreinte extrêmement réduite de la variante YOLOX-Nano (0.91 M de paramètres) est critique.
- Études sur l'assignation de labels SimOTA : Les projets de recherche étudiant les stratégies d'assignation de labels basées sur le transport optimal et leur impact sur la convergence de l'entraînement.
Quand choisir Ultralytics (YOLO26)#
Pour la plupart des nouveaux projets, Ultralytics YOLO26 offre la meilleure combinaison de performance et d'expérience développeur :
- Déploiement en périphérie sans NMS : Applications nécessitant une inférence cohérente et à faible latence sans la complexité du post-traitement par Non-Maximum Suppression.
- Environnements CPU uniquement : Appareils sans accélération GPU dédiée, où l'inférence CPU jusqu'à 43 % plus rapide de YOLO26 offre un avantage décisif.
- Détection de petits objets : Les scénarios complexes tels que l'imagerie par drone aérien ou l'analyse par capteurs IoT où ProgLoss et STAL améliorent considérablement la précision sur les minuscules objets.
L'avenir de la vision par IA : Voici YOLO26#
Bien que YOLOv10 et YOLOX représentent des étapes majeures, le paysage de la vision par ordinateur avance sans relâche. Pour les développeurs qui démarrent de nouveaux projets aujourd'hui, Ultralytics YOLO26 est la recommandation définitive.
Sorti en janvier 2026, Ultralytics YOLO26 s'appuie sur la percée fondamentale de la conception de bout en bout sans NMS initiée par YOLOv10, l'affinant pour encore plus de stabilité et de vitesse.
YOLO26 se distingue en introduisant plusieurs avancées majeures :
- Inférence CPU jusqu'à 43 % plus rapide : En supprimant stratégiquement la Distribution Focal Loss (DFL), YOLO26 obtient des performances largement supérieures sur les appareils en périphérie (edge) sans GPU.
- Optimiseur MuSGD : Inspiré par la stabilité de l'entraînement des LLM, cet hybride novateur de SGD et Muon assure une convergence plus rapide et des exécutions d'entraînement très stables.
- ProgLoss + STAL : Ces fonctions de perte avancées apportent des améliorations notables dans la reconnaissance des petits objets, un facteur critique pour l'imagerie aérienne et les capteurs IoT.
- Polyvalence inégalée : Contrairement à YOLOX, qui est strictement un détecteur d'objets, YOLO26 prend en charge nativement la Segmentation d'instances, l'Estimation de pose, la Classification d'images et la Détection OBB au sein d'une bibliothèque unique et unifiée.
Pour le chemin le plus simple vers la production, tu peux utiliser la Ultralytics Platform pour annoter des jeux de données, entraîner des modèles YOLO26 dans le cloud et les déployer sur n'importe quel appareil edge sans configuration requise.
Applications concrètes#
Le choix du bon modèle dicte le succès des déploiements réels dans diverses industries.
Analyse vidéo haute vitesse#
Pour traiter des flux vidéo denses, tels que la gestion du trafic des villes intelligentes, YOLOv10 offre un avantage significatif grâce à son post-traitement sans NMS. Éliminer le goulot d'étranglement du NMS permet une faible latence constante, ce qui le rend idéal à associer à des algorithmes de suivi comme BoT-SORT.
Déploiement sur périphérie (edge) hérité#
Pour les configurations académiques anciennes ou les applications Android héritées fortement optimisées pour des paradigmes purement convolutionnels, des modèles plus petits comme YOLOX-Tiny peuvent encore trouver des cas d'utilisation spécialisés où le maintien d'environnements PyTorch plus anciens est un compromis accepté.
Appareils modernes en périphérie (edge) et IoT#
Pour les déploiements sur le matériel de nouvelle génération, tels que la robotique, les drones et l'analyse de rayons en magasin, YOLO26 est la solution ultime. Sa latence CPU considérablement réduite et sa détection supérieure des petits objets le qualifient de manière unique pour la navigation autonome et la gestion granulaire des stocks.
Pour des comparaisons supplémentaires afin d'enrichir ta boîte à outils de deep learning, tu peux également explorer comment ces modèles se comparent à des alternatives comme le flexible YOLO11 ou le RT-DETR propulsé par des transformers.