YOLOX vs. YOLOv5 : Une comparaison technique
Dans le domaine en évolution rapide de la vision par ordinateur, la série YOLO (You Only Look Once) a constamment repoussé les limites de la détection d'objets en temps réel. Cette page fournit une comparaison technique détaillée entre deux modèles influents de cette série : YOLOX, développé par Megvii, et Ultralytics YOLOv5. Bien que les deux modèles offrent de puissantes capacités, ils sont construits sur des philosophies de conception différentes. YOLOX introduit une approche sans ancrage pour simplifier la tête de détection et améliorer les performances, tandis que YOLOv5 s'est imposé comme une norme industrielle reconnue pour son équilibre exceptionnel entre vitesse, précision et facilité d'utilisation.
Cette comparaison se penche sur leurs différences architecturales, leurs métriques de performance et leurs cas d'utilisation idéaux pour vous aider à sélectionner le modèle le plus adapté à votre projet, que vous accordiez la priorité à la précision brute, à la vitesse de déploiement ou à l'efficacité globale du développement.
YOLOX : Une alternative sans ancres et à hautes performances
YOLOX a été introduit le 18 juillet 2021 par des chercheurs de Megvii. Il présente une approche sans ancrage de la détection d'objets, visant des performances élevées avec une conception simplifiée par rapport aux méthodes traditionnelles basées sur l'ancrage. En éliminant les boîtes d'ancrage prédéfinies, YOLOX vise à réduire la complexité de la conception et à améliorer la généralisation sur différents ensembles de données.
Détails techniques :
- 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
- Documentation : https://yolox.readthedocs.io/en/latest/
Architecture et principales fonctionnalités
YOLOX se distingue par plusieurs innovations clés. Sa caractéristique principale est le mécanisme de détection sans ancres, qui prédit directement les propriétés des objets sans s'appuyer sur un ensemble de boîtes d'ancrage prédéfinies. Cela simplifie le pipeline d'entraînement et évite le besoin de réglage des ancres. L'architecture intègre également des têtes découplées pour les tâches de classification et de localisation, ce qui, selon les auteurs, améliore la convergence et la précision. De plus, YOLOX utilise une stratégie avancée d'attribution d'étiquettes appelée SimOTA pour attribuer dynamiquement des échantillons positifs pour l'entraînement, améliorant ainsi ses performances sur les objets difficiles.
Points forts
- Haute précision : YOLOX atteint une précision compétitive, surpassant souvent d’autres modèles de taille similaire sur des benchmarks comme COCO, grâce à sa tête découplée et à ses techniques avancées d’attribution d’étiquettes.
- Détection sans ancres : Cela simplifie le pipeline de détection et peut améliorer la généralisation en supprimant les dépendances vis-à-vis des configurations de boîtes d’ancrage, qui nécessitent souvent un réglage spécifique au domaine.
Faiblesses
- Complexité de l'implémentation : Bien que l'absence d'ancres simplifie un aspect, l'introduction de têtes découplées et de stratégies avancées comme SimOTA peut ajouter de la complexité à l'implémentation et à la compréhension du modèle.
- Écosystème externe : YOLOX ne fait pas partie de la suite Ultralytics, ce qui signifie qu'il ne dispose pas d'une intégration transparente avec des outils tels que Ultralytics HUB. Cela peut entraîner une courbe d'apprentissage plus abrupte par rapport à l'expérience Ultralytics unifiée et bien documentée.
- Vitesse du CPU : Comme on le voit dans les benchmarks de performance, la vitesse d'inférence sur le CPU pourrait être inférieure à celle des modèles hautement optimisés comme YOLOv5, en particulier pour les plus grandes variantes de YOLOX.
Cas d'utilisation
YOLOX est bien adapté aux applications où l’obtention de la plus grande précision possible est l’objectif principal :
- Conduite autonome : Sa haute précision est précieuse pour les tâches de perception dans les véhicules autonomes, où l'identification correcte de tous les objets est essentielle.
- Robotique avancée : Idéal pour les environnements complexes où les robots doivent effectuer une détection d’objets précise pour la navigation et l’interaction, comme exploré dans l’IA dans la robotique.
- Recherche : Sert de base solide pour la recherche universitaire et industrielle sur les méthodologies sans ancres et les techniques d’entraînement avancées dans la détection d’objets.
YOLOv5 : Le modèle polyvalent et largement adopté
Ultralytics YOLOv5, publié le 26 juin 2020, est devenu une norme industrielle, célébrée pour son excellent équilibre entre vitesse, précision et une remarquable facilité d'utilisation. Développé par Glenn Jocher chez Ultralytics, il est entièrement construit en PyTorch, le rendant très accessible à une large communauté de développeurs et de chercheurs.
Détails techniques :
- Auteur : Glenn Jocher
- Organisation : Ultralytics
- Date : 2020-06-26
- GitHub : https://github.com/ultralytics/yolov5
- Documentation : https://docs.ultralytics.com/models/yolov5/
Architecture et principales fonctionnalités
YOLOv5 utilise un backbone CSPDarknet53 pour l'extraction de caractéristiques et un neck PANet pour l'agrégation de caractéristiques, une combinaison éprouvée pour une détection d'objets efficace. Son architecture est hautement évolutive, offerte en différentes tailles (n, s, m, l, x) pour répondre à différents budgets de calcul et besoins de performance. Contrairement à YOLOX, il utilise une tête de détection basée sur des ancres, qui est hautement optimisée pour la vitesse. Le modèle fait partie d'un écosystème complet qui comprend une API Python simple, une documentation exhaustive et la plateforme sans code Ultralytics HUB pour l'entraînement et le déploiement.
Points forts
- Vitesse d'inférence exceptionnelle : YOLOv5 est hautement optimisé pour une détection rapide, ce qui en fait un choix de premier ordre pour les systèmes en temps réel sur le matériel CPU et GPU.
- Facilité d'utilisation : Reconnu pour son API simple, sa documentation complète et son intégration transparente au sein de l'écosystème Ultralytics, ce qui réduit considérablement la barrière à l'entrée pour les développeurs.
- Écosystème mature : Bénéficie d’une communauté vaste et active, de mises à jour fréquentes et de nombreuses ressources, y compris des poids pré-entraînés facilement disponibles.
- Efficacité de l'entraînement : Le processus d'entraînement est très efficace, avec des temps de convergence plus rapides et des besoins en mémoire généralement inférieurs par rapport aux architectures plus complexes.
- Polyvalence : YOLOv5 prend en charge plusieurs tâches de vision au-delà de la détection, notamment la segmentation d'instance et la classification d'images au sein du même framework.
Faiblesses
- Détection basée sur les ancres : Repose sur des boîtes d'ancrage, ce qui peut nécessiter un réglage pour des performances optimales sur les ensembles de données avec des objets de forme ou d'échelle inhabituelle par rapport aux détecteurs sans ancres.
- Compromis en matière de précision : Bien qu’offrant un équilibre fantastique, les modèles YOLOv5 plus petits privilégient la vitesse, ce qui peut entraîner une précision légèrement inférieure par rapport aux modèles plus grands ou aux architectures plus récentes conçues uniquement pour une précision maximale.
Cas d'utilisation
La polyvalence et l'efficacité de YOLOv5 le rendent adapté à un large éventail de domaines :
- Edge Computing : Sa vitesse et la taille réduite de ses modèles le rendent parfait pour un déploiement sur des appareils aux ressources limitées comme Raspberry Pi et NVIDIA Jetson.
- Automatisation industrielle : Optimise le contrôle qualité et l’automatisation des processus dans la fabrication, par exemple en améliorant l'efficacité du recyclage.
- Sécurité et surveillance : Permet une surveillance en temps réel dans les systèmes de sécurité pour des applications telles que la prévention du vol.
- Applications mobiles : Convient aux tâches de détection d’objets sur l’appareil où une faible latence et une grande efficacité sont essentielles.
Comparaison directe des performances : Vitesse contre précision
Lors de la comparaison de YOLOX et YOLOv5, un compromis clair entre la précision et la vitesse se dégage. Les modèles YOLOX atteignent généralement un score mAPval plus élevé pour une taille de modèle donnée, ce qui démontre l'efficacité de sa conception sans ancrage et de ses stratégies d'entraînement avancées. Par exemple, YOLOX-x atteint 51,1 mAP, dépassant légèrement YOLOv5x.
Cependant, Ultralytics YOLOv5 possède un avantage significatif en termes de vitesse d'inférence. Les modèles YOLOv5 plus petits, comme YOLOv5n, sont exceptionnellement rapides sur CPU et GPU, ce qui les rend idéaux pour les applications en temps réel sur les appareils périphériques. Le tableau des performances montre que YOLOv5n atteint une latence TensorRT de seulement 1,12 ms, ce qui est plus de deux fois plus rapide que YOLOX-s. Cette efficacité fait de YOLOv5 un choix plus pratique pour de nombreux environnements de production où la vitesse est une contrainte essentielle.
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 |
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 |
Conclusion : Quel modèle devriez-vous choisir ?
YOLOX et YOLOv5 sont tous deux de puissants modèles de détection d'objets, mais ils répondent à des priorités différentes. YOLOX est un excellent choix pour les chercheurs et les développeurs qui privilégient la précision maximale et qui souhaitent explorer les avantages des architectures sans ancrage. Ses solides performances en matière de benchmarks en font un modèle redoutable pour les tâches où la précision est primordiale.
Cependant, pour la grande majorité des applications du monde réel, Ultralytics YOLOv5 présente un ensemble global plus intéressant. Ses principaux avantages résident dans son exceptionnelle vitesse, sa facilité d'utilisation et son écosystème robuste. Les développeurs peuvent démarrer rapidement grâce à une documentation complète, une API simple et un processus de formation simplifié. L'efficacité du modèle le rend très pratique pour le déploiement, en particulier dans les scénarios de calcul en temps réel et en périphérie.
De plus, le développement continu et le support d'Ultralytics signifient que les utilisateurs bénéficient d'un framework bien maintenu et en constante amélioration. Pour ceux qui recherchent des performances de pointe combinées à la facilité d'utilisation et à la polyvalence, il est également fortement recommandé d'explorer les nouveaux modèles Ultralytics tels que YOLOv8 et YOLO11, car ils s'appuient sur les bases solides de YOLOv5 pour offrir des capacités encore plus grandes.
Autres comparaisons de modèles
Si vous souhaitez comparer ces modèles avec d'autres, consultez ces pages :