YOLOv5 YOLOv8: l'évolution de la détection Ultralytics
Le domaine de la vision par ordinateur a connu une évolution rapide, largement stimulée par les innovations continues au sein de la famille de détecteurs d'objets YOLO You Only Look Once). Deux des versions les plus marquantes de cette lignée sont YOLOv5 et YOLOv8, toutes deux développées par Ultralytics. Alors que YOLOv5 la norme industrielle en matière de facilité d'utilisation et de flexibilité lors de sa sortie en 2020, YOLOv8 sortie en 2023) a introduit des avancées architecturales qui ont redéfini les performances de pointe.
Ce guide fournit une comparaison technique approfondie afin d'aider les développeurs, chercheurs et ingénieurs à choisir le modèle adapté à leurs besoins spécifiques, tout en mettant en avant les dernières avancées dans ce domaine, telles que YOLO26.
Ultralytics YOLOv5 : La norme de l’industrie
Sorti en juin 2020, YOLOv5 a marqué un tournant dans la démocratisation de l'IA. Contrairement à ses prédécesseurs, qui étaient principalement écrits en C (Darknet), YOLOv5 le premier natif PyTorch , ce qui le rendait exceptionnellement accessible à la communauté Python .
Principales caractéristiques et architecture
YOLOv5 réputé pour son équilibre entre vitesse, précision et conception conviviale. Son architecture a apporté plusieurs améliorations clés par rapport à YOLOv4 :
- CSPDarknet Backbone : utilise des connexions partielles entre les étapes pour améliorer le flux de gradient et réduire les paramètres.
- Boîtes d'ancrage à apprentissage automatique : apprend automatiquement les dimensions optimales des boîtes d'ancrage pour l'ensemble de données personnalisé avant le début de la formation.
- Augmentation des données mosaïques : technique d'entraînement qui combine quatre images en une seule, améliorant ainsi la capacité du modèle à detect des objets detect et à généraliser le contexte.
Spécifications techniques :
- Auteurs : Glenn Jocher
- Organisation :Ultralytics
- Date : 2020-06-26
- GitHub :ultralytics/yolov5
Ultralytics YOLOv8: définir l'état de l'art
Lancé en janvier 2023, YOLOv8 a représenté une avancée significative dans le domaine de la technologie de vision par ordinateur. Il s'est éloigné de la détection basée sur des ancrages utilisée dans YOLOv5 une conception sans ancrages, simplifiant ainsi le processus d'apprentissage et améliorant la généralisation entre différentes formes d'objets.
Innovations architecturales
YOLOv8 toute une série de techniques modernes qui ont amélioré à la fois la vitesse et la précision :
- Détection sans ancrage : élimine le besoin de configuration manuelle des boîtes d'ancrage, en prédisant directement les centres des objets. Cela réduit le nombre de prédictions de boîtes et accélère la suppression non maximale (NMS).
- Module C2f : remplace le module C3 de YOLOv5, offrant un flux de gradient plus riche et ajustant le nombre de canaux pour une meilleure extraction des caractéristiques.
- Tête découplée : sépare les tâches d'objectivité, de classification et de régression en différentes branches, permettant à chacune de converger plus efficacement.
- Polyvalence des tâches : Conçu dès le départ pour prendre en charge non seulement la détection, mais aussi la segmentation d'instances, l'estimation de pose, la classification et l'OBB (Oriented Bounding Box).
Spécifications techniques :
- Auteurs : Glenn Jocher, Ayush Chaurasia et Jing Qiu
- Organisation :Ultralytics
- Date : 2023-01-10
- GitHub :ultralytics/ultralytics
Comparaison des performances
Lorsque l'on compare ces deux puissances, il apparaît clairement que YOLOv8 surpasse YOLOv8 YOLOv5 précision (mAP) et YOLOv5 latence sur un matériel comparable. Cependant, YOLOv5 un modèle très performant et extrêmement efficace pour les systèmes existants.
Le tableau ci-dessous met en évidence les performances obtenues sur l'COCO . Les valeurs en gras indiquent les meilleures performances dans chaque catégorie.
| 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 |
Analyse
YOLOv8n Nano) atteint un mAP nettement supérieur mAP 37,3) à celui de YOLOv5n (28,0) avec une augmentation marginale du nombre de paramètres. Ce gain d'efficacité fait de YOLOv8 choix idéal pour les applications de pointe modernes où chaque pourcentage de précision compte.
Formation et écosystème
Les deux modèles bénéficient énormément de Ultralytics , qui privilégie la facilité d'utilisation.
Processus de formation simplifié
La transition de YOLOv5 YOLOv8 a YOLOv8 introduit une CLI Python unifiées qui prennent en charge toutes les tâches. Alors que YOLOv5 sur des scripts spécifiques (par exemple, train.py, detect.py), YOLOv8 les modèles ultérieurs tels que YOLO26 utiliser une structure de paquets modulaire.
YOLOv5 :
python train.py --img 640 --batch 16 --epochs 50 --data coco128.yaml --weights yolov5s.pt
YOLOv8 :
yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640
Les avantages de Ultralytics
Les deux modèles s'intègrent parfaitement à la Ultralytics . Cela permet aux utilisateurs de visualiser les cycles d'entraînement, de gérer les ensembles de données et d'exporter les modèles en un seul clic vers des formats tels que ONNX, TensorRTet CoreML en un seul clic, CoreML avoir à écrire de scripts de conversion complexes.
Cas d'utilisation et recommandations
Le choix entre ces deux modèles dépend de vos contraintes spécifiques, bien que les modèles plus récents soient généralement recommandés pour les nouveaux projets.
Scénarios idéaux pour YOLOv5
- Systèmes hérités : projets déjà profondément intégrés à la YOLOv5 , pour lesquels les coûts de migration sont élevés.
- Prise en charge matérielle spécifique : certains accélérateurs IA de pointe plus anciens peuvent disposer de noyaux hautement optimisés, spécialement adaptés aux structures de couches spécifiques YOLOv5.
- Simplicité : à des fins purement éducatives, la structure explicite basée sur des scripts du YOLOv5 peut être plus facile à analyser ligne par ligne pour les débutants.
Scénarios idéaux pour YOLOv8
- Exigences de haute précision : applications telles que l'imagerie médicale ou le contrôle qualité, où la détection de caractéristiques subtiles est essentielle.
- Apprentissage multitâche : projets nécessitant une segmentation ou une estimation de la pose en plus de la détection.
- Préparation pour l'avenir : les développeurs qui lancent de nouveaux projets devraient opter pour YOLOv8 ou une version plus récente) afin de garantir une prise en charge à long terme et une compatibilité avec les derniers outils de déploiement.
L'avenir : Ultralytics
Bien que YOLOv5 YOLOv8 excellents, le domaine continue d'évoluer. Pour les développeurs qui recherchent des performances optimales en 2026, nous recommandons vivement Ultralytics .
Pourquoi choisir YOLO26 ? YOLO26 s'appuie sur l'héritage des versions v5 et v8, mais introduit des changements révolutionnaires en termes de vitesse et d'efficacité :
- NMS de bout en bout : en supprimant le besoin de suppression non maximale (NMS), YOLO26 simplifie la logique de déploiement et réduit la latence d'inférence, un concept lancé dans YOLOv10.
- MuSGD Optimizer : un optimiseur hybride qui apporte la stabilité de la formation LLM aux modèles de vision, garantissant une convergence plus rapide.
- Optimisé pour Edge : grâce à la suppression du DFL et à CPU spécifiques, YOLO26 fonctionne jusqu'à 43 % plus rapidement sur les CPU par rapport aux générations précédentes.
- Détection supérieure des petits objets : les nouvelles fonctions ProgLoss et STAL améliorent considérablement les performances sur les petites cibles, ce qui est essentiel pour l'imagerie par drone et les applications IoT.
Conclusion
YOLOv5 YOLOv8 tous deux des avancées monumentales dans l'histoire de la vision par ordinateur. YOLOv5 reste un outil fiable et peu gourmand en mémoire pour de nombreuses applications existantes, apprécié pour sa stabilité et sa faible empreinte en ressources lors de l'entraînement. YOLOv8offre cependant une polyvalence supérieure, une plus grande précision et une conception architecturale plus moderne, en phase avec les tendances actuelles de la recherche.
Pour ceux qui exigent le nec plus ultra, tournés vers YOLO26 ou YOLO11 leur apporteront encore plus d'avantages en termes de vitesse et de précision. En fin de compte, le solide Ultralytics vous garantit, quel que soit le modèle que vous choisissez, de disposer des outils, de la documentation et du soutien de la communauté nécessaires pour réussir.
Exemple de code : Exécution de l'inférence
Découvrez la simplicité de Ultralytics . Ce code fonctionne indifféremment pour les modèles YOLOv8, YOLO11 et YOLO26.
from ultralytics import YOLO
# Load a pretrained model (choose yolov8n.pt or yolo26n.pt)
model = YOLO("yolov8n.pt")
# Run inference on an image from the web
results = model("https://ultralytics.com/images/bus.jpg")
# Process results list
for result in results:
boxes = result.boxes # Boxes object for bbox outputs
masks = result.masks # Masks object for segmentation masks
keypoints = result.keypoints # Keypoints object for pose outputs
probs = result.probs # Probs object for classification outputs
result.show() # display to screen
result.save(filename="result.jpg") # save to disk
Pour plus d'informations sur l'intégration de ces modèles dans votre flux de travail, consultez notre guide de démarrage rapide.