YOLOv8 vs YOLOX#
Le paysage de la vision par ordinateur a été profondément façonné par l’évolution continue des architectures de détection d’objets en temps réel. Deux jalons importants de cette évolution sont Ultralytics YOLOv8 et YOLOX. Bien que les deux modèles adoptent une conception sans ancres pour simplifier les prédictions de boîtes englobantes, ils représentent des époques et des philosophies différentes en matière de recherche en deep learning et de développement d’écosystèmes de déploiement.
Cette comparaison technique complète examine leurs architectures respectives, leurs méthodologies d’entraînement et leurs performances réelles afin d’aider les développeurs et les chercheurs à choisir la solution optimale pour leurs applications d’IA visuelle.
Origines des modèles#
Comprendre les origines et les objectifs de conception de chaque framework fournit un contexte essentiel pour saisir leurs différences architecturales et la maturité de leurs écosystèmes.
Ultralytics YOLOv8#
Développé par Glenn Jocher, Ayush Chaurasia et Jing Qiu chez Ultralytics, puis publié le 10 janvier 2023, YOLOv8 a marqué une avancée importante dans l’écosystème Ultralytics. S’appuyant sur le succès considérable de YOLOv5, YOLOv8 a introduit une architecture de pointe très aboutie, capable de gérer nativement un large éventail de tâches, notamment la détection d’objets, la segmentation d’instances, la classification d’images et l’estimation de pose.
Son principal avantage réside dans l’écosystème Ultralytics bien entretenu, qui offre une expérience fluide, de « zéro à héros », avec une API Python unifiée, une documentation complète et des intégrations natives avec des outils MLOps comme Weights & Biases et Comet.
YOLOX#
Présenté par Zheng Ge, Songtao Liu, Feng Wang, Zeming Li et Jian Sun de Megvii le 18 juillet 2021, YOLOX visait à combler le fossé entre la recherche universitaire et les applications industrielles. Décrit dans leur article sur arXiv, YOLOX a fait parler de lui en faisant évoluer la famille YOLO vers une conception sans ancres et en intégrant une tête découplée, ce qui a amélioré la stabilité et la convergence de l’entraînement.
Bien qu’il ait eu une grande influence en 2021, le dépôt GitHub de YOLOX reste principalement axé sur la recherche. Il ne dispose ni de la grande polyvalence des frameworks modernes ni de pipelines de déploiement aboutis, et nécessite davantage de configuration manuelle pour un déploiement en production.
Consulte la documentation YOLOX
Innovations architecturales#
Les deux modèles utilisent une approche sans ancres, ce qui élimine le besoin de regrouper des boîtes d’ancrage complexes et spécifiques au jeu de données avant l’entraînement. Cela réduit le nombre de paramètres de réglage heuristiques et simplifie la tête de détection.
Têtes découplées et extraction de caractéristiques#
YOLOX a été le premier à intégrer une tête découplée dans la série YOLO. Traditionnellement, les tâches de classification et de régression étaient exécutées dans une tête unifiée, ce qui entraînait souvent des gradients contradictoires pendant l’entraînement. En séparant les branches de classification et de localisation, YOLOX a accéléré la convergence.
YOLOv8 a repris et considérablement perfectionné ce concept. Son backbone utilise le module C2f de pointe (goulot d’étranglement partiel inter-étapes à deux convolutions), qui remplace l’ancien module C3. Cela améliore la propagation des gradients et la représentation des caractéristiques sans augmenter sensiblement le coût de calcul. De plus, YOLOv8 implémente une tête de détection sans ancres avancée qui utilise Task-Aligned Assigner pour faire correspondre dynamiquement les échantillons positifs en fonction d’une combinaison de scores de classification et d’intersection sur union (IoU), ce qui améliore la précision.
Les modèles YOLO d’Ultralytics sont conçus pour offrir une efficacité mémoire exceptionnelle. Par rapport aux architectures basées sur des Transformer ou aux bases de code de recherche non optimisées, YOLOv8 nécessite beaucoup moins de mémoire CUDA pendant l’entraînement, ce qui permet aux développeurs d’utiliser des tailles de lot plus importantes sur du matériel grand public standard.
Comparaison des performances#
Pour évaluer des modèles destinés à un déploiement réel, il est essentiel de trouver un équilibre entre précision (mAP), latence d’inférence et complexité du modèle. Le tableau ci-dessous présente les métriques de performance sur le jeu de données COCO.
| Modèle | taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.1 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
| 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 on peut le constater, les modèles YOLOv8 surpassent systématiquement leurs équivalents YOLOX à nombre de paramètres comparable. Par exemple, YOLOv8m atteint un mAP de 50,2 %, contre 46,9 % pour YOLOXm, ce qui témoigne d’un net gain de précision tout en conservant des vitesses d’inférence GPU compétitives avec TensorRT.
Avantages de l’entraînement et de l’écosystème#
L’une des différences les plus évidentes entre ces deux solutions concerne l’expérience développeur. L’entraînement de YOLOX nécessite souvent une configuration complexe de l’environnement, des modifications manuelles des scripts et une connaissance approfondie du fonctionnement interne de PyTorch pour déboguer les fuites mémoire ou les problèmes d’exportation.
À l’inverse, l’écosystème Ultralytics masque cette complexité et propose une API Python et une interface en ligne de commande (CLI) très intuitives.
Une API Python simplifiée#
L’entraînement d’un modèle YOLOv8 de pointe sur un jeu de données personnalisé ne nécessite que quelques lignes de code :
from ultralytics import YOLO
# Charger un modèle YOLOv8 préentraîné pour la détection d’objets
model = YOLO("yolov8n.pt")
# Entraîner le modèle sur le jeu de données d’exemple COCO8
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Valider facilement le modèle
metrics = model.val()
# Exporter facilement au format ONNX pour la production
model.export(format="onnx")Cette API uniformise les flux de travail pour la détection, la segmentation et les tâches de boîtes englobantes orientées (OBB), réduisant considérablement le délai de mise sur le marché des applications de production. De plus, les fonctionnalités d’exportation intégrées permettent une conversion fluide vers ONNX, OpenVINO et CoreML sans écrire d’opérateurs C++ personnalisés.
Cas d’utilisation idéaux#
Le choix entre ces architectures dépend des contraintes de ton projet, même si YOLOv8 offre une base beaucoup plus flexible.
- Analytique haute vitesse en périphérie : pour le traitement en temps réel sur des appareils comme le NVIDIA Jetson, YOLOv8 offre un équilibre inégalé entre vitesse et précision et se déploie facilement grâce à son intégration native de TensorRT.
- Recherche universitaire : YOLOX reste un outil pédagogique utile pour les chercheurs qui étudient la transition des méthodes avec ancres vers les méthodes sans ancres dans PyTorch.
- Applications complexes à tâches multiples : les applications qui nécessitent le suivi simultané d’objets et la segmentation d’instances privilégieront largement YOLOv8, car ces fonctionnalités sont directement intégrées à la bibliothèque Ultralytics.
Perspectives : autres modèles#
YOLOv8 représente une amélioration considérable par rapport à YOLOX, mais le domaine de l’IA évolue à une vitesse fulgurante. Pour démarrer un nouveau projet, nous te recommandons vivement d’évaluer Ultralytics YOLO26. Lancé en janvier 2026, YOLO26 représente la nouvelle référence en IA visuelle.
YOLO26 intègre une conception révolutionnaire de bout en bout sans NMS dont la tête facultative one-to-one (nms=False) élimine le post-traitement par suppression non maximale pour simplifier les pipelines de déploiement. Associé au nouvel optimiseur MuSGD et à la suppression de Distribution Focal Loss (DFL), YOLO26 offre une inférence CPU jusqu’à 43 % plus rapide que YOLO11. Il introduit également ProgLoss + STAL (perte progressive et attribution d’étiquettes tenant compte des petites cibles), qui améliore considérablement la reconnaissance des petits objets, essentielle pour l’imagerie aérienne et la robotique.
Tu peux également envisager YOLO11, un autre prédécesseur performant et bien pris en charge dans l’écosystème Ultralytics, qui offre des performances robustes sur diverses tâches.
Conclusion#
YOLOX a démontré avec succès la puissance des têtes découplées et de la conception sans ancres dans la famille YOLO. Toutefois, Ultralytics YOLOv8 a repris ces concepts, perfectionné l’architecture et les a intégrés dans un écosystème prêt pour la production qui reste inégalé en matière de simplicité d’utilisation et de polyvalence des tâches. En choisissant un modèle Ultralytics, les développeurs bénéficient de performances supérieures, d’un entraînement économe en mémoire et d’une suite robuste d’outils de déploiement qui facilitent le passage de l’expérimentation aux applications concrètes.