YOLO11 YOLOv8: l'évolution de la détection d'objets en temps réel
Les progrès réalisés dans l'architecture YOLO You Only Look Once) ont constamment redéfini les limites de la vision par ordinateur. YOLO11, lancée fin 2024, s'appuie sur les bases solides posées par YOLOv8 pour offrir une efficacité et une précision accrues. Cette analyse explore les changements architecturaux, les mesures de performance et les considérations pratiques de déploiement pour les deux modèles, guidant les développeurs vers le choix optimal pour leurs applications spécifiques.
Aperçu des indicateurs de performance
Le tableau suivant met en évidence les améliorations de performances de YOLO11 YOLOv8 différentes tailles de modèles. YOLO11 offre YOLO11 une précision moyenne (mAP) plus élevée tout en conservant des vitesses d'inférence compétitives, en particulier lorsqu'il est optimisé pour CPU .
| Modèle | Taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLO11n | 640 | 39.5 | 56.1 | 1.5 | 2.6 | 6.5 |
| YOLO11s | 640 | 47.0 | 90.0 | 2.5 | 9.4 | 21.5 |
| YOLO11m | 640 | 51.5 | 183.2 | 4.7 | 20.1 | 68.0 |
| YOLO11l | 640 | 53.4 | 238.6 | 6.2 | 25.3 | 86.9 |
| YOLO11x | 640 | 54.7 | 462.8 | 11.3 | 56.9 | 194.9 |
| 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 |
Aperçu architectural
Les deux modèles découlent de la Ultralytics , qui privilégie une conception centrée sur l'utilisateur, mettant l'accent sur la facilité d'utilisation sans sacrifier la puissance. Cependant, les améliorations architecturales apportées à YOLO11 de meilleures capacités d'extraction de caractéristiques avec moins de paramètres.
YOLO11: une efficacité raffinée
Auteurs : Glenn Jocher, Jing Qiu
Organisation :Ultralytics
Date : 27/09/2024
GitHub :ultralytics
Documentation :YOLO11
YOLO11 une architecture mise à jour pour le backbone et le neck qui améliore l'intégration des fonctionnalités. En optimisant les blocs Cross Stage Partial (CSP), YOLO11 réduire considérablement les FLOP (opérations en virgule flottante par seconde) tout en augmentant mAP. Cette efficacité le rend particulièrement adapté aux environnements contraints tels que les appareils informatiques de pointe.
YOLOv8: la norme fiable
Auteurs : Glenn Jocher, Ayush Chaurasia, Jing Qiu
Organisation :Ultralytics
Date : 10/01/2023
GitHub :ultralytics
Documentation :YOLOv8
YOLOv8 un modèle robuste et très polyvalent. Il a été le premier à intégrer la tête de détection sans ancrage dans la Ultralytics , simplifiant ainsi le processus d'apprentissage en éliminant le besoin de calculs manuels de la boîte d'ancrage. Ses track éprouvées dans divers secteurs, de l'agriculture à la fabrication, en font un choix sûr et fiable pour les systèmes existants.
Compatibilité architecturale
YOLO11 YOLOv8 tous deux pris en charge de manière native par le ultralytics Python . Passer de l'un à l'autre est souvent aussi simple que de changer la chaîne de caractères du nom du modèle (par exemple, de yolov8n.pt à yolo11n.pt) dans votre code, en conservant votre configuration de l'ensemble de données et les filières de formation.
Principaux avantages des modèles Ultralytics
Quelle que soit la version spécifique, le choix d'un Ultralytics offre des avantages distincts par rapport à d'autres frameworks.
- Écosystème bien entretenu : les deux modèles bénéficient d'un développement actif et du soutien de la communauté. Des mises à jour régulières garantissent la compatibilité avec les dernières versions de PyTorch et CUDA, ce qui minimise la dette technique.
- Exigences en matière de mémoire : Ultralytics ses modèles pour qu'ils soient efficaces en termes de mémoire. Comparés aux détecteurs massifs basés sur des transformateurs, YOLO nécessitent beaucoup moins GPU (VRAM) pendant l'entraînement, ce qui les rend accessibles aux développeurs utilisant du matériel grand public.
- Polyvalence : au-delà des simples boîtes englobantes, les deux architectures prennent en charge la segmentation d'instances, l'estimation de pose, les OBB (Oriented Bounding Box) et la classification.
- Efficacité de la formation : les poids pré-entraînés sont facilement disponibles, ce qui permet un apprentissage par transfert qui réduit considérablement le temps de formation et la consommation d'énergie.
Cas d'utilisation concrets
Le choix entre YOLO11 YOLOv8 dépend YOLOv8 des contraintes spécifiques de l'environnement de déploiement.
Où YOLO11 excelle
YOLO11 le choix idéal pour les applications périphériques sensibles à la latence. Son nombre réduit de paramètres et son faible nombre de FLOP permettent une inférence plus rapide sur les processeurs CPU et mobiles.
- Commerce intelligent : pour une analyse en temps réel du comportement des clients sur les serveurs des magasins sans GPU dédiés.
- Imagerie par drone : traitement d'images aériennes haute résolution où chaque milliseconde d'autonomie de batterie compte. L'amélioration de la détection des petits objets est ici essentielle.
- Applications mobiles : déploiement via CoreML ou TFLite sur Android iOS Android bénéficie d'une architecture plus légère.
Où YOLOv8 performant
YOLOv8 idéal pour les flux de travail établis où la cohérence est primordiale.
- Automatisation industrielle : dans les usines déjà standardisées sur YOLOv8 le contrôle qualité, continuer avec la version v8 évite d'avoir à revalider l'ensemble du pipeline.
- Recherche universitaire : En tant que référence très citée, YOLOv8 un excellent point de comparaison pour évaluer les nouvelles architectures innovantes.
Facilité d'utilisation et de mise en œuvre
L'une des caractéristiques distinctives de Ultralytics est son API unifiée. Les développeurs peuvent former, valider et déployer l'un ou l'autre modèle en utilisant une syntaxe identique.
from ultralytics import YOLO
# Load a model (switch 'yolo11n.pt' to 'yolov8n.pt' to use v8)
model = YOLO("yolo11n.pt")
# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on a local image
results = model("path/to/image.jpg")
# Export to ONNX for deployment
path = model.export(format="onnx")
Cette simplicité s'étend à l'interface de ligne de commande (CLI), permettant un prototypage rapide sans écrire une seule ligne de Python.
# Train YOLO11n
yolo train model=yolo11n.pt data=coco8.yaml epochs=50 imgsz=640
# Train YOLOv8n
yolo train model=yolov8n.pt data=coco8.yaml epochs=50 imgsz=640
Conclusion
Les deux YOLO11 et YOLOv8 représentent le summum de la technologie de détection d'objets en temps réel. YOLOv8 reste un outil fiable et polyvalent, parfait pour les applications générales. Cependant, YOLO11 repousse encore plus loin les limites avec une efficacité optimisée, ce qui en fait le point de départ recommandé pour les nouveaux projets, en particulier ceux qui ciblent les appareils de pointe ou qui exigent le meilleur rapport précision/calcul possible.
Pour les développeurs à la recherche de performances de pointe et d'une architecture NMS, nous recommandons également d'explorer le tout nouveau YOLO26. Il combine les meilleures caractéristiques des générations précédentes avec une conception de bout en bout qui simplifie encore davantage le déploiement.
Explorer d'autres modèles
- YOLO26: le dernier modèle de pointe offrant une détection de bout en bout NMS et CPU 43 % plus rapide.
- RT-DETR: un modèle basé sur un transformateur offrant une grande précision, idéal lorsque la vitesse d'inférence est secondaire par rapport à la précision.
- SAM : le modèle Segment Anything de Meta, idéal pour les tâches de segmentation sans apprentissage préalable lorsque les données d'entraînement sont rares.