YOLOv8 vs YOLOv5#
Choisir la bonne architecture de vision par ordinateur est une étape essentielle pour créer des pipelines de machine learning robustes. Dans cette comparaison technique détaillée, nous examinons les différences entre deux des modèles les plus populaires de l'écosystème de l'IA visuelle : YOLOv8 et YOLOv5. Les deux modèles ont été développés par Ultralytics et ont profondément influencé le domaine de la détection d'objets en temps réel, en établissant des références pour la vitesse, la précision et la facilité d'utilisation.
Que tu déploies sur des appareils edge ou que tu mettes à l'échelle l'inférence dans le cloud, comprendre les évolutions architecturales, les métriques de performance et les méthodologies d'entraînement de ces modèles t'aidera à prendre une décision éclairée pour tes projets de vision par ordinateur.
Ultralytics YOLOv8 : la référence polyvalente#
Sorti au début de 2023, YOLOv8 représentait une évolution architecturale majeure par rapport à ses prédécesseurs. Il a été conçu dès le départ comme un framework unifié capable de gérer nativement plusieurs tâches de vision, notamment la segmentation d'instances, la classification d'images et l'estimation de pose.
- Auteurs : Glenn Jocher, Ayush Chaurasia et Jing Qiu
- Organisation : Ultralytics
- Date : 2023-01-10
- GitHub : ultralytics/ultralytics
- Documentation : Documentation de YOLOv8
Architecture et méthodologies#
YOLOv8 a introduit une tête de détection sans ancres, ce qui simplifie le processus d'entraînement en éliminant la nécessité de configurer manuellement les boîtes d'ancrage en fonction de la distribution du jeu de données. Cela rend le modèle plus robuste lors de la généralisation à des jeux de données personnalisés et réduit le nombre de prédictions de boîtes, accélérant ainsi la suppression non maximale (NMS).
L'architecture intègre un module C2f (goulot d'étranglement partiel entre étapes avec deux convolutions), qui remplace le module C3 présent dans YOLOv5. Le module C2f améliore le flux des gradients et permet au modèle d'apprendre des représentations de caractéristiques plus riches sans augmentation significative du coût de calcul. De plus, YOLOv8 utilise une structure à tête découplée, séparant les tâches d'objectness, de classification et de régression, ce qui améliore la vitesse de convergence et la précision.
Les modèles Ultralytics YOLO, notamment YOLOv8, sont optimisés pour réduire l'utilisation de la mémoire CUDA pendant l'entraînement par rapport à de nombreuses alternatives basées sur Transformer comme RT-DETR. Cela permet aux développeurs d'utiliser des tailles de lot plus importantes sur des GPU grand public classiques comme ceux de la série NVIDIA RTX.
Forces et faiblesses#
Points forts :
- Une polyvalence inégalée pour de nombreuses tâches allant au-delà de la simple détection de boîtes englobantes.
- Une API Python simplifiée via le paquet
ultralytics, rendant l'entraînement et l'exportation très intuitifs. - Une précision moyenne (mAP) supérieure pour toutes les variantes de taille par rapport à YOLOv5.
Points faibles :
- La tête découplée et le module C2f entraînent une légère augmentation du nombre de paramètres et des FLOPs pour certaines variantes par rapport à leurs équivalents exacts de YOLOv5.
Ultralytics YOLOv5 : le pionnier agile#
Introduit en 2020, YOLOv5 a intégré YOLO à l'écosystème PyTorch, améliorant considérablement son accessibilité pour les développeurs. Il est rapidement devenu la référence du secteur pour les modèles de détection d'objets rapides, fiables et faciles à déployer.
- Auteur : Glenn Jocher
- Organisation : Ultralytics
- Date : 2020-06-26
- GitHub : ultralytics/yolov5
- Documentation : Documentation de YOLOv5
Architecture et méthodologies#
YOLOv5 repose sur une architecture à ancres et utilise un backbone CSPDarknet53 modifié. Bien que les approches à ancres nécessitent un regroupement minutieux des boîtes englobantes du jeu de données afin de définir les ancres optimales avant l'entraînement, elles sont très efficaces pour des jeux de données spécifiques et bien définis.
YOLOv5 intègre le module C3, qui extrait efficacement les caractéristiques tout en conservant un faible nombre de paramètres. Sa fonction de perte repose largement sur la perte d'objectness, combinée aux pertes de classification et de régression des boîtes englobantes, afin de guider le réseau vers des prédictions précises.
Forces et faiblesses#
Points forts :
- Très léger, ce qui rend les variantes Nano (YOLOv5n) et Small (YOLOv5s) particulièrement adaptées aux déploiements d'IA edge soumis à des contraintes de ressources.
- Des vitesses d'inférence exceptionnellement élevées, en particulier sur les CPU.
- Un écosystème solidement établi, avec de nombreux tutoriels communautaires et intégrations tierces.
Points faibles :
- Nécessite la configuration de boîtes d'ancrage, ce qui peut compliquer la mise en place pour des jeux de données très variés ou personnalisés.
- Une précision globale (mAP) inférieure à celle d'architectures modernes sans ancres comme YOLOv8 et YOLO26.
Comparaison des performances#
Lors de l'évaluation de ces modèles, parvenir à un compromis favorable entre vitesse et précision est primordial. Le tableau ci-dessous présente les métriques de performance des deux architectures évaluées sur le jeu de données COCO. Les vitesses sur CPU ont été mesurées avec ONNX, tandis que les vitesses sur GPU ont été testées avec TensorRT.
| 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 |
Bien que YOLOv5 conserve un léger avantage en nombre de paramètres et en vitesse brute absolue pour sa variante Nano, YOLOv8 offre un bond considérable en mAP dans tous les cas, fournissant un bien meilleur équilibre entre performance et coût pour les scénarios de déploiement exigeants du monde réel.
Facilité d'utilisation et écosystème Ultralytics#
Une caractéristique déterminante des modèles Ultralytics modernes est l'écosystème bien entretenu qui les entoure. La transition de YOLOv5 à YOLOv8 a introduit le paquet pip unifié ultralytics, créant une expérience utilisateur particulièrement fluide.
Les développeurs peuvent gérer de manière transparente l'entraînement des modèles, la validation, la prédiction et l'exportation avec seulement quelques lignes de code Python, en évitant les scripts de code répétitif complexes traditionnellement requis dans les projets de deep learning.
from ultralytics import YOLO
# Load a pretrained YOLOv8 model
model = YOLO("yolov8n.pt")
# Train the model on custom data efficiently
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=0)
# Export the model to ONNX for production deployment
path = model.export(format="onnx")De plus, l'intégration avec des outils comme Ultralytics Platform simplifie la gestion des jeux de données, l'entraînement dans le cloud et le déploiement, tout en garantissant un développement actif et un solide soutien de la communauté.
Cas d’utilisation idéaux#
Quand choisir YOLOv5 : Si tu maintiens des systèmes existants, exécutes l'inférence sur des CPU très limités comme un Raspberry Pi, ou travailles sur un projet où économiser chaque fraction de mégaoctet sur la taille du modèle est essentiel, YOLOv5 reste un outil fiable et éprouvé.
Quand choisir YOLOv8 : Pour pratiquement tous les nouveaux projets lancés aujourd'hui, YOLOv8 est vivement recommandé par rapport à YOLOv5. Son architecture avancée gère sans effort le suivi complexe, les boîtes englobantes orientées (OBB) et la segmentation. Il est idéal pour les applications modernes allant de la robotique autonome à l'analyse d'images médicales et aux infrastructures de villes intelligentes.
Bien que YOLOv8 soit extrêmement performant, les développeurs à la recherche des toutes meilleures performances devraient envisager YOLO26. Sorti en 2026, il introduit plusieurs avancées révolutionnaires :
- Conception de bout en bout sans NMS : élimine le post-traitement NMS pour un déploiement plus rapide et plus simple, une approche d'abord mise en avant dans YOLOv10.
- Optimiseur MuSGD : un hybride de SGD et de Muon qui introduit les innovations de l'entraînement des LLM dans la vision par ordinateur, permettant un entraînement plus stable et une convergence plus rapide.
- Jusqu'à 43 % d'inférence plus rapide sur CPU : fortement optimisé pour les environnements d'informatique edge sans GPU dédié.
- Suppression de DFL : la Distribution Focal Loss a été supprimée afin de simplifier l'exportation et d'améliorer la compatibilité avec les appareils edge.
- ProgLoss + STAL : des fonctions de perte avancées qui améliorent nettement la reconnaissance des petits objets, un point essentiel pour l'imagerie aérienne et l'IoT.
En tirant parti de la documentation complète et des outils fournis par Ultralytics, tu peux facilement déployer YOLOv8 ou explorer YOLO26, à la pointe de la technologie, pour résoudre des problèmes visuels complexes avec une vitesse et une précision sans précédent. Pour approfondir, consulte nos guides sur le réglage des hyperparamètres et les bonnes pratiques de déploiement des modèles.