YOLOX vs. YOLOv6-3.0 : une comparaison technique
Le choix de l'architecture de détection d'objets appropriée est une décision cruciale pour les développeurs et les chercheurs qui cherchent à équilibrer les performances, la vitesse et l'efficacité informatique. Cette comparaison complète explore les distinctions techniques entre YOLOX, un détecteur sans ancrage haute performance de Megvii, et YOLOv6-3.0, un framework de qualité industrielle développé par Meituan. En analysant leurs architectures, leurs benchmarks et leurs méthodologies d'entraînement, nous visons à vous guider vers le meilleur modèle pour vos applications spécifiques de vision par ordinateur.
YOLOX : Relier la recherche et l’industrie
Auteurs : Zheng Ge, Songtao Liu, Feng Wang, Zeming Li et Jian Sun
Organisation :Megvii
Date : 2021-07-18
Arxiv :https://arxiv.org/abs/2107.08430
GitHub :https://github.com/Megvii-BaseDetection/YOLOX
Docs :https://yolox.readthedocs.io/en/latest/
Lancé en 2021, YOLOX a représenté un tournant significatif dans la lignée YOLO en adoptant un mécanisme sans ancres et en intégrant des techniques de détection avancées auparavant réservées à la recherche académique. En supprimant la dépendance aux boîtes d'ancrage prédéfinies, YOLOX a simplifié le processus d'entraînement et amélioré la généralisation à travers diverses formes d'objets.
Architecture et principales fonctionnalités
YOLOX se distingue par une architecture à "tête découplée". Contrairement aux modèles YOLO traditionnels qui couplaient les tâches de classification et de localisation dans une seule branche, YOLOX les sépare, ce qui améliore considérablement la vitesse de convergence et la précision. Il utilise une stratégie d'attribution d'étiquettes SimOTA (Simplified Optimal Transport Assignment), qui attribue dynamiquement des échantillons positifs aux objets de vérité terrain, réduisant ainsi l'instabilité de l'entraînement.
Conception sans ancres
YOLOX élimine le besoin de regroupement manuel des boîtes d'ancrage, une étape courante dans les versions précédentes de YOLO. Cela réduit le nombre d'hyperparamètres heuristiques et de choix de conception impliqués dans l'entraînement, ce qui rend le modèle plus robuste aux ensembles de données variés sans réglage approfondi.
Points forts et faiblesses
Points forts :
- Haute précision : La tête découplée et l’attribution avancée d’étiquettes permettent à YOLOX d’atteindre des scores de précision moyenne (mAP) concurrentiels, en particulier sur l'ensemble de données COCO.
- Flexibilité de la recherche : Sa conception simplifiée en fait une excellente base de référence pour les chercheurs qui expérimentent de nouvelles têtes de detection ou des stratégies d’affectation.
- Détection de petits objets : L'approche sans ancres peut parfois offrir de meilleures performances sur les petits objets par rapport aux systèmes rigides basés sur des ancres.
Faiblesses :
- Latence d’inférence : Bien que précise, la tête découplée introduit une légère surcharge de calcul, ce qui entraîne souvent des vitesses d’inférence plus lentes par rapport aux modèles industriels entièrement optimisés comme YOLOv6.
- Maturité de l'écosystème : Bien que le code soit open source, l'écosystème d'outils tiers, de guides de déploiement et de support communautaire est plus petit que celui d'Ultralytics YOLOv8 ou de YOLOv5.
Cas d'utilisation idéaux
YOLOX est particulièrement bien adapté à la recherche académique et aux scénarios où la précision est prioritaire par rapport à la vitesse d'inférence brute.
- Imagerie médicale : Analyse de structures complexes dans l'analyse d’images médicales où la précision est primordiale.
- Détection de défauts : identification d'anomalies subtiles dans la fabrication où les détections manquées sont coûteuses.
- Expérimentation académique : Servant de base de référence propre et sans ancres pour le développement de nouveaux algorithmes de vision par ordinateur.
YOLOv6-3.0 : Conçu pour la vitesse industrielle
Auteurs : Chuyi Li, Lulu Li, Yifei Geng, Hongliang Jiang, Meng Cheng, Bo Zhang, Zaidan Ke, Xiaoming Xu et Xiangxiang Chu
Organisation :Meituan
Date : 2023-01-13
Arxiv :https://arxiv.org/abs/2301.05586
GitHub :https://github.com/meituan/YOLOv6
Docs :https://docs.ultralytics.com/models/yolov6/
YOLOv6-3.0 est un détecteur d'objets spécialement conçu pour les applications industrielles réelles. La mise à jour "3.0", connue sous le nom de "Full-Scale Reloading", a introduit d'importantes améliorations architecturales pour maximiser le débit sur du matériel tel que les GPU NVIDIA.
Architecture et principales fonctionnalités
Le cœur de YOLOv6-3.0 est son utilisation intensive de la reparamétrisation. Le modèle utilise un backbone EfficientRep et un neck Rep-PAN, qui permettent au réseau d'avoir des structures complexes à branches multiples pendant l'entraînement, mais de s'effondrer en structures simples à chemin unique pendant l'inférence. Cette approche de type "RepVGG" garantit une capacité d'extraction de caractéristiques élevée sans la pénalité de latence d'exécution des branchements complexes.
De plus, YOLOv6-3.0 utilise l'apprentissage assisté par ancres (AAT), combinant les avantages des paradigmes basés sur les ancres et sans ancres pour stabiliser l'apprentissage et accélérer la convergence.
Points forts et faiblesses
Points forts :
- Vitesse exceptionnelle : Optimisé pour TensorRT, YOLOv6-3.0 offre une latence extrêmement faible, ce qui le rend idéal pour les applications à fréquence d’images élevée.
- Prêt pour le déploiement : Des fonctionnalités telles que la prise en charge de la quantification de modèle facilitent le déploiement sur les appareils périphériques et les serveurs.
- Efficacité : La technique de reparamétrisation offre un excellent équilibre entre les FLOPs et la précision.
Faiblesses :
- Intensité des ressources d'entraînement : L'architecture complexe au moment de l'entraînement (avant la reparamétrisation) peut nécessiter une mémoire GPU importante par rapport aux modèles plus simples.
- Portée de tâche limitée : YOLOv6 est principalement axé sur la détection. Il lui manque un support natif et intégré pour d'autres tâches comme l'estimation de pose ou les boîtes englobantes orientées (OBB) au sein de la même API transparente que l'on trouve dans les offres Ultralytics.
Cas d'utilisation idéaux
YOLOv6-3.0 excelle dans les environnements où la vitesse d'inférence en temps réel est une exigence stricte.
- Robotique autonome : Permettre aux robots de naviguer et de réagir instantanément aux environnements dynamiques.
- Inspection de chaîne de production : Inspection de la qualité à haute vitesse sur les chaînes de fabrication où le débit ne peut être compromis.
- Analyse vidéo : Traitement simultané de plusieurs flux vidéo pour les systèmes d’alarme de sécurité.
Comparaison directe des performances
La comparaison des métriques de performance sur le jeu de données COCO révèle des philosophies de conception distinctes. YOLOX offre une architecture simplifiée avec une précision respectable, tandis que YOLOv6-3.0 repousse les limites de la vitesse d'inférence grâce à l'optimisation structurelle.
| Modèle | Taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOv6-3.0n | 640 | 37.5 | - | 1.17 | 4.7 | 11.4 |
| YOLOv6-3.0s | 640 | 45.0 | - | 2.66 | 18.5 | 45.3 |
| YOLOv6-3.0m | 640 | 50.0 | - | 5.28 | 34.9 | 85.8 |
| YOLOv6-3.0l | 640 | 52.8 | - | 8.95 | 59.6 | 150.7 |
Les données soulignent que YOLOv6-3.0n est significativement plus rapide sur le matériel GPU (1,17 ms contre 2,56 ms pour YOLOXs) tout en conservant un mAP élevé. Pour les appareils aux ressources limitées où chaque mégaoctet compte, YOLOXnano reste une option intéressante avec moins de 1M de paramètres, bien que sa précision soit inférieure. Dans le haut de gamme, YOLOv6-3.0l surpasse YOLOXx en termes de précision (52,8 contre 51,1 mAP) et d'efficacité, en utilisant environ 40 % moins de paramètres.
Méthodologies de formation et écosystème
L'expérience utilisateur pour l'entraînement de ces modèles diffère considérablement.
YOLOX s’appuie sur de solides techniques d’augmentation des données comme Mosaic et MixUp pour obtenir ses résultats sans poids pré-entraînés. Son pipeline de formation est axé sur la recherche, offrant une flexibilité à ceux qui connaissent bien les configurations PyTorch.
YOLOv6-3.0 utilise l’auto-distillation, où un modèle enseignant plus grand guide le modèle étudiant pendant l’entraînement, améliorant ainsi la précision des modèles plus petits sans augmenter le coût d’inférence. Cette méthodologie est puissante, mais ajoute de la complexité à la configuration de l’entraînement.
Cependant, les développeurs qui privilégient un flux de travail rationalisé trouvent souvent l'écosystème Ultralytics supérieur. Contrairement aux outils fragmentés que l'on trouve souvent avec les modèles de recherche autonomes, Ultralytics fournit une plateforme unifiée.
- Facilité d’utilisation : Une simple API Python permet l’entraînement, la validation et l’inférence en quelques lignes de code.
- Écosystème bien maintenu : Des mises à jour fréquentes assurent la compatibilité avec les dernières versions de PyTorch, CUDA et les formats d'exportation comme ONNX et OpenVINO.
- Efficacité de l'entraînement : Les modèles Ultralytics sont optimisés pour une utilisation efficace de la mémoire, s'entraînant souvent plus rapidement et avec moins de mémoire GPU que les architectures comparables basées sur des transformateurs.
Facilité d'utilisation d'Ultralytics
L'entraînement d'un modèle de pointe avec Ultralytics est aussi simple que :
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.pt")
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
Conclusion : L'avantage Ultralytics
Bien que YOLOX offre une conception sans ancrage innovante adaptée à la recherche, et que YOLOv6-3.0 offre une vitesse impressionnante pour du matériel industriel spécifique, Ultralytics YOLO11 représente le summum de la technologie actuelle de vision par ordinateur.
YOLO11 et le YOLOv8 établi offrent un équilibre de performances supérieur, atteignant des scores mAP de pointe avec des vitesses d'inférence remarquables sur CPU et GPU. Contrairement aux concurrents limités principalement à la détection, les modèles Ultralytics offrent une polyvalence inégalée, prenant en charge nativement :
Pour les développeurs à la recherche d'une solution pérenne soutenue par un développement actif, une documentation complète et une communauté dynamique, Ultralytics reste le choix recommandé pour faire passer les projets du concept à la production.
Pour explorer d'autres comparaisons, pensez à lire YOLOv5 vs YOLOv6 ou YOLO11 vs RT-DETR.