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.
Contexte et origines 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 la NMS pour une détection véritablement de bout en bout#
Conçu pour résoudre des goulots d’étranglement persistants en matière de latence, YOLOv10 a introduit une approche native de bout en bout dans 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
- 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, proposant une méthodologie plus simple avec des performances compétitives, spécifiquement destinée à 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
- Documentation : Documentation officielle de YOLOX
Points forts et innovations architecturaux#
Les deux frameworks s’écartent des détecteurs traditionnels fondé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é d’adopter une conception de détecteur sans ancres. En éliminant les boîtes d’ancrage prédéfinies, YOLOX a fortement 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 accéléré considérablement la convergence pendant l’entraînement. Il utilise également SimOTA pour une attribution avancée des étiquettes, améliorant la gestion des scènes encombrées et des occultations fréquentes dans le jeu de données COCO.
Les conceptions sans ancres, comme celle lancée par YOLOX, réduisent considérablement la complexité du réglage des modèles. Les développeurs n’ont plus besoin d’effectuer un clustering k-means sur des jeux de données personnalisés pour définir les dimensions optimales des boîtes d’ancrage, ce qui permet de gagner un temps précieux lors de la préparation.
Architecture de YOLOv10#
Bien que YOLOX ait amélioré la tête de détection, il reposait toujours sur la suppression non maximale (NMS) pendant l’inférence, ce qui entraîne une variabilité de la latence. YOLOv10 a ciblé précisément cette faiblesse en introduisant une stratégie de double attribution cohérente pour un entraînement sans NMS. Pendant l’entraînement, il utilise des attributions d’étiquettes un-à-plusieurs et un-à-un, mais lors de l’inférence, il supprime entièrement la tête un-à-plusieurs et produit des prédictions propres, sans post-traitement NMS.
YOLOv10 propose également une conception globale du modèle guidée par l’efficacité et la précision. Il intègre des têtes de classification légères ainsi qu’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 comme le GPU NVIDIA T4 révèle des avantages distincts selon l’échelle. Le tableau ci-dessous présente une comparaison complète.
| Modèle | taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (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 indiqué ci-dessus, YOLOv10 change remarquablement bien d’échelle. La variante YOLOv10x atteint la meilleure précision (54.4 mAP), tandis que la variante YOLOv10n offre l’inférence la plus rapide grâce à l’intégration de TensorRT. À l’inverse, l’ancien modèle YOLOX nano présente l’empreinte globale la plus réduite pour les environnements fortement contraints.
Méthodes d’entraînement et besoins en ressources#
Lors de l’implémentation de modèles en production, l’écosystème d’entraînement et les besoins en ressources sont tout aussi essentiels que la vitesse d’inférence brute.
YOLOX s’appuie souvent sur des configurations d’environnement anciennes qui peuvent être difficiles à gérer. De plus, son ancienne base de code nécessite davantage de code répétitif pour mettre en place l’entraînement distribué multi-GPU ou l’optimisation en précision mixte.
À l’inverse, YOLOv10 s’intègre facilement 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 utilisation de la mémoire CUDA nettement inférieure pendant l’entraînement par rapport aux architectures fondées sur des Transformer comme RT-DETR.
Exemple de code : entraînement simplifié#
Avec l’API Ultralytics unifiée, tu peux entraîner facilement des modèles de pointe en seulement quelques lignes de Python. Cela évite de compiler manuellement des opérateurs C++ ou de gérer 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 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 de tes exigences spécifiques, de tes contraintes de déploiement et de tes préférences en matière d’écosystème.
Quand choisir YOLOv10#
YOLOv10 est un choix pertinent pour :
- Détection en temps réel sans NMS : les applications qui bénéficient d’une détection de bout en bout sans suppression des non-maxima, réduisant ainsi la complexité du déploiement.
- Compromis équilibré entre vitesse et précision : les projets nécessitant un équilibre solide 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, comme la robotique ou les systèmes autonomes.
Quand choisir YOLOX#
YOLOX est recommandé pour :
- Recherche sur la détection sans ancres : La recherche universitaire utilisant l’architecture sans ancres claire de YOLOX comme référence pour expérimenter de nouvelles têtes de détection ou fonctions de perte.
- Appareils edge ultralégers : Le déploiement sur des microcontrôleurs ou du matériel mobile ancien, lorsque l’empreinte extrêmement réduite de la variante YOLOX-Nano (0.91M paramètres) est essentielle.
- Études sur l’attribution des labels SimOTA : Les projets de recherche qui étudient les stratégies d’attribution de labels fondé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 compromis entre performance et expérience développeur :
- Déploiement edge sans NMS : les applications nécessitant une inférence cohérente à faible latence, 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 scénarios difficiles comme les images aériennes prises par drone ou l'analyse de capteurs IoT, où ProgLoss et STAL améliorent considérablement la précision sur les objets minuscules.
L’avenir de l’IA pour la vision : voici YOLO26#
Bien que YOLOv10 et YOLOX représentent des jalons majeurs, le paysage de la vision par ordinateur continue inexorablement d’évoluer. Pour les développeurs qui démarrent aujourd’hui de nouveaux projets, Ultralytics YOLO26 est la recommandation de référence.
Sorti en janvier 2026, Ultralytics YOLO26 s’appuie sur la percée fondamentale de la conception de bout en bout sans NMS inaugurée par YOLOv10, en la perfectionnant pour offrir 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 Distribution Focal Loss (DFL), YOLO26 atteint des performances nettement supérieures sur les appareils edge dépourvus de GPU.
- Optimiseur MuSGD : inspiré par la stabilité de l’entraînement des LLM, cet hybride novateur 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 essentiel 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 nativement en charge la segmentation d’instances, l’estimation de pose, la classification d’images et la détection OBB au sein d’une seule bibliothèque unifiée.
Pour accéder le plus simplement possible à la production, 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 edge, sans aucune configuration.
Applications concrètes#
Le choix du modèle adéquat détermine la réussite des déploiements dans le monde réel, 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 important grâce à son post-traitement sans NMS. L’élimination du goulot d’étranglement lié à la NMS permet de maintenir une faible latence constante, ce qui le rend idéal pour être associé à des algorithmes de suivi comme BoT-SORT.
Déploiement edge sur systèmes existants#
Pour les anciennes configurations universitaires ou les applications Android existantes fortement optimisées pour des paradigmes purement convolutionnels, de petits modèles comme YOLOX-Tiny peuvent encore trouver des cas d’utilisation spécialisés où le maintien d’environnements PyTorch anciens constitue un compromis acceptable.
Appareils edge et IoT modernes#
Pour les déploiements sur du matériel de nouvelle génération, notamment en robotique, sur des drones et pour l’analyse des 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 rendent particulièrement adapté à la navigation autonome et à la gestion détaillée des stocks.
Pour découvrir d’autres comparaisons et enrichir ta boîte à outils d’apprentissage profond, tu peux également examiner les performances de ces modèles face à des alternatives comme le flexible YOLO11 ou le RT-DETR propulsé par un Transformer.