YOLOv8 vs YOLOv5 : évolution de la détection d’objets en temps réel
Dans le monde trépidant de la vision par ordinateur, peu de noms résonnent aussi fortement que YOLO (You Only Look Once). Développés par Ultralytics, YOLOv5 et YOLOv8 représentent tous deux des moments clés dans l'histoire de la détection d'objets. Alors que YOLOv5 a établi la norme industrielle en matière de facilité d'utilisation et de vitesse lors de sa sortie en 2020, YOLOv8 a été lancé en 2023 pour repousser encore davantage les limites de la précision et de la flexibilité architecturale.
Cette comparaison complète explore les différences techniques, les évolutions architecturales et les métriques de performance de ces deux modèles puissants. Que vous mainteniez des systèmes existants ou que vous construisiez des solutions d'IA de pointe, il est essentiel de comprendre les nuances entre ces versions pour prendre des décisions de déploiement éclairées.
Évolution architecturale
La transition de YOLOv5 à YOLOv8 marque un changement important dans la philosophie de conception, passant des méthodes établies basées sur l'ancrage à une approche moderne sans ancrage. Cette évolution répond aux défis courants de l'entraînement des modèles et de la généralisation.
YOLOv5 : la norme basée sur l'ancrage
YOLOv5 utilise un schéma de détection basée sur des ancres. Cela signifie que le modèle prédit les décalages à partir de "boîtes d'ancrage" prédéfinies, adaptées à l'ensemble de données spécifique. Bien que très efficace, cette approche nécessite souvent de calculer les dimensions optimales des ancres pour les ensembles de données personnalisés, un processus connu sous le nom de "autoanchor".
- Backbone : Utilise un backbone CSPDarknet53 avec une couche Focus (dans les versions antérieures) ou une couche de tronc (dans les versions ultérieures) pour sous-échantillonner les images.
- Neck : Intègre un PANet (Path Aggregation Network) pour la fusion de fonctionnalités.
- Tête : Structure de tête couplée où les tâches de classification et de localisation partagent des caractéristiques jusqu'aux couches de sortie finales.
YOLOv8 : l’innovateur sans ancrage
YOLOv8 introduit une tête de détection sans ancres, éliminant le besoin de définitions manuelles des boîtes d'ancrage. Cela simplifie le pipeline d'entraînement et améliore les performances sur les objets avec des formes et des rapports d'aspect divers.
- Module C2f : Remplace le module C3 trouvé dans YOLOv5. Le module C2f (Cross-Stage Partial Bottleneck avec deux convolutions) est conçu pour améliorer le flux de gradient et les capacités d’extraction de caractéristiques tout en conservant un faible encombrement.
- Tête découplée : Contrairement à YOLOv5, YOLOv8 sépare les tâches d'objectivité, de classification et de régression en branches distinctes. Cela permet à chaque branche de se concentrer sur sa tâche spécifique, ce qui conduit à une plus grande précision et à une convergence plus rapide.
- Fonctions de perte : YOLOv8 utilise un assigneur aligné sur les tâches et une perte focale de distribution, affinant davantage la manière dont les échantillons positifs et négatifs sont traités pendant l'entraînement.
YOLO11 : La dernière génération
Bien que YOLOv8 offre des améliorations significatives par rapport à YOLOv5, Ultralytics continue d'innover. La version récemment publiée de YOLO11 offre une efficacité et une précision encore plus élevées. Pour les nouveaux projets, il est fortement recommandé d'explorer YOLO11 afin de garantir que votre application bénéficie des dernières avancées architecturales.
Analyse des performances
Lorsque l'on compare les performances, il est essentiel d'examiner à la fois la précision (mAP) et la vitesse d'inférence. Le tableau ci-dessous démontre que YOLOv8 atteint constamment une Précision Moyenne Moyenne (mAP) plus élevée sur l'ensemble de données COCO par rapport aux homologues YOLOv5 de taille similaire, souvent avec des vitesses d'inférence comparables ou meilleures.
| Modèle | Taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| 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 |
Points clés à retenir
- Saut de précision : YOLOv8n (Nano) réalise un bond massif en mAP (37,3) par rapport à YOLOv5n (28,0), ce qui rend le plus petit modèle v8 presque aussi précis que le plus grand YOLOv5s.
- Efficacité de calcul : Bien que les modèles YOLOv8 aient des FLOPs légèrement plus élevés dans certaines variantes, le compromis donne une précision disproportionnellement plus élevée, offrant un meilleur rendement sur l’investissement de calcul.
- Vitesse d'inférence : YOLOv5 reste extrêmement rapide, en particulier sur du matériel plus ancien ou des appareils périphériques purement basés sur le CPU. Cependant, YOLOv8 est optimisé pour les GPU et accélérateurs modernes comme TensorRT, ce qui réduit considérablement l'écart de vitesse.
Ultralytics YOLOv8 : Le concentré de puissance multitâche
Auteurs : Glenn Jocher, Ayush Chaurasia et Jing Qiu
Organisation :Ultralytics
Date : 2023-01-10
Docs :https://docs.ultralytics.com/models/yolov8/
GitHub :https://github.com/ultralytics/ultralytics
YOLOv8 a été conçu pour être une solution polyvalente tout-en-un pour la vision par ordinateur. Il prend en charge nativement un large éventail de tâches au-delà de la simple détection d’objets, y compris la segmentation d’instance, l’estimation de pose, la classification et la détection de boîtes englobantes orientées (obb).
Points forts
- Précision de pointe : Offre des performances de détection supérieures par rapport aux bancs d’essai standard comme COCO et Roboflow 100.
- Framework unifié : Basé sur
ultralyticsPackage Python, assurant une expérience fluide pour l'entraînement, validation, et de déploiement. - Convivial pour les développeurs : L’API est incroyablement intuitive. Le passage d’une tâche à l’autre (par exemple, de la détection à la segmentation) nécessite souvent de modifier un seul argument dans le CLI ou le code python.
- Efficacité de l'entraînement : Des fonctionnalités telles que l'augmentation « intelligente » des ensembles de données et le réglage automatique des hyperparamètres simplifient le parcours des données au modèle déployé.
Faiblesses
- Utilisation des ressources : Les variantes plus grandes (L et X) peuvent être plus gourmandes en ressources pendant l'entraînement par rapport à leurs prédécesseurs v5, nécessitant plus de VRAM sur les GPU.
Ultralytics YOLOv5 : La norme héritée
Auteur: Glenn Jocher
Organisation:Ultralytics
Date: 2020-06-26
Docs:https://docs.ultralytics.com/models/yolov5/
GitHub:https://github.com/ultralytics/yolov5
YOLOv5 a révolutionné l'accessibilité de l'IA. En tirant parti de PyTorch, il a rendu l'entraînement de détecteurs d'objets personnalisés accessible aux développeurs ayant une expérience limitée de l'apprentissage profond. Son écosystème est vaste, avec des milliers de tutoriels, d'intégrations et de déploiements dans le monde réel.
Points forts
- Stabilité éprouvée : Des années d'utilisation active dans des environnements de production ont fait de YOLOv5 l'un des modèles de vision les plus stables et fiables disponibles.
- Prise en charge étendue du déploiement : La prise en charge étendue des formats d’exportation, y compris ONNX, CoreML et TFLite, le rend idéal pour divers matériels cibles, des téléphones mobiles au Raspberry Pi.
- Écosystème communautaire : Une communauté massive garantit que les solutions à presque tous les cas extrêmes ou erreurs sont facilement disponibles dans les forums et les problèmes GitHub.
Faiblesses
- Plafond de précision inférieur : En tant que modèle de 2020, ses métriques de précision sont inférieures aux architectures plus récentes comme v8 et YOLO11.
- Gestion des ancres : Nécessite le calcul de la boîte d’ancrage, ce qui peut être un point de friction pour les utilisateurs avec des ensembles de données uniques ou très variables.
Intégration du code et facilité d'utilisation
L'une des caractéristiques des modèles Ultralytics est l'API partagée et rationalisée. Que vous choisissiez YOLOv8 pour sa précision ou YOLOv5 pour sa prise en charge héritée, le ultralytics package unifie le flux de travail. Cela réduit considérablement la barrière à l'entrée et permet une expérimentation facile.
Vous pouvez entraîner, valider et prédire avec seulement quelques lignes de code Python.
from ultralytics import YOLO
# Load a YOLOv8 model (recommended for new projects)
model_v8 = YOLO("yolov8n.pt")
# Train the model on the COCO8 dataset
results_v8 = model_v8.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
model_v8.predict("https://ultralytics.com/images/bus.jpg", save=True)
# Load a YOLOv5 model (automatically handled by the same package)
model_v5 = YOLO("yolov5su.pt") # 'u' suffix indicates updated v5 model structure
# The same API works for training and inference
results_v5 = model_v5.train(data="coco8.yaml", epochs=100, imgsz=640)
Avantages d’un écosystème unifié
En utilisant l'écosystème Ultralytics unifié, vous accédez à des outils puissants comme Ultralytics HUB pour l'entraînement et la visualisation de modèles sans code. Cette plateforme simplifie la gestion des ensembles de données et la collaboration, permettant aux équipes de se concentrer sur la résolution des problèmes plutôt que sur la gestion de l'infrastructure.
Recommandations de cas d'utilisation
Le choix entre YOLOv8 et YOLOv5 dépend des exigences spécifiques de votre projet, des contraintes matérielles et des objectifs de développement.
Quand choisir YOLOv8
- Nouveaux projets : Si vous partez de zéro, YOLOv8 (ou le plus récent YOLO11) est clairement le meilleur choix. Sa précision supérieure garantit que votre application reste compétitive et robuste.
- Tâches complexes : Pour les applications nécessitant une estimation de pose ou une segmentation, la prise en charge native multi-tâches de YOLOv8 est indispensable.
- Besoins de haute précision : Dans des domaines comme l’imagerie médicale ou la détection de défauts, le mAP amélioré de YOLOv8 peut réduire considérablement les faux négatifs.
Quand choisir YOLOv5
- Maintenance existante : Si vous avez un pipeline de production existant construit autour de YOLOv5 qui fonctionne bien, la migration peut ne pas être immédiatement nécessaire.
- Contraintes de périphérie extrêmes : Pour les appareils à très faible consommation d’énergie où chaque milliseconde de latence compte et où la précision est secondaire, les variantes YOLOv5 Nano plus légères pourraient encore avoir un léger avantage en termes de débit brut sur certains anciens CPU.
- Compatibilité des tutoriels : Si vous suivez un tutoriel ou un cours existant spécifique qui repose fortement sur la structure du référentiel YOLOv5 original.
Conclusion
YOLOv5 et YOLOv8 illustrent tous deux l'engagement d'Ultralytics à rendre l'IA accessible, rapide et précise. YOLOv5 a démocratisé la détection d'objets, en construisant une communauté massive et en établissant la norme en matière de convivialité. YOLOv8 s'appuie sur cette base, en introduisant des innovations architecturales qui offrent des performances et une polyvalence de pointe.
Pour la grande majorité des utilisateurs, YOLOv8—ou le YOLO11 encore plus avancé—est le choix recommandé. Il offre le meilleur équilibre entre vitesse et précision, soutenu par un écosystème logiciel moderne et riche en fonctionnalités qui simplifie l'ensemble du cycle de vie de l'apprentissage automatique.
Pour aller plus loin, consultez nos Guides pour obtenir des instructions détaillées sur le déploiement, ou visitez Ultralytics GitHub pour contribuer à l'avenir de l'IA de vision.