YOLOv5 vs YOLOv8 : Évolution de la détection d'objets en temps réel
L'évolution de la détection d'objets a été considérablement façonnée par la famille de modèles YOLO (You Only Look Once). Développés par Ultralytics, YOLOv5 et YOLOv8 représentent des moments clés dans l'histoire de la vision par ordinateur. Alors que YOLOv5 s'est imposé comme l'architecture de détection la plus appréciée et la plus largement utilisée au monde en raison de sa simplicité et de sa vitesse, YOLOv8 a introduit un cadre unifié avec des innovations architecturales de pointe pour prendre en charge un éventail plus large de tâches de vision.
Le choix entre ces deux géants dépend des contraintes spécifiques de votre projet, de la disponibilité du matériel et du besoin de capacités multitâches. Ce guide fournit une analyse technique approfondie pour aider les ingénieurs en vision par ordinateur et les chercheurs à prendre la bonne décision.
YOLOv5 : la norme industrielle éprouvée
Auteur: Glenn Jocher
Organisation:Ultralytics
Date: 2020-06-26
GitHub:https://github.com/ultralytics/yolov5
Docs:https://docs.ultralytics.com/models/yolov5/
Lancé mi-2020, YOLOv5 a révolutionné l’accessibilité de la détection d’objets. Il s’agissait du premier modèle YOLO implémenté nativement dans PyTorch, s’éloignant du framework Darknet utilisé par ses prédécesseurs. Ce changement a permis aux développeurs de former, de déployer et d’expérimenter très facilement avec des ensembles de données personnalisés.
YOLOv5 utilise un backbone CSPDarknet et est un détecteur basé sur des ancres. Cela signifie qu'il s'appuie sur des boîtes d'ancrage prédéfinies pour prédire les emplacements des objets. Bien que cette approche nécessite un certain réglage des hyperparamètres pour des performances optimales sur des ensembles de données uniques, elle reste très efficace. Son architecture met l'accent sur la vitesse d'inférence et la faible capacité de mémoire, ce qui en fait un favori pour le déploiement sur du matériel aux ressources limitées comme le Raspberry Pi et les premières générations de NVIDIA Jetson.
Principaux atouts de YOLOv5
- Stabilité existante : Des années d’utilisation active dans des environnements de production en ont fait l’un des modèles de vision les plus stables et les moins bogués disponibles.
- Optimisation Edge : En particulier sur les anciens CPU et les processeurs mobiles spécifiques, l’architecture plus simple de YOLOv5 peut parfois offrir une latence d’inférence plus rapide.
- Vaste écosystème : Une communauté massive de tutoriels, d’intégrations tierces et de discussions sur les forums prend en charge le dépannage et le développement.
YOLOv8 : La centrale multitâche
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/
YOLOv8 représente un bond en avant significatif, conçu non seulement comme un détecteur d'objets, mais comme un framework complet pour la segmentation d'image, l'estimation de pose, la classification et la détection de boîtes englobantes orientées (OBB).
Sur le plan architectural, YOLOv8 adopte une conception sans ancrage avec une tête découplée, séparant les tâches d'objectivité, de classification et de régression. Il introduit également le module C2f (Cross Stage Partial BottleNeck avec 2 convolutions), qui remplace le module C3 présent dans YOLOv5. Le module C2f améliore le flux de gradient et la fusion des caractéristiques, permettant au modèle d'apprendre des modèles plus complexes sans augmentation massive du coût de calcul.
Principaux atouts de YOLOv8
- Précision de pointe : Atteint constamment des scores mAP (précision moyenne moyenne) plus élevés sur COCO et les ensembles de données personnalisés par rapport à YOLOv5.
- Détection sans ancres : Élimine le besoin de calculer ou d'ajuster les boîtes d'ancrage, simplifiant ainsi le pipeline d'entraînement et améliorant la généralisation sur les objets ayant des rapports hauteur/largeur inhabituels.
- Polyvalence : La possibilité de basculer entre la détection, la segmentation et l’estimation de pose à l’aide de la même API réduit considérablement le temps de développement des projets complexes.
Analyse technique approfondie : Architecture et performance
La transition de YOLOv5 à YOLOv8 est marquée par plusieurs changements « sous le capot » qui entraînent des gains de performance.
Évolutions architecturales
La différence la plus notable est la tête de détection. YOLOv5 utilise une tête couplée où la classification et la localisation partagent des caractéristiques. YOLOv8 utilise une tête découplée, permettant au réseau d'ajuster les poids indépendamment pour identifier ce qu' est un objet par rapport à où il se trouve. Cela conduit généralement à une meilleure convergence et à une plus grande précision.
De plus, l'évolution du backbone de C3 à C2f permet à YOLOv8 de capturer des informations de gradient plus riches. Bien que cela rende l'architecture légèrement plus complexe, Ultralytics a optimisé l'implémentation pour garantir que l'efficacité de l'entraînement reste élevée.
Mesures de performance
Lorsque l'on compare les modèles sur l'ensemble de données COCO standard, YOLOv8 démontre des rapports précision/calcul supérieurs.
| 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 |
Comme illustré, YOLOv8n (Nano) atteint une mAP de 37,3, égalant pratiquement le plus grand YOLOv5s (Small) qui obtient un score de 37,4, mais avec beaucoup moins de FLOPs. Cette efficacité est essentielle pour les applications modernes d'Edge AI.
Méthodologies de formation et écosystème
L'une des caractéristiques déterminantes des modèles Ultralytics est l'accent mis sur l'expérience développeur. Les deux modèles bénéficient de l'écosystème complet Ultralytics, mais ils sont accessibles de manière légèrement différente.
Facilité d'utilisation et API
YOLOv8 a introduit la ultralytics Package Python, une interface CLI et Python unifiée. Ce package gère efficacement les dépendances et fournit une API cohérente pour formation, validation, et prédiction. Il est intéressant de noter que le ultralytics package peut également charger et exécuter des modèles YOLOv5, comblant ainsi le fossé entre les générations.
from ultralytics import YOLO
# Load a YOLOv8 model (Official)
model_v8 = YOLO("yolov8n.pt")
# Load a YOLOv5 model (Legacy support via Ultralytics package)
model_v5 = YOLO("yolov5nu.pt")
# Training is identical for both
results = model_v8.train(data="coco8.yaml", epochs=100)
Mémoire et efficacité
Comparativement aux modèles basés sur les transformeurs comme RT-DETR, YOLOv5 et YOLOv8 sont tous deux exceptionnellement efficaces en termes de mémoire. Les transformeurs nécessitent souvent une quantité importante de mémoire CUDA et des temps d'entraînement plus longs pour converger. En revanche, les modèles Ultralytics YOLO sont optimisés pour fonctionner sur des GPU grand public et même des CPU, démocratisant ainsi l'accès à l'IA haute performance.
Écosystème intégré
Les deux modèles sont entièrement compatibles avec Ultralytics HUB, ce qui permet une gestion transparente des ensembles de données, une visualisation des modèles et un déploiement en un clic sur des appareils du monde réel.
Cas d'utilisation idéaux
Le choix du bon modèle se résume souvent à l'environnement spécifique dans lequel le modèle sera déployé.
Quand choisir YOLOv5
YOLOv5 reste un excellent choix pour :
- Systèmes existants : Mise à jour des pipelines existants où l’infrastructure est déjà construite autour de l’architecture YOLOv5.
- Matériel Edge spécifique : Certains pilotes NPU (Neural Processing Unit) plus anciens ont une prise en charge hautement optimisée spécifiquement pour l’architecture YOLOv5.
- Latence ultra-faible : Dans les scénarios où chaque milliseconde d'inférence CPU compte, la tête couplée plus simple de YOLOv5n peut parfois offrir un avantage de vitesse brute par rapport à v8n.
Quand choisir YOLOv8
YOLOv8 est le choix recommandé pour :
- Nouveaux développements : En commençant un projet aujourd'hui, YOLOv8 (ou le plus récent YOLO11) offre une meilleure voie d'avenir.
- Tâches complexes : Applications nécessitant la segmentation d'instance (par exemple, l'analyse de cellules médicales) ou la détection de points clés (par exemple, l'analyse sportive).
- Exigences de Haute Précision : Scénarios où manquer une détection est critique, comme dans les systèmes de sécurité des véhicules autonomes ou la surveillance de sécurité.
Conclusion
YOLOv5 et YOLOv8 témoignent tous deux de l'engagement d'Ultralytics en faveur de l'innovation open source. YOLOv5 reste une légende dans le domaine—fiable, rapide et largement pris en charge. Cependant, YOLOv8 améliore cette base avec des avancées architecturales qui offrent une plus grande précision et une plus grande polyvalence sans sacrifier la facilité d'utilisation attendue par les développeurs.
Pour la majorité des nouveaux projets, nous recommandons de tirer parti des avancées de YOLOv8 ou de passer à la dernière version de YOLO11, qui affine encore ces concepts pour un équilibre ultime entre vitesse et précision.
Explorer d'autres modèles
Si vous souhaitez explorer les toutes dernières technologies de détection, envisagez de consulter :
- YOLO11: La dernière évolution, offrant un traitement plus rapide et une extraction de caractéristiques améliorée par rapport à YOLOv8.
- RT-DETR: Un modèle basé sur les transformeurs qui offre une haute précision pour les applications en temps réel, idéal lorsque la mémoire du GPU est moins une contrainte.