Ultralytics YOLO27 : Rejoins la liste d’attente.
Get Started

YOLOv8 vs YOLOX#

Le paysage de la vision par ordinateur a été façonné par l’évolution continue des architectures de détection d’objets en temps réel. Parmi les étapes marquantes figurent Ultralytics YOLOv8 et YOLOX. Les deux modèles utilisent une conception sans ancres pour simplifier les prédictions des boîtes englobantes, mais ils représentent des époques et des philosophies différentes en matière de recherche en apprentissage profond et de développement d’écosystèmes de déploiement.

Cette comparaison technique examine leurs architectures, leurs méthodes d’entraînement et leurs indicateurs de performances en conditions réelles pour aider les développeurs et les chercheurs à choisir le modèle adapté à 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 et publié le 10 janvier 2023, YOLOv8 a marqué une avancée importante pour l’écosystème Ultralytics. Dans la continuité du succès de YOLOv5, YOLOv8 a introduit une architecture affinée capable de prendre en charge nativement une grande variété 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 fournit un flux de travail complet avec une API Python unifiée, une documentation exhaustive 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 arXiv, YOLOX s’est distingué en orientant 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 affiné ce concept. Son dorsal utilise un module C2f (goulot d’étranglement Cross-Stage Partial avec deux convolutions), qui remplace l’ancien module C3. Cela améliore la propagation du gradient et la représentation des caractéristiques sans ajouter de surcharge de calcul importante. YOLOv8 associe également sa tête de détection sans ancres à un Task-Aligned Assigner, qui fait correspondre dynamiquement les échantillons positifs en fonction d’une combinaison des scores de classification et de l’intersection sur l’union (IoU), ce qui améliore la précision.

Efficacité mémoire

Les modèles Ultralytics YOLO sont conçus pour optimiser l’utilisation de la mémoire. Par rapport aux architectures fondé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 la précision (mAP), la latence d’inférence et la complexité du modèle. Le tableau ci-dessous présente les indicateurs de performance sur le jeu de données COCO.

Modèletaille
(pixels)
mAPval
50-95
Vitesse
CPU ONNX
(ms)
Vitesse
T4 TensorRT10
(ms)
paramètres
(M)
FLOPs
(B)
YOLOv8n64037.380.41.473.28.7
YOLOv8s64044.9128.42.6611.228.6
YOLOv8m64050.2234.75.8625.978.9
YOLOv8l64052.9375.29.0643.7165.1
YOLOv8x64053.9479.114.3768.2257.8
YOLOXnano41625.8--0.911.08
YOLOXtiny41632.8--5.066.45
YOLOXs64040.5-2.569.026.8
YOLOXm64046.9-5.4325.373.8
YOLOXl64049.7-9.0454.2155.6
YOLOXx64051.1-16.199.1281.9

Comme on peut le constater, les modèles YOLOv8 surpassent systématiquement leurs équivalents YOLOX à nombre de paramètres égal. Par exemple, YOLOv8m atteint une mAP de 50,2 %, contre 46,9 % pour YOLOXm, soit un gain de 3,3 points de mAP 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 principales différences 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 de scripts et une connaissance approfondie des mécanismes internes de PyTorch pour déboguer les problèmes d’entraînement ou d’exportation.

L’écosystème Ultralytics prend en charge cette complexité à l’aide d’une API Python intuitive et d’une interface en ligne de commande (CLI).

Une API Python simplifiée#

L’entraînement d’un modèle YOLOv8 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 vers ONNX pour la production
model.export(format="onnx")

Cette API standardise les flux de travail pour les tâches de détection, de segmentation et de boîtes englobantes orientées (OBB), réduisant ainsi le délai de mise sur le marché des applications de production. La fonctionnalité d’exportation intégrée convertit également les modèles aux formats ONNX, OpenVINO et CoreML sans qu’il soit nécessaire d’écrire des 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 plus flexible.

  • Analyse en périphérie à grande vitesse : pour le traitement en temps réel sur des appareils comme le NVIDIA Jetson, YOLOv8 offre un bon équilibre entre vitesse et précision et se déploie facilement grâce à son intégration native avec 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 nécessitant le suivi d’objets et la segmentation d’instances simultanés privilégieront YOLOv8, car ces fonctionnalités sont directement intégrées à la bibliothèque Ultralytics.

Perspectives : autres modèles#

YOLOv8 améliore considérablement YOLOX, mais le domaine évolue rapidement. Pour les nouveaux projets, Ultralytics recommande Ultralytics YOLO26, publié en janvier 2026.

YOLO26 présente une architecture de bout en bout sans NMS, dont la tête facultative à correspondance un-à-un (nms=False) élimine le post-traitement par suppression non maximale (NMS) et simplifie les flux de déploiement. Grâce à l’inférence sans NMS et à la suppression de Distribution Focal Loss (DFL), YOLO26n offre une inférence CPU jusqu’à 43 % plus rapide que YOLO11n, tandis que l’optimiseur MuSGD améliore la stabilité de l’entraînement. YOLO26 introduit également ProgLoss + STAL (perte progressive et assignation des étiquettes adaptée aux petites cibles), qui améliorent la détection des petits objets dans 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é l’intérêt des têtes découplées et de la conception sans ancres dans la famille YOLO. Ultralytics YOLOv8 a repris ces concepts, affiné l’architecture et les a intégrés à un écosystème prêt pour la production, reconnu pour sa facilité d’utilisation et sa polyvalence en matière de tâches. Avec un modèle Ultralytics, les développeurs bénéficient de performances élevées, d’un entraînement économe en mémoire et d’outils de déploiement qui simplifient le passage de l’expérimentation à la production.

Commentaires