YOLOv5 vs. YOLOv8 : Une Comparaison Détaillée
La comparaison entre Ultralytics YOLOv5 et Ultralytics YOLOv8 pour la détection d'objets révèle des avancées significatives et des atouts distincts dans chaque modèle. Les deux modèles, développés par Ultralytics, sont réputés pour leur vitesse et leur précision, mais répondent à différents besoins et priorités des utilisateurs dans le domaine de la vision par ordinateur. Cette page fournit une comparaison technique pour aider les utilisateurs à prendre des décisions éclairées en fonction des exigences de leur projet, en soulignant les avantages de l'écosystème Ultralytics.
YOLOv5 : La norme établie et polyvalente
Auteur : Glenn Jocher
Organisation : Ultralytics
Date : 2020-06-26
GitHub : https://github.com/ultralytics/yolov5
Docs : https://docs.ultralytics.com/models/yolov5/
Ultralytics YOLOv5 est rapidement devenu une norme industrielle après sa sortie, salué pour son équilibre exceptionnel entre vitesse, précision et facilité d'utilisation. Construit entièrement en PyTorch, YOLOv5 dispose d'une architecture robuste avec un "backbone" CSPDarknet53 et un "neck" PANet pour une agrégation efficace des caractéristiques. Sa tête de détection basée sur des ancres est très efficace, et le modèle est disponible en différentes tailles (n, s, m, l, x), permettant aux développeurs de sélectionner le compromis optimal pour leurs besoins spécifiques en matière de performance et de calcul.
Points forts
- Vitesse et efficacité exceptionnelles : YOLOv5 est hautement optimisé pour une inférence rapide, ce qui en fait un choix de premier ordre pour les applications en temps réel sur divers matériels, des serveurs puissants aux appareils périphériques aux ressources limitées.
- Facilité d'utilisation : Reconnu pour son expérience utilisateur simplifiée, YOLOv5 offre des interfaces Python et CLI simples, soutenues par une documentation exhaustive.
- Écosystème mature et bien entretenu : En tant que modèle établi de longue date, il bénéficie d'une communauté vaste et active, de mises à jour fréquentes et d'une intégration transparente avec l'écosystème Ultralytics, y compris des outils tels que Ultralytics HUB pour l'entraînement sans code.
- Efficacité de l'entraînement : YOLOv5 offre un processus d'entraînement efficace avec des poids pré-entraînés facilement disponibles, ce qui permet des cycles de développement rapides. Il nécessite généralement moins de mémoire pour l'entraînement et l'inférence par rapport aux architectures plus complexes comme les transformateurs.
Faiblesses
- Détection basée sur les ancres : Son recours à des boîtes d'ancrage prédéfinies peut parfois nécessiter un réglage manuel pour obtenir des performances optimales sur les ensembles de données avec des objets de forme inhabituelle, contrairement aux détecteurs sans ancres modernes.
- Précision : Bien que très précis, les modèles plus récents comme YOLOv8 ont dépassé ses performances sur des bancs d’essai standard comme l’ensemble de données COCO.
Cas d'utilisation idéaux
La vitesse et l'efficacité de YOLOv5 le rendent parfait pour :
- Vidéosurveillance en temps réel et systèmes de sécurité.
- Déploiement sur des appareils périphériques tels que NVIDIA Jetson et Raspberry Pi.
- Automatisation industrielle et contrôle qualité dans le secteur de la fabrication.
- Prototypage rapide pour les projets de vision par ordinateur en raison de sa simplicité et de ses temps d’apprentissage rapides.
YOLOv8 : Le Framework de nouvelle génération à la pointe de la technologie
Auteurs : Glenn Jocher, Ayush Chaurasia et Jing Qiu
Organisation : Ultralytics
Date : 2023-01-10
GitHub : https://github.com/ultralytics/ultralytics
Docs : https://docs.ultralytics.com/models/yolov8/
Ultralytics YOLOv8 représente la prochaine évolution de la série YOLO, conçue comme un cadre unifié prenant en charge un spectre complet de tâches d'IA de vision. Au-delà de la détection d'objets, il excelle dans la segmentation d'instance, la classification d'images, l'estimation de pose et la détection d'objets orientés. YOLOv8 introduit des améliorations architecturales clés, telles qu'une tête de détection sans ancrage et un nouveau module C2f, pour offrir une performance de pointe.
Points forts
- Amélioration de la précision et de la vitesse : YOLOv8 offre un équilibre supérieur entre vitesse et précision, atteignant des scores mAP plus élevés que YOLOv5 dans toutes les tailles de modèles tout en conservant des vitesses d'inférence compétitives.
- Polyvalence : Sa prise en charge de plusieurs tâches de vision au sein d’un framework unique et cohérent en fait un outil incroyablement puissant et flexible pour le développement de systèmes d’IA complexes.
- Architecture moderne : La tête de détection sans ancrage simplifie la couche de sortie et améliore les performances en supprimant le besoin de réglage de la boîte d'ancrage.
- Écosystème bien maintenu : En tant que modèle phare, YOLOv8 bénéficie d'un développement actif, de mises à jour fréquentes et d'un fort soutien de la communauté. Il est entièrement intégré à l'écosystème Ultralytics, y compris la plateforme Ultralytics HUB pour un MLOps simplifié.
- Efficacité de la mémoire : Malgré son architecture avancée, YOLOv8 est optimisé pour une faible utilisation de la mémoire, ce qui le rend accessible sur une large gamme de matériel.
Faiblesses
- Demande de calcul : Les plus grands modèles YOLOv8 (par exemple, YOLOv8x) nécessitent des ressources de calcul importantes, ce qui pourrait être un facteur à prendre en compte pour le déploiement dans des environnements très contraints.
Cas d'utilisation idéaux
YOLOv8 est le choix recommandé pour les applications exigeant une précision et une flexibilité maximales :
- Robotique avancée nécessitant une compréhension complexe de la scène et une interaction multi-objets.
- Analyse d’images haute résolution pour l’imagerie médicale ou satellite où les détails précis sont essentiels.
- Systèmes de vision multi-tâches qui doivent effectuer simultanément la détection, la segmentation et l’estimation de la pose.
- Nouveaux projets où il est prioritaire de commencer avec le modèle le plus récent et le plus performant.
Benchmarks de performance : YOLOv5 contre YOLOv8
La différence de performance entre YOLOv5 et YOLOv8 est évidente lorsque l'on compare leurs métriques sur le jeu de données COCO. De manière générale, les modèles YOLOv8 démontrent une précision plus élevée (mAP) pour un nombre comparable de paramètres et un coût de calcul (FLOPs). Par exemple, YOLOv8n atteint un mAP de 37,3, correspondant presque à YOLOv5s (37,4 mAP) mais avec 68 % de paramètres en moins et une inférence CPU significativement plus rapide.
Cependant, YOLOv5 reste un concurrent redoutable, en particulier dans les scénarios où la vitesse brute du GPU est la priorité absolue. Le modèle YOLOv5n, par exemple, affiche le temps d'inférence le plus rapide sur un GPU T4. Cela en fait un excellent choix pour les applications en temps réel exécutées sur du matériel optimisé.
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 |
YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
Principales différences architecturales
L'évolution de YOLOv5 à YOLOv8 a introduit plusieurs changements architecturaux importants qui contribuent à ses performances et à sa flexibilité supérieures.
Backbone et Neck
YOLOv5 utilise le module C3 dans son backbone et son neck. En revanche, YOLOv8 le remplace par le module C2f. Le module C2f (Cross Stage Partial BottleNeck avec 2 convolutions) offre une fusion de caractéristiques plus efficace et un flux de gradient plus riche, ce qui améliore la précision globale du modèle.
Tête de détection
Une distinction majeure réside dans la tête de détection. YOLOv5 utilise une tête couplée, basée sur des ancres, ce qui signifie que le même ensemble de caractéristiques est utilisé à la fois pour la classification des objets et la régression des boîtes englobantes. YOLOv8 utilise une tête sans ancres découplée. Cette séparation des tâches (une tête pour la classification, une autre pour la régression) permet à chacune de se spécialiser, améliorant ainsi la précision. L'approche sans ancres simplifie également le processus d'entraînement et élimine le besoin d'ajuster les priors des boîtes d'ancrage, ce qui rend le modèle plus adaptable à différents ensembles de données.
Méthodologies de formation et écosystème
YOLOv5 et YOLOv8 sont tous deux basés sur PyTorch et tirent parti des pipelines d'entraînement rationalisés d'Ultralytics, offrant une expérience cohérente et conviviale.
- Facilité d'utilisation : Les deux modèles peuvent être facilement entraînés en utilisant l'interface CLI ou les interfaces Python fournies avec une configuration minimale. Une documentation complète (Docs YOLOv5, Docs YOLOv8) et des API simples rendent l'entraînement personnalisé simple.
- Entraînement efficace : Les scripts d'entraînement optimisés et les poids pré-entraînés facilement disponibles réduisent considérablement le temps d'entraînement et les coûts de calcul.
- Augmentation des données : Les deux modèles intègrent un ensemble robuste de techniques d’augmentation des données intégrées pour améliorer la généralisation du modèle et réduire le surapprentissage.
- Écosystème Ultralytics : L'intégration avec des outils tels que Ultralytics HUB et des plateformes de journalisation telles que TensorBoard et Comet simplifie le suivi des expériences, la gestion des modèles et le déploiement.
Conclusion : Quel modèle devriez-vous choisir ?
YOLOv5 et YOLOv8 sont tous deux des modèles de détection d'objets puissants développés par Ultralytics, offrant d'excellentes performances et une grande facilité d'utilisation. Le choix entre les deux dépend en grande partie des exigences spécifiques de votre projet.
-
YOLOv5 reste un concurrent solide et fiable, en particulier pour les applications où la maximisation de la vitesse d'inférence sur un matériel spécifique est essentielle. Sa maturité signifie qu'elle dispose d'un vaste écosystème et qu'elle a été testée au combat dans d'innombrables déploiements du monde réel. C'est un excellent choix pour les projets avec un budget de ressources serré ou ceux qui nécessitent un déploiement rapide sur des appareils périphériques.
-
YOLOv8 représente la pointe de la série YOLO, offrant une précision supérieure, une polyvalence accrue pour de multiples tâches de vision et une architecture plus moderne. Sa conception sans ancres et ses fonctionnalités avancées en font le choix idéal pour les nouveaux projets à la recherche de performances de pointe et de la flexibilité nécessaire pour gérer des défis d'IA complexes et multiformes.
Ultralytics continue d'innover, en veillant à ce que les deux modèles soient bien pris en charge, faciles à utiliser et offrent un excellent équilibre entre vitesse et précision, adaptés à divers scénarios du monde réel.
Explorer d'autres modèles Ultralytics
Pour les utilisateurs explorant d'autres options à la pointe de la technologie, Ultralytics propose également des modèles tels que YOLOv9, YOLOv10 et le dernier YOLO11, chacun offrant des avantages uniques en termes de performances et d'efficacité. D'autres comparaisons sont disponibles dans la documentation Ultralytics.