Ultralytics YOLOv8
Vue d'ensemble
YOLOv8 is the latest iteration in the YOLO series of real-time object detectors, offering cutting-edge performance in terms of accuracy and speed. Building upon the advancements of previous YOLO versions, YOLOv8 introduces new features and optimizations that make it an ideal choice for various object detection tasks in a wide range of applications.
Regarde : Ultralytics YOLOv8 Aperçu du modèle
Caractéristiques principales
- Advanced Backbone and Neck Architectures: YOLOv8 employs state-of-the-art backbone and neck architectures, resulting in improved feature extraction and object detection performance.
- 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.
- Compromis optimisé entre précision et rapidité : en se concentrant sur le maintien d'un équilibre optimal entre précision et rapidité, 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 offre une gamme de modèles pré-entraînés pour répondre à diverses tâches et exigences de performance, ce qui facilite la recherche du bon modèle pour ton cas d'utilisation spécifique.
Tâches et modes pris en charge
The YOLOv8 series offers a diverse range of models, each specialized for specific tasks in computer vision. These models are designed to cater to various requirements, from object detection to more complex tasks like instance segmentation, pose/keypoints detection, oriented object detection, and 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 divers 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 | Exporter |
---|---|---|---|---|---|---|
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 | âś… | âś… | âś… | âś… |
This table provides an overview of the YOLOv8 model variants, highlighting their applicability in specific tasks and their compatibility with various operational modes such as Inference, Validation, Training, and Export. It showcases the versatility and robustness of the YOLOv8 series, making them suitable for a variety of applications in computer vision.
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 comprennent 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 formés sur COCO, qui comprennent 80 classes préformé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 formés sur COCO, qui incluent une classe préformé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 formés sur DOTAv1, qui comprennent 15 classes préformé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 sur YOLOv8 . Pour une documentation complète sur ces modes et d'autres , voir les pages Predict, Train, Val et Export docs.
Note 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 pretrained *.pt
ainsi que la configuration *.yaml
peuvent ĂŞtre transmis Ă l'outil 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 Des commandes sont disponibles pour exécuter directement les modèles :
Citations et remerciements
Si tu utilises le modèle YOLOv8 ou tout autre logiciel de ce dépôt dans ton travail, merci de 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 is the latest iteration in the Ultralytics YOLO series, designed to improve real-time object detection performance with advanced features. Unlike earlier versions, YOLOv8 incorporates an anchor-free split Ultralytics head, state-of-the-art backbone and neck architectures, and offers optimized accuracy-speed tradeoff, making it ideal for diverse applications. For more details, check the Overview and Key Features sections.
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 divers modes opérationnels tels que l'inférence, la validation, l'entraînement et l'exportation. Reporte-toi à la section Tâches et modes pris en charge pour plus d'informations.
Quels sont les paramètres de performance des modèles YOLOv8 ?
YOLOv8 atteignent des performances de pointe dans divers ensembles de données d'analyse comparative. 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. Les mesures détaillées des performances de chaque variante du modèle pour différentes tâches et différents ensembles de données se trouvent dans la section Mesures des performances.
Comment entraîner un modèle YOLOv8 ?
Training a YOLOv8 model can be done using either Python or CLI. Below are examples for training a model using a COCO-pretrained YOLOv8 model on the COCO8 dataset for 100 epochs:
Exemple
Pour plus de détails, visite 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 analyse comparative des performances en termes de vitesse et de précision dans différents formats d'exportation. Tu peux utiliser PyTorch, ONNX, TensorRT, et d'autres pour l'analyse comparative. Tu trouveras ci-dessous des exemples de commandes pour l'évaluation des performances à l'aide de Python et CLI:
Exemple
Pour plus d'informations, consulte la section sur les mesures de performance.