YOLO YOLOX : une analyse approfondie de la détection d'objets sans ancrage
L'évolution de la détection d'objets en temps réel a été marquée par le passage de systèmes complexes basés sur des ancrages à des architectures simplifiées sans ancrages. Deux étapes importantes dans cette évolution sont YOLO, développé par Alibaba Group, et YOLOX, créé par Megvii. Ces deux modèles remettent en question les paradigmes de conception traditionnels, en proposant des approches uniques en matière d'extraction de caractéristiques, d'attribution d'étiquettes et d'efficacité de formation.
Cette comparaison détaillée explore leurs innovations architecturales, leurs indicateurs de performance et leurs cas d'utilisation idéaux afin de vous aider à choisir le modèle qui correspond le mieux à vos besoins spécifiques en matière de vision par ordinateur. Bien que les deux modèles aient une importance historique, nous examinerons également comment des solutions modernes telles Ultralytics ont synthétisé ces avancées pour créer un écosystème plus robuste et prêt à être mis en production.
Présentation de DAMO-YOLO
YOLO (Distillation-Enhanced Neural Architecture Search-based YOLO) est une approche hautement performante qui combine la recherche d'architecture neuronale (NAS) avec des techniques d'entraînement avancées. Elle a été conçue pour repousser les limites de la vitesse et de la précision en automatisant la conception des structures backbone et neck.
- Auteurs : Xianzhe Xu, Yiqi Jiang, Weihua Chen, Yilun Huang, Yuan Zhang et Xiuyu Sun
- Organisation :Alibaba Group
- Date : 2022-11-23
- Arxiv :DAMO-YOLO : un rapport sur la conception de la detect d’objets en temps réel
- GitHub :Dépôt DAMO-YOLO
Principales caractéristiques deYOLO
- MAE-NAS Backbone : Contrairement aux backbones conçus manuellement,YOLO une approche d'auto-encodeur masqué (MAE) dans un cadre de recherche d'architecture neuronale. Il en résulte une structure hautement optimisée pour l'extraction de caractéristiques spatiales avec une surcharge de calcul minimale.
- RepGFPN efficace : le modèle utilise un réseau pyramidal généralisé reparamétré (RepGFPN). Cela améliore la fusion des caractéristiques à différentes échelles, ce qui est essentiel pour détecter des objets de tailles variables, tout en maintenant une faible latence d'inférence grâce à la reparamétrisation pendant le déploiement.
- ZeroHead : la tête de détection est considérablement simplifiée (« ZeroHead »), ce qui réduit le nombre de paramètres requis pour la régression et la classification finales du cadre de sélection.
- AlignedOTA : une stratégie dynamique d'attribution d'étiquettes appelée « Aligned One-to-Many Assignment » (attribution alignée un-à-plusieurs) garantit une attribution plus précise des échantillons positifs pendant l'entraînement, résolvant ainsi les ambiguïtés dans les scènes encombrées.
Amélioration par distillation
L'une des caractéristiques déterminantesYOLO est son recours intensif à la distillation des connaissances. Un modèle « enseignant » plus grand guide l'entraînement du modèle « élève » plus petit. Si cela améliore la précision, cela complique considérablement le processus d'entraînement par rapport aux méthodes d'entraînement standard de type « bag-of-freebies ».
Présentation de YOLOX
YOLOX a été une version charnière qui a introduit les mécanismes sans ancrage dans la YOLO grand public. En dissociant les têtes de prédiction et en supprimant les boîtes d'ancrage, elle a simplifié le processus de conception et amélioré les performances, en particulier pour les développeurs habitués à la complexité du réglage des ancrages.
- Auteurs : Zheng Ge, Songtao Liu, Feng Wang, Zeming Li et Jian Sun
- Organisation :Megvii
- Date : 2021-07-18
- Arxiv:YOLOX : Dépasser la série YOLO en 2021
- GitHub :Dépôt YOLOX
Principales caractéristiques de YOLOX
- Conception sans ancrage : en prédisant directement les centres des objets plutôt que les décalages par rapport à des boîtes d'ancrage prédéfinies, YOLOX élimine le besoin d'une analyse de regroupement (comme K-means) pour déterminer les formes d'ancrage optimales pour les ensembles de données personnalisés.
- Tête découplée : YOLOX sépare les tâches de classification et de localisation en différentes branches de la tête du réseau. Cette séparation résout le conflit entre les exigences en matière de caractéristiques pour classer un objet et celles pour déterminer ses limites précises.
- SimOTA : stratégie simplifiée d'affectation optimale des transports qui affecte dynamiquement des échantillons positifs en fonction d'un coût d'optimisation global, en équilibrant la qualité de la classification et de la régression.
- Augmentation importante des données : YOLOX utilise largement MixUp Mosaic et MixUp , qui ont joué un rôle crucial dans sa capacité à s'entraîner efficacement sans backbones pré-entraînés dans certaines configurations.
Comparaison technique : performances et vitesse
Lorsque l'on compare ces deux architectures,YOLO surpasseYOLO YOLOX en termes de compromis entre précision et latence, principalement parce qu'il a été lancé plus tard et qu'il intègre les technologies NAS. Cependant, YOLOX reste un favori en raison de la simplicité de son architecture et de la lisibilité de son code.
| Modèle | Taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| DAMO-YOLOt | 640 | 42.0 | - | 2.32 | 8.5 | 18.1 |
| DAMO-YOLOs | 640 | 46.0 | - | 3.45 | 16.3 | 37.8 |
| DAMO-YOLOm | 640 | 49.2 | - | 5.09 | 28.2 | 61.8 |
| DAMO-YOLOl | 640 | 50.8 | - | 7.18 | 42.1 | 97.3 |
| 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 |
Architecture et complexité de la formation
YOLOX est apprécié pour son implémentation « propre ». Il s'agit d'un PyTorch pur, facile à modifier à des fins de recherche. Son processus d'entraînement est simple et nécessite un réglage standard des hyperparamètres.
YOLO, en revanche, introduit une complexité importante. La dépendance à la recherche d'architecture neuronale (NAS) signifie que la structure de base n'est pas une structure standard fixe comme ResNet ou CSPDarknet. De plus, le processus de distillation nécessite d'abord de former un modèle enseignant lourd pour superviser le modèle étudiant léger. Cela double les ressources informatiques nécessaires à la formation et rend difficile pour les utilisateurs ayant GPU limité GPU de reproduire les résultats de l'article sur des ensembles de données personnalisés.
Ultralytics : au-delà des modèles de recherche
SiYOLO YOLOX offrent des informations académiques précieuses, le développement moderne des entreprises nécessite plus que de simples mesures brutes. Les développeurs ont besoin de stabilité, de facilité d'utilisation et d'un écosystème complet. C'est là que Ultralytics se distingue comme le choix idéal.
Facilité d'utilisation et écosystème inégalés
La formation d'unYOLO implique souvent des fichiers de configuration complexes et des pipelines de distillation en plusieurs étapes. En revanche, la Ultralytics et Python offrent une expérience « zéro à héros ». Que vous utilisiez l'interface CLI Python, le lancement d'une formation ne prend que quelques secondes.
from ultralytics import YOLO
# Load the latest YOLO26 model
model = YOLO("yolo26n.pt")
# Train on a dataset with a single command
results = model.train(data="coco8.yaml", epochs=100)
Ultralytics fait l'objet d'une maintenance active, garantissant sa compatibilité avec les dernières versions de PyTorch, CUDA et Apple Metal. Contrairement aux référentiels de recherche qui tombent souvent en désuétude après leur publication, Ultralytics bénéficient de mises à jour fréquentes, de corrections de bogues et d'optimisations des performances.
Équilibre des performances et polyvalence
YOLO26 représente le summum de l'efficacité. Il se caractérise par une conception de bout en bout NMS, une avancée révolutionnaire initiée pour la première fois dans YOLOv10. En éliminant le post-traitementNMS(Non-Maximum Suppression), YOLO26 réduit la variance de latence d'inférence et simplifie la logique de déploiement, résolvant ainsi un problème majeur rencontré à la fois dans YOLOX etYOLO.
De plus, YOLO26 est optimisé pour du matériel autre que les GPU de niveau serveur. Il offre CPU jusqu'à 43 % plus rapide, ce qui en fait le candidat idéal pour les appareils périphériques, les Raspberry Pi et les applications mobiles où l'autonomie de la batterie et les contraintes thermiques sont essentielles.
Alors que YOLOX etYOLO principalement des détecteurs d'objets, le Ultralytics offre une prise en charge native pour un large éventail de tâches :
- Segmentation d'instance
- Estimation de la pose (points clés)
- Boîte englobante orientée (Oriented Bounding Box, OBB)
- Classification d'images
Applications concrètes
Le choix du modèle approprié dépend fortement des contraintes spécifiques de votre environnement de déploiement.
Cas d'utilisation idéaux pourYOLO
- Serveurs à haut débit : la structure RepGFPN optimisée permet d'atteindre un nombre d'images par seconde très élevé sur du matériel dédié TensorRT(comme NVIDIA ou A100), ce qui la rend adaptée au traitement d'archives vidéo volumineuses.
- Scènes encombrées : l'attribution d'étiquettes AlignedOTA est utile dans les scénarios où les objets sont très occultés, par exemple pour compter les personnes dans une foule dense ou surveiller le bétail.
Cas d'utilisation idéaux pour YOLOX
- Recherche universitaire : son code source épuré en fait une excellente base de référence pour les chercheurs qui souhaitent tester de nouvelles fonctions de perte ou des modifications de backbone sans la surcharge du NAS.
- Prise en charge mobile héritée : les variantes YOLOX-Nano et Tiny utilisent des convolutions séparables en profondeur qui sont historiquement bien prises en charge sur Android anciens Android mobiles via NCNN.
Pourquoi Ultralytics est la norme moderne
Pour pratiquement tous les nouveaux projets commerciaux et industriels, YOLO26 est la solution recommandée.
- Edge Computing & IoT : la suppression de la perte focale de distribution (DFL) et les nouvelles fonctions ProgLoss + STAL rendent YOLO26 exceptionnellement stable sur les appareils à faible consommation d'énergie. Il excelle dans la robotique et la navigation par drone, où CPU sont précieux.
- Cycles de développement rapides : l'intégration avec la Ultralytics permet aux équipes d'étiqueter les données, d'entraîner des modèles et de les déployer dans des formats tels que ONNX ou CoreML un flux de travail unifié, ce qui réduit considérablement les délais de mise sur le marché.
- Tâches complexes : que vous ayez besoin de detect d'un colis (OBB) ou d'analyser la posture d'un travailleur (Pose), YOLO26 gère ces tâches complexes dans un cadre unique et économe en mémoire, contrairement àYOLO, qui est spécialisé uniquement dans la détection.
Conclusion
YOLO YOLOX ont tous deux joué un rôle crucial dans l'histoire de la détection d'objets, prouvant que les conceptions sans ancrage pouvaient atteindre des résultats de pointe. Cependant, ce domaine évolue rapidement.
Ultralytics s'appuie sur ces enseignements, en intégrant la stabilité de l'optimiseur MuSGD (inspiré de la formation LLM) et la simplicité d'une architecture NMS. Pour les développeurs à la recherche du meilleur équilibre entre précision, rapidité et facilité d'utilisation, YOLO26 offre une solution pérenne, soutenue par une communauté dynamique et une documentation complète.
Pour en savoir plus sur Ultralytics entre Ultralytics et d'autres architectures, consultez nos comparaisons avec EfficientDet, YOLOv6et RT-DETR.