YOLOv10 vs YOLOX#
Le domaine de la vision par ordinateur est porté par les progrès rapides des architectures de détection d’objets en temps réel. Cette comparaison technique détaillée examine deux modèles influents qui ont repoussé les limites de l’efficacité et des paradigmes de conception : YOLOv10 et YOLOX. En étudiant leurs différences architecturales, leurs métriques de performance et leurs méthodes 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.
Origines et contexte des modèles#
Comprendre les origines de ces modèles d’apprentissage profond fournit un contexte précieux sur leurs objectifs architecturaux et leurs cas d’utilisation ciblés.
YOLOv10 : éliminer NMS pour une détection réellement de bout en bout#
Conçu pour résoudre des problèmes de latence persistants, YOLOv10 a introduit une approche native de bout en bout dans la famille YOLO.
- Auteurs : Ao Wang, Hui Chen, Lihao Liu, et al.
- Organisation : Université Tsinghua
- Date : 23 mai 2024
- ArXiv : 2405.14458
- GitHub : THU-MIG/yolov10
- Documentation : Documentation Ultralytics YOLOv10
YOLOX : combler le fossé entre la recherche et l’industrie#
YOLOX est apparu comme une version sans ancres de la conception YOLO traditionnelle, offrant une méthodologie plus simple et des performances compétitives, spécifiquement pensée pour faciliter le déploiement dans les milieux industriels.
- 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
- Documentation : Documentation officielle de YOLOX
Points forts et innovations architecturaux#
Les deux frameworks s’écartent des détecteurs traditionnels basés sur des ancres, mais ils répondent à 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. En supprimant les boîtes d’ancrage prédéfinies, YOLOX a considérablement réduit le nombre de paramètres de conception et de réglages heuristiques nécessaires pour différents jeux de données.
De plus, YOLOX utilise une tête découplée, qui sépare les tâches de classification et de régression. Cela a résolu le conflit entre ces deux objectifs et considérablement accéléré la convergence pendant l’entraînement. YOLOX utilise également SimOTA pour l’affectation avancée des étiquettes, améliorant la gestion des scènes encombrées et des occultations courantes dans le jeu de données COCO.
Les conceptions sans ancres, comme celle mise au point par YOLOX, réduisent considérablement la complexité du réglage des modèles. Les développeurs n’ont plus besoin d’effectuer un regroupement k-means sur des jeux de données personnalisés pour définir la taille optimale des boîtes d’ancrage, ce qui leur fait gagner un temps précieux de préparation.
Architecture de YOLOv10#
Même si YOLOX a amélioré la tête de détection, il s’appuyait toujours sur la suppression non maximale (NMS) pendant l’inférence, ce qui entraîne une variabilité de la latence. YOLOv10 a spécifiquement ciblé cette lacune en introduisant une stratégie d’affectation double cohérente pour l’entraînement sans NMS. Pendant l’entraînement, le modèle utilise à la fois des affectations d’étiquettes un-à-plusieurs et un-à-un, mais pendant l’inférence, il supprime entièrement la tête un-à-plusieurs et produit des prédictions nettes sans post-traitement NMS.
YOLOv10 adopte également une conception globale du modèle axée sur l’efficacité et la précision. Il intègre des têtes de classification légères et un sous-échantillonnage découplé spatialement et par canal, réduisant fortement 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 tel que le GPU NVIDIA T4 révèle des avantages distincts selon l’échelle. Voici le tableau comparatif complet.
| Modèle | taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 38.5 | - | 1.84 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.3 | - | 2.49 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.1 | - | 4.74 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.5 | - | 5.74 | 19.1 | 92.0 |
| YOLOv10l | 640 | 53.2 | - | 7.28 | 24.4 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 10.70 | 29.5 | 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 indiqué ci-dessus, YOLOv10 s’adapte remarquablement bien à différentes échelles. La variante YOLOv10x atteint la précision la plus élevée (54.4 mAP), tandis que la variante YOLOv10n offre l’inférence la plus rapide grâce à l’intégration de TensorRT. En revanche, l’ancien modèle YOLOX nano présente l’encombrement global le plus réduit pour les environnements soumis à de fortes contraintes.
Méthodes d’entraînement et besoins en ressources#
Lors de la mise en œuvre de modèles en production, l’écosystème d’entraînement et les besoins en ressources sont tout aussi essentiels que la vitesse brute d’inférence.
YOLOX s’appuie souvent sur d’anciennes configurations d’environnement, qui peuvent être difficiles à gérer. De plus, son ancienne base de code nécessite davantage de code passe-partout pour mettre en place l’entraînement distribué multi-GPU ou l’optimisation en précision mixte.
À l’inverse, YOLOv10 s’intègre aisément aux workflows PyTorch modernes, mais c’est l’écosystème Ultralytics qui transforme véritablement l’expérience des développeurs. Les modèles Ultralytics se caractérisent par une consommation de mémoire CUDA considérablement plus faible pendant l’entraînement que les architectures basées sur Transformer comme RT-DETR.
Exemple de code : entraînement simplifié#
Avec l’API unifiée d’Ultralytics, tu peux entraîner facilement des modèles de pointe en quelques lignes de Python. Tu évites ainsi de compiler manuellement des opérateurs C++ ou de manipuler des fichiers de configuration complexes.
from ultralytics import YOLO
# Initialiser un modèle YOLOv10 préentraîné
model = YOLO("yolov10s.pt")
# Entraîner le modèle sur le jeu de données COCO8
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Valider les performances du modèle
metrics = model.val()
# Exporter le modèle optimisé au format ONNX
model.export(format="onnx")Cette syntaxe simple donne immédiatement accès à la précision mixte automatique, à l’augmentation automatisée des données et à l’intégration prête à l’emploi avec des outils comme Weights & Biases.
Cas d’utilisation et recommandations#
Le choix entre YOLOv10 et YOLOX dépend des exigences propres à 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 excellent choix pour :
- Détection en temps réel sans NMS : les applications qui tirent parti de la détection de bout en bout sans suppression non maximale, ce qui réduit la complexité du déploiement.
- Équilibre entre vitesse et précision : les projets qui nécessitent un bon compromis entre vitesse d’inférence et 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, comme en robotique ou dans les systèmes autonomes.
Quand choisir YOLOX#
YOLOX est recommandé pour :
- Recherche sur la détection sans ancres : recherche universitaire qui utilise l’architecture épurée sans ancres de YOLOX comme référence pour expérimenter de nouvelles têtes de détection ou fonctions de perte.
- Appareils périphériques ultralégers : déploiement sur des microcontrôleurs ou du matériel mobile ancien, où l’empreinte extrêmement réduite (0,91 M de paramètres) de la variante YOLOX-Nano est essentielle.
- Études sur l’assignation d’étiquettes SimOTA : projets de recherche qui étudient les stratégies d’assignation d’étiquettes 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 le meilleur équilibre entre performances et expérience développeur :
- Déploiement en périphérie sans NMS : les applications qui exigent des inférences à faible latence et constantes, sans la complexité du post-traitement par suppression non maximale.
- Environnements exclusivement CPU : les appareils dépourvus d’accélération GPU dédiée, où l’inférence CPU jusqu’à 43 % plus rapide de YOLO26 constitue un avantage décisif.
- Détection de petits objets : les situations difficiles, comme l’imagerie aérienne par drone ou l’analyse de capteurs IoT, où ProgLoss et STAL améliorent considérablement la précision pour les objets minuscules.
L’avenir de l’IA visuelle : voici YOLO26#
YOLOv10 et YOLOX représentent des étapes majeures, mais le paysage de la vision par ordinateur ne cesse d’évoluer. Pour les développeurs qui démarrent de nouveaux projets aujourd’hui, Ultralytics YOLO26 est la recommandation de référence.
Sorti en janvier 2026, Ultralytics YOLO26 s’appuie sur l’avancée fondamentale de la conception de bout en bout sans NMS mise au point par YOLOv10, qu’il perfectionne pour offrir encore plus de stabilité et de vitesse.
YOLO26 se distingue par plusieurs avancées majeures :
- Jusqu’à 43 % d’inférence CPU plus rapide : en supprimant stratégiquement Distribution Focal Loss (DFL), YOLO26 offre des performances nettement supérieures sur les appareils en périphérie dépourvus de GPU.
- Optimiseur MuSGD : inspiré par la stabilité de l’entraînement des LLM, ce nouvel hybride de SGD et de Muon garantit une convergence plus rapide et des entraînements très stables.
- ProgLoss + STAL : ces fonctions de perte avancées améliorent nettement la reconnaissance des petits objets, un facteur crucial pour l’imagerie aérienne et les capteurs IoT.
- Polyvalence inégalée : contrairement à YOLOX, qui est uniquement 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 d’OBB au sein d’une bibliothèque unifiée.
Pour accéder à la production par la voie la plus simple, les développeurs peuvent utiliser la plateforme Ultralytics 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 en périphérie, sans aucune configuration.
Applications concrètes#
Le choix du modèle approprié détermine la réussite des déploiements en conditions réelles dans divers secteurs.
Analyse vidéo à haute vitesse#
Pour traiter des flux vidéo denses, comme ceux de la gestion du trafic dans les villes intelligentes, YOLOv10 offre un avantage considérable grâce à son post-traitement sans NMS. L’élimination du goulot d’étranglement lié à NMS permet une faible latence constante, ce qui en fait un modèle idéal à associer à des algorithmes de suivi comme BoT-SORT.
Déploiement sur des appareils en périphérie anciens#
Pour les anciens environnements universitaires ou les applications Android héritées fortement optimisées pour les paradigmes purement convolutionnels, des modèles plus petits comme YOLOX-Tiny peuvent encore répondre à des cas d’utilisation spécialisés où conserver d’anciens environnements PyTorch constitue un compromis acceptable.
Appareils modernes en périphérie et IoT#
Pour les déploiements sur du matériel de nouvelle génération, comme les robots, les drones et l’analyse des rayons en magasin, YOLO26 est la solution idéale. Sa latence CPU considérablement réduite et sa meilleure détection des petits objets en font un modèle particulièrement adapté à la navigation autonome et à la gestion détaillée des stocks.
Pour approfondir tes comparaisons et élargir ta boîte à outils d’apprentissage profond, tu peux aussi découvrir comment ces modèles se comparent à des solutions comme le modèle flexible YOLO11 ou le modèle basé sur Transformer RT-DETR.