YOLOv5 YOLOX : comparaison technique des architectures de détection d'objets
Dans le domaine en pleine évolution de la vision par ordinateur, le débat entre les détecteurs basés sur des ancrages et ceux sans ancrages a été un thème central. Cette comparaison explore les distinctions techniques entre YOLOv5, la norme industrielle en matière de facilité d'utilisation et de vitesse, et YOLOX, un détecteur sans ancrage haute performance.
Origines et aperçu du modèle
YOLOv5
Auteur : Glenn Jocher
Organisation : Ultralytics
Date : 26/06/2020
GitHub : yolov5
YOLOX
Auteurs : Zheng Ge, Songtao Liu, Feng Wang, Zeming Li et Jian Sun
Organisation : Megvii
Date : 18/07/2021
GitHub : Megvii-BaseDetection/YOLOX
YOLOv5 a révolutionné le domaine non seulement grâce à des changements architecturaux, mais aussi en créant une expérience utilisateur fluide. Il a donné la priorité à la facilité de formation, à l'exportabilité et à la vitesse de déploiement, ce qui en a fait le choix incontournable pour les entreprises et les développeurs. YOLOX, lancé un an plus tard, visait à combler le fossé entre la YOLO et la tendance académique de la détection sans ancrage, en introduisant une tête découplée et une nouvelle stratégie d'attribution d'étiquettes.
Mesures de performance
Le tableau suivant compare les performances des deux modèles. Alors que YOLOX a obtenu un mAP légèrement supérieur mAP lors de sa sortie, YOLOv5 affiche YOLOv5 des vitesses d'inférence supérieures, en particulier sur CPU, et une complexité de déploiement nettement inférieure.
| Modèle | Taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.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 |
Différences architecturales
La divergence technique fondamentale réside dans la manière dont chaque modèle gère la prédiction des boîtes englobantes.
YOLOv5 : la norme basée sur l'ancrage
YOLOv5 un mécanisme basé sur des ancrages. Il prédit les décalages à partir de boîtes d'ancrage prédéfinies, ce qui contribue à stabiliser l'entraînement pour les objets dont l'échelle est connue.
- Backbone : utilise un CSPDarknet53 modifié, améliorant le flux de gradient et réduisant les goulots d'étranglement informatiques.
- Augmentation des données : pionnier dans l'utilisation intensive de l'augmentation Mosaic et MixUp le pipeline de formation, ce qui a considérablement amélioré la robustesse du modèle face à l'occlusion.
- Focus : L'architecture est fortement optimisée pour un déploiement dans le monde réel, garantissant une correspondance efficace entre les couches et les accélérateurs matériels tels que l'Edge TPU.
YOLOX : le challenger sans ancre
YOLOX adopte une approche sans ancrage, prédisant directement le centre d'un objet.
- Tête découplée : contrairement YOLO précédentes YOLO , YOLOX sépare les tâches de classification et de localisation en différentes « têtes », ce qui, selon eux, résout le conflit entre ces deux objectifs pendant la convergence.
- SimOTA : une stratégie avancée d'attribution dynamique d'étiquettes qui considère le processus d'apprentissage comme un problème de transport optimal.
- Référence : pour plus de détails techniques, consultez l'article YOLOX arXiv.
Le compromis des têtes découplées
Si la tête découplée dans YOLOX améliore la vitesse et la précision de convergence, elle introduit souvent une charge de calcul supplémentaire, ce qui se traduit par une inférence légèrement plus lente par rapport à la conception à tête couplée que l'on trouve dans YOLOv5 YOLOv8.
Écosystème et facilité d'utilisation
Lorsqu'on évalue des modèles pour la production, l'écosystème environnant est aussi important que l'architecture elle-même. C'est là qu' Ultralytics offrent un avantage distinct.
YOLOv5 est intégré dans un écosystème mature et bien entretenu. Les utilisateurs bénéficient de la Ultralytics (anciennement HUB), qui rationalise l'annotation, la formation et le déploiement des ensembles de données. La plateforme gère les complexités de l'infrastructure, permettant ainsi aux développeurs de se concentrer sur les données et les résultats.
En revanche, si YOLOX offre de solides performances académiques, il nécessite souvent davantage de configuration manuelle pour son déploiement. Ultralytics privilégient l'efficacité de l'entraînement, en proposant des poids pré-entraînés facilement disponibles et une utilisation réduite de la mémoire pendant l'entraînement. Cette efficacité mémoire est particulièrement remarquable par rapport aux modèles plus récents basés sur des transformateurs, tels que RT-DETR, qui peuvent être très gourmands en ressources.
L'évolution : entrez dans YOLO26
Si YOLOv5 YOLOX restent d'excellents choix, le domaine a progressé. Pour les développeurs qui lancent de nouveaux projets en 2026, YOLO26 représente le summum de cette évolution, combinant la facilité d'utilisation de YOLOv5 les innovations sans ancrage de YOLOX, et surpassant les deux.
YOLO26 est conçu pour offrir un équilibre optimal entre performances et efficacité pour l'informatique de pointe et l'analyse en temps réel.
Pourquoi passer à YOLO26 ?
- NMS de bout en bout : tout comme YOLOX, YOLO26 s'éloigne des ancrages, mais va plus loin en devenant nativement de bout en bout. Cela élimine la suppression non maximale (NMS), une étape de post-traitement qui complique souvent le déploiement sur des appareils tels que les FPGA ou CoreML.
- Optimiseur MuSGD : inspiré des techniques d'entraînement des grands modèles linguistiques (LLM) (en particulier ceux de Kimi K2 de Moonshot AI), cet optimiseur hybride garantit une dynamique d'entraînement stable, apportant efficacement la stabilité des LLM aux tâches de vision.
- Vitesse : YOLO26 offre CPU jusqu'à 43 % plus rapide que les générations précédentes, grâce à la suppression de la perte focale de distribution (DFL) et à l'élagage architectural.
- ProgLoss + STAL : ces fonctions de perte améliorées ciblent spécifiquement la reconnaissance de petits objets, remédiant ainsi à une faiblesse courante des détecteurs précédents.
Polyvalence dans toutes les tâches
Contrairement à YOLOX, qui se concentre principalement sur la détection, Ultralytics prend en charge une gamme complète de tâches prêtes à l'emploi, notamment l'estimation de la pose, la segmentation d'instances et la détection d'objets orientés (OBB).
Applications concrètes
Le choix entre ces modèles dépend souvent du scénario de déploiement.
- Inspection industrielle (YOLOv5) : pour les chaînes de fabrication nécessitant un débit élevé, la conception à tête couplée et TensorRTUltralytics garantissent une latence minimale.
- Surveillance aérienne (YOLO26) : grâce aux nouvelles fonctions ProgLoss + STAL, YOLO26 excelle dans la détection de petits objets tels que des véhicules ou du bétail dans les images prises par drone, une tâche qui posait parfois des difficultés aux anciens modèles basés sur des ancrages.
- Recherche universitaire (YOLOX) : les chercheurs qui étudient les stratégies d'attribution d'étiquettes utilisent souvent YOLOX comme référence en raison de sa mise en œuvre claire de SimOTA.
Exemple de code
La transition entre les modèles de Ultralytics est transparente. Le code suivant montre comment charger et exécuter l'inférence, en présentant l'API unifiée qui fonctionne pour YOLOv5, YOLO11 et le modèle recommandé YOLO26.
from ultralytics import YOLO
# Load a model (YOLOv5 or the recommended YOLO26)
# The API unifies usage, making it easy to swap models for comparison
model = YOLO("yolo26n.pt") # Loading the latest Nano model
# Run inference on a local image
results = model("path/to/image.jpg")
# Process the results
for result in results:
result.show() # Display prediction
result.save(filename="result.jpg") # Save to disk
Conclusion
YOLOv5 YOLOX ont tous deux gagné leur place dans l'histoire de la vision par ordinateur. YOLOv5 la norme en matière de facilité d'utilisation et de déploiement, tandis que YOLOX a repoussé les limites de la détection sans ancrage.
Cependant, pour les applications modernes exigeant une efficacité maximale, Ultralytics est le choix idéal. Grâce à son design NMS, son optimiseur MuSGD révolutionnaire et son architecture optimisée pour la périphérie, il offre une solution robuste et évolutive, soutenue par la vaste gamme de produits Ultralytics .