Ultralytics YOLOv8
Vue d'ensemble
YOLOv8 est la dernière version de la série de détecteurs d'objets en temps réel YOLO , offrant des performances de pointe en termes de précision et de vitesse. S'appuyant sur les avancées des versions précédentes de YOLO , YOLOv8 introduit de nouvelles fonctionnalités et optimisations qui en font un choix idéal pour diverses tâches de détection d'objets dans un large éventail d'applications.
Regarder : Ultralytics YOLOv8 Aperçu du modèle
Caractéristiques principales
- Architectures dorsale et cervicale avancées : YOLOv8 utilise des architectures dorsale et cervicale de pointe, ce qui permet d'améliorer les performances en matière d'extraction de caractéristiques et de détection d'objets.
- Tête Ultralytics divisée sans ancrage : YOLOv8 adopte une tête Ultralytics divisée sans ancrage, ce qui contribue à une meilleure précision et à un processus de détection plus efficace par rapport aux approches basées sur l'ancrage.
- Optimisation du compromis précision-vitesse : grâce à un équilibre optimal entre la précision et la vitesse, YOLOv8 convient aux tâches de détection d'objets en temps réel dans divers domaines d'application.
- Variété de modèles pré-entraînés : YOLOv8 propose une gamme de modèles pré-entraînés pour répondre à différentes tâches et exigences de performance, ce qui facilite la recherche du modèle adapté à votre cas d'utilisation spécifique.
Tâches et modes pris en charge
La série YOLOv8 offre une gamme variée de modèles, chacun spécialisé dans des tâches spécifiques de vision par ordinateur. Ces modèles sont conçus pour répondre à diverses exigences, de la détection d'objets à des tâches plus complexes telles que la segmentation d'instances, la détection de poses/de points clés, la détection d'objets orientés et la classification.
Chaque variante de la série YOLOv8 est optimisée pour sa tâche respective, ce qui garantit des performances et une précision élevées. En outre, ces modèles sont compatibles avec différents modes opérationnels, notamment l'inférence, la validation, la formation et l'exportation, ce qui facilite leur utilisation à différents stades du déploiement et du développement.
Modèle | Noms de fichiers | Tâche | Inférence | Validation | Formation | Exportation |
---|---|---|---|---|---|---|
YOLOv8 | yolov8n.pt yolov8s.pt yolov8m.pt yolov8l.pt yolov8x.pt |
DĂ©tection | âś… | âś… | âś… | âś… |
YOLOv8-seg | yolov8n-seg.pt yolov8s-seg.pt yolov8m-seg.pt yolov8l-seg.pt yolov8x-seg.pt |
Segmentation des instances | âś… | âś… | âś… | âś… |
YOLOv8-pose | yolov8n-pose.pt yolov8s-pose.pt yolov8m-pose.pt yolov8l-pose.pt yolov8x-pose.pt yolov8x-pose-p6.pt |
Pose/Points clés | ✅ | ✅ | ✅ | ✅ |
YOLOv8-obb | yolov8n-obb.pt yolov8s-obb.pt yolov8m-obb.pt yolov8l-obb.pt yolov8x-obb.pt |
Détection orientée | ✅ | ✅ | ✅ | ✅ |
YOLOv8-cls | yolov8n-cls.pt yolov8s-cls.pt yolov8m-cls.pt yolov8l-cls.pt yolov8x-cls.pt |
Classification | âś… | âś… | âś… | âś… |
Ce tableau fournit une vue d'ensemble des variantes du modèle YOLOv8 , en soulignant leur applicabilité dans des tâches spécifiques et leur compatibilité avec divers modes opérationnels tels que l'inférence, la validation, l'entraînement et l'exportation. Il met en évidence la polyvalence et la robustesse de la série YOLOv8 , ce qui la rend adaptée à une grande variété d'applications dans le domaine de la vision par ordinateur.
Mesures de performance
Performance
Voir Detection Docs pour des exemples d'utilisation de ces modèles formés sur COCO, qui comprennent 80 classes préformées.
Modèle | taille (pixels) |
mAPval 50-95 |
Vitesse CPU ONNX (ms) |
Vitesse A100 TensorRT (ms) |
params (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLOv8n | 640 | 37.3 | 80.4 | 0.99 | 3.2 | 8.7 |
YOLOv8s | 640 | 44.9 | 128.4 | 1.20 | 11.2 | 28.6 |
YOLOv8m | 640 | 50.2 | 234.7 | 1.83 | 25.9 | 78.9 |
YOLOv8l | 640 | 52.9 | 375.2 | 2.39 | 43.7 | 165.2 |
YOLOv8x | 640 | 53.9 | 479.1 | 3.53 | 68.2 | 257.8 |
Voir Detection Docs pour des exemples d'utilisation de ces modèles formés sur Open Image V7, qui comprend 600 classes préformées.
Modèle | taille (pixels) |
mAPval 50-95 |
Vitesse CPU ONNX (ms) |
Vitesse A100 TensorRT (ms) |
params (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLOv8n | 640 | 18.4 | 142.4 | 1.21 | 3.5 | 10.5 |
YOLOv8s | 640 | 27.7 | 183.1 | 1.40 | 11.4 | 29.7 |
YOLOv8m | 640 | 33.6 | 408.5 | 2.26 | 26.2 | 80.6 |
YOLOv8l | 640 | 34.9 | 596.9 | 2.43 | 44.1 | 167.4 |
YOLOv8x | 640 | 36.3 | 860.6 | 3.56 | 68.7 | 260.6 |
Voir Segmentation Docs pour des exemples d'utilisation de ces modèles entraînés sur COCO, qui comprennent 80 classes pré-entraînées.
Modèle | taille (pixels) |
mAPbox 50-95 |
mAPmask 50-95 |
Vitesse CPU ONNX (ms) |
Vitesse A100 TensorRT (ms) |
params (M) |
FLOPs (B) |
---|---|---|---|---|---|---|---|
YOLOv8n-seg | 640 | 36.7 | 30.5 | 96.1 | 1.21 | 3.4 | 12.6 |
YOLOv8s-seg | 640 | 44.6 | 36.8 | 155.7 | 1.47 | 11.8 | 42.6 |
YOLOv8m-seg | 640 | 49.9 | 40.8 | 317.0 | 2.18 | 27.3 | 110.2 |
YOLOv8l-seg | 640 | 52.3 | 42.6 | 572.4 | 2.79 | 46.0 | 220.5 |
YOLOv8x-seg | 640 | 53.4 | 43.4 | 712.1 | 4.02 | 71.8 | 344.1 |
Voir les documents sur la classification pour des exemples d'utilisation de ces modèles formés sur ImageNet, qui comprennent 1000 classes préformées.
Modèle | taille (pixels) |
acc top1 |
acc top5 |
Vitesse CPU ONNX (ms) |
Vitesse A100 TensorRT (ms) |
params (M) |
FLOPs (B) Ă 640 |
---|---|---|---|---|---|---|---|
YOLOv8n-cls | 224 | 69.0 | 88.3 | 12.9 | 0.31 | 2.7 | 4.3 |
YOLOv8s-cls | 224 | 73.8 | 91.7 | 23.4 | 0.35 | 6.4 | 13.5 |
YOLOv8m-cls | 224 | 76.8 | 93.5 | 85.4 | 0.62 | 17.0 | 42.7 |
YOLOv8l-cls | 224 | 76.8 | 93.5 | 163.0 | 0.87 | 37.5 | 99.7 |
YOLOv8x-cls | 224 | 79.0 | 94.6 | 232.0 | 1.01 | 57.4 | 154.8 |
Voir Pose Estimation Docs pour des exemples d'utilisation de ces modèles entraînés sur COCO, qui incluent une classe pré-entraînée, "personne".
Modèle | taille (pixels) |
mAPpose 50-95 |
mAPpose 50 |
Vitesse CPU ONNX (ms) |
Vitesse A100 TensorRT (ms) |
params (M) |
FLOPs (B) |
---|---|---|---|---|---|---|---|
YOLOv8n-pose | 640 | 50.4 | 80.1 | 131.8 | 1.18 | 3.3 | 9.2 |
YOLOv8s-pose | 640 | 60.0 | 86.2 | 233.2 | 1.42 | 11.6 | 30.2 |
YOLOv8m-pose | 640 | 65.0 | 88.8 | 456.3 | 2.00 | 26.4 | 81.0 |
YOLOv8l-pose | 640 | 67.6 | 90.0 | 784.5 | 2.59 | 44.4 | 168.6 |
YOLOv8x-pose | 640 | 69.2 | 90.2 | 1607.1 | 3.73 | 69.4 | 263.2 |
YOLOv8x-pose-p6 | 1280 | 71.6 | 91.2 | 4088.7 | 10.04 | 99.1 | 1066.4 |
Voir Oriented Detection Docs pour des exemples d'utilisation de ces modèles entraînés sur DOTAv1, qui comprend 15 classes pré-entraînées.
Modèle | taille (pixels) |
mAPtest 50 |
Vitesse CPU ONNX (ms) |
Vitesse A100 TensorRT (ms) |
params (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLOv8n-obb | 1024 | 78.0 | 204.77 | 3.57 | 3.1 | 23.3 |
YOLOv8s-obb | 1024 | 79.5 | 424.88 | 4.07 | 11.4 | 76.3 |
YOLOv8m-obb | 1024 | 80.5 | 763.48 | 7.61 | 26.4 | 208.6 |
YOLOv8l-obb | 1024 | 80.7 | 1278.42 | 11.83 | 44.5 | 433.8 |
YOLOv8x-obb | 1024 | 81.36 | 1759.10 | 13.23 | 69.5 | 676.7 |
Exemples d'utilisation
Cet exemple fournit des exemples simples de formation et d'inférence à l'adresse YOLOv8 . Pour une documentation complète sur ces modes et d'autres, voir les pages Predict, Train, Val et Export docs.
Notez que l'exemple ci-dessous concerne les modèles YOLOv8 Detect pour la détection d'objets. Pour d'autres tâches prises en charge, voir les documents Segmenter, Classifier, OBB et Poser.
Exemple
PyTorch préformé *.pt
ainsi que la configuration *.yaml
peuvent ĂŞtre transmis Ă la fonction YOLO()
pour créer une instance de modèle dans python:
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv8n model
model = YOLO("yolov8n.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the YOLOv8n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")
CLI sont disponibles pour exécuter directement les modèles :
Citations et remerciements
Ultralytics YOLOv8 Publication
Ultralytics n'a pas publié de document de recherche officiel pour YOLOv8 en raison de la nature rapidement évolutive des modèles. Nous nous attachons à faire progresser la technologie et à faciliter son utilisation, plutôt qu'à produire une documentation statique. Pour obtenir les informations les plus récentes sur l'architecture, les fonctionnalités et l'utilisation de YOLO , veuillez consulter notre dépôt GitHub et notre documentation.
Si vous utilisez le modèle YOLOv8 ou tout autre logiciel de ce dépôt dans votre travail, veuillez le citer en utilisant le format suivant :
Veuillez noter que le DOI est en attente et qu'il sera ajouté à la citation dès qu'il sera disponible. Les modèles YOLOv8 sont fournis sous les licences AGPL-3.0 et Enterprise.
FAQ
Qu'est-ce que YOLOv8 et en quoi diffère-t-il des versions précédentes de YOLO ?
YOLOv8 est la dernière itération de la série Ultralytics YOLO , conçue pour améliorer la performance de la détection d'objets en temps réel grâce à des caractéristiques avancées. Contrairement aux versions précédentes, YOLOv8 incorpore une tête Ultralytics divisée sans ancrage, des architectures de pointe pour l'épine dorsale et le cou, et offre un compromis précision-vitesse optimisé, ce qui en fait un outil idéal pour diverses applications. Pour plus de détails, consultez les sections Vue d'ensemble et Caractéristiques principales.
Comment puis-je utiliser YOLOv8 pour différentes tâches de vision par ordinateur ?
YOLOv8 prend en charge un large éventail de tâches de vision par ordinateur, notamment la détection d'objets, la segmentation d'instances, la détection de poses et de points clés, la détection d'objets orientés et la classification. Chaque variante de modèle est optimisée pour sa tâche spécifique et compatible avec différents modes opérationnels tels que l'inférence, la validation, l'entraînement et l'exportation. Pour plus d'informations, reportez-vous à la section Tâches et modes pris en charge.
Quels sont les critères de performance des modèles YOLOv8 ?
YOLOv8 atteignent des performances de pointe dans divers ensembles de données d'étalonnage. Par exemple, le modèle YOLOv8n atteint une mAP (mean Average Precision) de 37,3 sur l'ensemble de données COCO et une vitesse de 0,99 ms sur A100 TensorRT. Des mesures de performance détaillées pour chaque variante de modèle dans différentes tâches et différents ensembles de données sont disponibles dans la section Mesures de performance.
Comment entraîner un modèle YOLOv8 ?
L'entraînement d'un modèle YOLOv8 peut se faire à l'aide de Python ou CLI. Vous trouverez ci-dessous des exemples d'entraînement d'un modèle à l'aide d'un modèle YOLOv8 entraîné par COCO sur l'ensemble de données COCO8 pour 100 époques:
Exemple
Pour plus de détails, consultez la documentation sur la formation.
Puis-je comparer les performances des modèles YOLOv8 ?
Oui, les modèles YOLOv8 peuvent faire l'objet d'une évaluation comparative des performances en termes de vitesse et de précision dans différents formats d'exportation. Vous pouvez utiliser PyTorch, ONNX, TensorRT, et d'autres pour l'évaluation comparative. Vous trouverez ci-dessous des exemples de commandes pour l'évaluation comparative à l'aide de Python et CLI:
Exemple
Pour plus d'informations, consultez la section Mesures de performance.