YOLOv5 vs YOLOX : changements architecturaux et mesures de performance
Le paysage de la détection d'objets a évolué rapidement, diverses architectures rivalisant pour trouver l'équilibre optimal entre la vitesse d'inférence et la précision de la détection. Deux étapes importantes de cette évolution sont YOLOv5développé par Ultralytics, et YOLOX, un modèle de Megvii axé sur la recherche. Bien que ces deux modèles soient issus de la lignée "You Only Look Once", ils divergent considérablement dans leurs philosophies architecturales, notamment en ce qui concerne les mécanismes de détection basés sur les ancres ou sans ancres.
Cette comparaison explore les spécifications techniques, les différences architecturales et les mesures de performance des deux modèles afin d'aider les développeurs et les chercheurs à choisir l'outil adéquat pour leurs projets de vision par ordinateur.
Ultralytics YOLOv5: La norme d'ingénierie
Lancé en 2020, YOLOv5 est rapidement devenu la norme de l'industrie en matière de détection pratique d'objets. Contrairement à ses prédécesseurs, qui étaient principalement des projets de recherche universitaires, YOLOv5 a été conçu en mettant l'accent sur la convivialité, la facilité de déploiement et les performances dans le monde réel. Il a introduit un flux de travail simplifié PyTorch qui a rendu la formation et le déploiement de modèles personnalisés accessibles à un public plus large.
- Auteurs : Glenn Jocher
- Organisation :Ultralytics
- Date : 2020-06-26
- GitHub :https://github.com/ultralytics/yolov5
- Docs :https://docs.ultralytics.com/models/yolov5/
YOLOv5 emploie une architecture basée sur les ancres, utilisant des boîtes d'ancrage prédéfinies pour prédire l'emplacement des objets. Il intègre une fonction "AutoAnchor" qui fait évoluer les formes d'ancrage pour les adapter à des ensembles de données personnalisés avant l'entraînement, ce qui garantit une convergence optimale. Le modèle comporte une colonne vertébrale CSPNet et un cou PANet, optimisés pour une extraction et une agrégation rapides des caractéristiques. Sa principale force réside dans sa vitesse d'inférence exceptionnelle et sa faible empreinte mémoire, ce qui le rend idéal pour les applications mobiles et de calcul en périphérie.
YOLOX : Le concurrent sans ancrage
YOLOX, lancé en 2021 par Megvii, a cherché à repousser les limites de la famille YOLO en adoptant une conception sans ancrage. Cette approche élimine le besoin de boîtes d'ancrage prédéfinies et permet de prédire directement le centre et la taille des objets. Ce changement vise à simplifier le processus de conception et à améliorer la généralisation à diverses formes d'objets.
- 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/
YOLOX introduit une architecture de tête découplée, séparant les tâches de classification et de régression en différentes branches. Cela permet théoriquement au modèle d'apprendre des représentations de caractéristiques distinctes pour identifier ce qu' est un objet par rapport à l'endroit où il se trouve. En outre, il utilise une stratégie avancée d'attribution d'étiquettes connue sous le nom de SimOTA (Simplified Optimal Transport Assignment) pour attribuer dynamiquement des échantillons positifs pendant la formation. Si ces innovations contribuent à une grande précision, elles s'accompagnent souvent d'une complexité informatique accrue.
À la recherche des dernières technologies ?
Si YOLOv5 et YOLOX représentent des étapes importantes dans l'histoire de la vision par ordinateur, le domaine évolue rapidement. YOLO11le dernier modèle d'Ultralytics, offre une précision et une vitesse supérieures à celles des deux autres, grâce à une architecture raffinée qui prend en charge la détection, la segmentation, l'estimation de la pose et bien plus encore.
Analyse des performances : Vitesse vs. Précision
Lorsque l'on compare YOLOv5 et YOLOX, le compromis porte généralement sur la latence de l'inférence par rapport à la précision absolue. YOLOv5 est méticuleusement optimisé pour la vitesse, en particulier sur les accélérateurs matériels utilisant TensorRT et ONNX Runtime. Comme le montrent les données ci-dessous, les modèles YOLOv5 présentent une latence significativement plus faible (vitesse plus élevée) pour des tailles de modèles équivalentes.
| 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 |
Points clés à retenir
- Vitesse d'inférence : YOLOv5 possède un avantage décisif en termes de vitesse. Par exemple, YOLOv5n atteint une latence TensorRT de seulement 1,12 ms, ce qui le rend exceptionnellement adapté au traitement vidéo à haute fréquence sur des appareils de pointe tels que le NVIDIA Jetson. En revanche, les plus petits modèles YOLOX ne disposent pas de données de référence comparables pour le CPU, et leur latence GPU est généralement plus élevée pour des niveaux de précision similaires.
- Précision (mAP) : YOLOX a tendance à obtenir une précision légèrement supérieure à celle des autres produits. mAP légèrement plus élevés sur l'ensemble de données COCO , en particulier avec ses variantes les plus grandes (YOLOX-x à 51,1 contre YOLOv5x à 50,7). Ce résultat est attribué à sa conception sans ancrage et à sa tête découplée, qui peut mieux gérer les variations d'objets. Toutefois, ce gain marginal se fait souvent au prix d'un surcoût de calcul (FLOP) nettement plus élevé.
- Efficacité : Les modèles YOLOv5 nécessitent généralement moins de FLOP pour une vitesse d'inférence donnée. La conception de la tête couplée de YOLOv5 est plus adaptée au matériel, ce qui permet une exécution plus rapide sur les CPU et les GPU.
Plongée architecturale en profondeur
La différence fondamentale réside dans la manière dont chaque modèle aborde le problème de la détection.
YOLOv5 (basé sur les ancres) : YOLOv5 utilise un ensemble prédéfini de boîtes d'ancrage. Au cours de la formation, le modèle apprend à ajuster ces boîtes pour qu'elles s'adaptent aux objets. Cette méthode repose sur la corrélation entre la taille de l'objet et la taille des cellules de la grille.
- Avantages : Formation stable, méthodologie établie, excellentes performances sur des ensembles de données standard.
- Inconvénients : nécessite un réglage des hyperparamètres pour les ancres sur des ensembles de données exotiques (bien que l'AutoAnchor de YOLOv5 atténue ce problème).
YOLOX (sans ancrage) : YOLOX traite la détection d'objets comme un problème de régression ponctuelle. Il prédit la distance entre le centre de la cellule de la grille et les limites de l'objet.
- Avantages : Réduit le nombre de paramètres de conception (pas de points d'ancrage à régler), possibilité d'une meilleure généralisation pour les rapports d'aspect irréguliers.
- Inconvénients : la convergence peut être plus lente pendant l'entraînement, et la tête découplée ajoute des couches qui augmentent la latence de l'inférence.
Expérience de l'utilisateur et écosystème
L'une des caractéristiques les plus marquantes de la technologie Ultralytics YOLOv5 est son solide écosystème. Alors que YOLOX fournit une base académique solide, YOLOv5 offre un cadre prêt à l'emploi conçu pour les développeurs.
Facilité d'utilisation
YOLOv5 est réputé pour sa simplicité "du début à la fin". De l'annotation des données à la formation et au déploiement du modèle, l'écosystème Ultralytics rationalise chaque étape. Le modèle peut être chargé avec quelques lignes de code, et il prend en charge l'exportation automatique vers des formats tels que TFLite, CoreMLet ONNX.
import torch
# Load a pretrained YOLOv5s model from PyTorch Hub
model = torch.hub.load("ultralytics/yolov5", "yolov5s")
# Run inference on an image
results = model("https://ultralytics.com/images/zidane.jpg")
# Print results
results.print()
Polyvalence et entretien
Les modèles Ultralytics ne se limitent pas à la détection. Le cadre prend en charge la classification des images et la segmentation des instances, offrant une API unifiée pour de multiples tâches. Cette polyvalence fait souvent défaut dans les référentiels spécifiques à la recherche tels que YOLOX, qui se concentrent principalement sur la détection. En outre, la maintenance active d'Ultralytics garantit la compatibilité avec les dernières versions de PyTorch et de CUDA, réduisant ainsi le "pourrissement du code" au fil du temps.
Cas d'utilisation idéaux
Choisissez Ultralytics YOLOv5 si :
- Vous avez besoin de performances en temps réel sur des appareils périphériques (Raspberry Pi, téléphones mobiles).
- Vous privilégiez la facilité de déploiement et avez besoin d'une prise en charge intégrée pour l'exportation vers TensorRT, CoreML ou TFLite.
- Vous préférez un cadre stable, bien documenté et soutenu par une communauté active.
- Votre application concerne la surveillance de la sécurité ou la navigation autonome où une faible latence est essentielle.
Choisissez YOLOX si :
- Vous menez des recherches universitaires portant spécifiquement sur les architectures sans ancrage.
- Vous avez besoin du maximum absolu de mAP pour un concours ou un benchmark, quelle que soit la vitesse d'inférence.
- Vous disposez d'un jeu de données spécialisé pour lequel les méthodes basées sur l'ancrage ont manifestement échoué (par exemple, des rapports d'aspect extrêmes) et AutoAnchor n'a pas résolu le problème.
Conclusion
YOLOv5 et YOLOX ont tous deux gagné leur place dans l'histoire de la vision par ordinateur. YOLOX a démontré la viabilité des détecteurs sans ancrage dans la famille YOLO , offrant une base solide pour la recherche universitaire. Cependant, pour la grande majorité des applications pratiques, Ultralytics YOLOv5 reste le meilleur choix en raison de sa vitesse inégalée, de son efficacité et de son écosystème convivial pour les développeurs.
Pour ceux qui démarrent de nouveaux projets aujourd'hui, nous recommandons vivement d'explorer YOLO11. Il s'appuie sur les points forts de YOLOv5d'utilisation et rapidité - tout en intégrant des avancées architecturales modernes qui surpassent à la fois YOLOv5 et YOLOX en termes de précision et de polyvalence.
Autres comparaisons de modèles
Découvrez comment les modèles Ultralytics se comparent à d'autres architectures dans ce domaine :