YOLOv8 vs YOLOv5: évolution de la détection d'objets en temps réel
Dans le monde en pleine évolution de la vision par ordinateur, peu de noms résonnent aussi fort que celui de YOLO (You Only Look Once). Développé par UltralyticsYOLOv5 et YOLOv8 représentent des moments cruciaux dans l'histoire de la détection d'objets. Alors que YOLOv5 a établi la norme de l'industrie en matière de facilité d'utilisation et de rapidité lors de sa sortie en 2020, YOLOv8 a été lancé en 2023 pour repousser encore plus loin 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 mesures 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
Le passage de YOLOv5 à YOLOv8 marque un changement important dans la philosophie de conception, passant de méthodes basées sur l'ancrage à une approche moderne sans ancrage. Cette évolution permet de relever des défis courants en matière de formation et de généralisation des modèles.
YOLOv5: la norme ancrée dans la réalité
YOLOv5 utilise un schéma de détection basé sur l'ancrage. 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 d'ancrage optimales pour les ensembles de données personnalisés, un processus connu sous le nom d'"auto-ancrage".
- Réseau : Utilise un backbone CSPDarknet53 avec une couche Focus (dans les versions antérieures) ou une couche stem (dans les versions ultérieures) pour sous-échantillonner les images.
- Cou : Incorpore un PANet (Path Aggregation Network) pour la fusion des caractéristiques.
- 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 ancrage, ce qui élimine la nécessité de définir manuellement des boîtes d'ancrage. Cela simplifie le pipeline d'apprentissage et améliore les performances sur des objets de formes et de rapports d'aspect variés.
- Module C2f : Remplace le module C3 présent dans YOLOv5. Le module C2f (Cross-Stage Partial Bottleneck with two convolutions) est conçu pour améliorer le flux de gradient et les capacités d'extraction de caractéristiques tout en conservant une empreinte légère.
- Tête découplée : contrairement à YOLOv5, YOLOv8 sépare les tâches d'objectivation, de classification et de régression en branches distinctes. Cela permet à chaque branche de se concentrer sur sa tâche spécifique, ce qui se traduit par une plus grande précision et une convergence plus rapide.
- Fonctions de perte : YOLOv8 utilise un assesseur aligné sur les tâches et une perte focale de distribution, ce qui permet d'affiner la manière dont les échantillons positifs et négatifs sont traités pendant la formation.
YOLO11: La dernière génération
Alors que YOLOv8 offre des améliorations significatives par rapport à YOLOv5, Ultralytics continue d'innover. La nouvelle version de YOLO11 qui vient de sortir, offre une efficacité et une précision encore plus grandes. Pour les nouveaux projets, il est fortement recommandé d'explorer YOLO11 afin de s'assurer que votre application bénéficie des dernières avancées architecturales.
Analyse des performances
Lors de la comparaison des performances, il est essentiel d'examiner à la fois la précisionmAP) et la vitesse d'inférence. Le tableau ci-dessous montre que YOLOv8 atteint systématiquement une précision moyenne plus élevée (mAP) sur l'ensemble de donnéesCOCO que ses homologues YOLOv5 de taille similaire, souvent avec des vitesses d'inférence comparables ou supérieures.
| 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 saut massif de mAP (37,3) par rapport à YOLOv5n (28,0), ce qui rend le plus petit modèle v8 presque aussi précis que les plus grands YOLOv5s.
- Efficacité de calcul : Bien que les modèles YOLOv8 aient un nombre de FLOP légèrement plus élevé dans certaines variantes, le compromis permet d'obtenir une précision disproportionnée, ce qui se traduit par un meilleur retour sur l'investissement en matière de calcul.
- Vitesse d'inférence : YOLOv5 reste extrêmement rapide, en particulier sur du matériel plus ancien ou sur des appareils périphériques purement CPU. Cependant, YOLOv8 est optimisé pour les GPU modernes et les accélérateurs tels que TensorRTce qui réduit considérablement l'écart de vitesse.
Ultralytics YOLOv8: la centrale multi-tâches
Auteurs : Glenn Jocher, Ayush Chaurasia et Jing Qiu
Organisation :Ultralytics
Date : 2023-01-10
Docsyolov8
GitHubultralytics
YOLOv8 a été conçu pour être une solution polyvalente et tout-en-un pour la vision par ordinateur. Il prend en charge de manière native un large éventail de tâches allant au-delà de la simple détection d'objets, notamment la segmentation d'instances, l'estimation de la pose, la classification et la détection de boîtes de délimitation orientées (OBB).
Points forts
- Précision de pointe : Offre des performances de détection supérieures sur des critères de référence standard tels que COCO et Roboflow 100.
- Cadre unifié : Construit sur le
ultralyticsPython , ce qui garantit une expérience transparente pour la formation, validationet le déploiement. - Convivialité pour les développeurs : l'API est incroyablement intuitive. Pour passer d'une tâche à l'autre (par exemple, de la détection à la segmentation), il suffit souvent de modifier un seul argument dans l'CLI ou le code Python .
- Efficacité de la formation : Des fonctionnalités telles que l'augmentation "intelligente" des ensembles de données et le réglage automatique des hyperparamètres rationalisent le passage des données au modèle déployé.
Faiblesses
- Utilisation des ressources : Les variantes les plus grandes (L et X) peuvent être plus gourmandes en ressources lors de l'entraînement que leurs prédécesseurs v5, car elles nécessitent plus de VRAM sur les GPU.
Ultralytics YOLOv5: La norme de l'héritage
Auteur : Glenn Jocher
Organisation :Ultralytics
Date : 2020-06-26
Docsyolov5
GitHubyolov5
YOLOv5 a révolutionné l'accessibilité de l'IA. En s'appuyant sur PyTorchil a rendu la formation 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 les plus fiables qui soient.
- Prise en charge d'un grand nombre de déploiements : Prise en charge étendue des formats d'exportation, notamment ONNXCoreML et TFLite , ce qui en fait un outil idéal pour diverses cibles matérielles, des téléphones portables au Raspberry Pi.
- Écosystème communautaire : Une communauté massive garantit que les solutions à presque tous les cas de figure 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 mesures de précision sont inférieures à celles des architectures plus récentes telles que 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 ayant 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 de l'héritage, l'API ultralytics unifie le flux de travail. Cela réduit considérablement la barrière à l'entrée et facilite l'expérimentation.
Quelques lignes de code Python suffisent pour former, valider et prédire.
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 de l'écosystème unifié
En utilisant l'écosystème unifié d'Ultralytics , vous avez accès à des outils puissants comme Ultralytics HUB pour la formation 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 les versions plus récentes de YOLO11) est le vainqueur incontesté. Sa précision supérieure permet à votre application de rester compétitive et robuste.
- Tâches complexes : Pour les applications nécessitant une estimation de la pose ou une segmentation, le support multi-tâches natif de YOLOv8 est indispensable.
- Besoins de haute précision : Dans des domaines tels que l'imagerie médicale ou la détection de défauts, la mAP améliorée de YOLOv8 peut réduire de manière significative les faux négatifs.
Quand choisir YOLOv5
- Maintenance de l'héritage : Si vous disposez d'un pipeline de production existant basé sur YOLOv5 qui fonctionne bien, la migration n'est peut-être pas nécessaire dans l'immédiat.
- Contraintes extrêmes : Pour les appareils à très faible consommation où chaque milliseconde de latence compte et où la précision est secondaire, les variantes plus légères du YOLOv5 Nano peuvent encore avoir un léger avantage en termes de débit brut sur certains processeurs plus anciens.
- Compatibilité avec les didacticiels : Si vous suivez un cours ou un tutoriel spécifique qui s'appuie fortement sur la structure originale du référentiel YOLOv5 .
Conclusion
YOLOv5 et YOLOv8 illustrent l'engagement d'Ultralytics à rendre l'IA accessible, rapide et précise. YOLOv5 a démocratisé la détection d'objets, en créant une communauté massive et en établissant la norme en matière de facilité d'utilisation. 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 logiciel encore plus avancé YOLO11-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 en savoir plus, consultez nos guides pour obtenir des instructions détaillées sur le déploiement, ou visitez le GitHubUltralytics pour contribuer à l'avenir de l'IA visionnaire.