Skip to content

YOLOv8

Vue d'ensemble

YOLOv8 est la dernière itération 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.

Ultralytics YOLOv8



Regarde : 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 d'extraction des caractĂ©ristiques et de dĂ©tection des 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.
  • 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

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 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 âś… âś… âś… âś…

Ce tableau donne 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 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 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 préformé *.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 :

# Load a COCO-pretrained YOLOv8n model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640

# Load a COCO-pretrained YOLOv8n model and run inference on the 'bus.jpg' image
yolo predict model=yolov8n.pt source=path/to/bus.jpg

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 :

@software{yolov8_ultralytics,
  author = {Glenn Jocher and Ayush Chaurasia and Jing Qiu},
  title = {Ultralytics YOLOv8},
  version = {8.0.0},
  year = {2023},
  url = {https://github.com/ultralytics/ultralytics},
  orcid = {0000-0001-5950-6979, 0000-0002-7603-6750, 0000-0003-3783-7069},
  license = {AGPL-3.0}
}

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 les performances de détection d'objets en temps réel grâce à des fonctions avancées. Contrairement aux versions précédentes, YOLOv8 incorpore une tête Ultralytics divisée sans ancrage, des architectures dorsale et cervicale de pointe, et offre un compromis précision-vitesse optimisé, ce qui le rend idéal pour diverses applications. Pour plus de détails, consulte 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 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 ?

L'entraînement d'un modèle YOLOv8 peut se faire à l'aide de Python ou CLI. Tu trouveras ci-dessous des exemples d'entraînement d'un modèle à l'aide d'un modèle YOLOv8 pré-entraîné par COCO sur l'ensemble de données COCO8 pendant 100 époques :

Exemple

from ultralytics import YOLO

# Load a COCO-pretrained YOLOv8n model
model = YOLO("yolov8n.pt")

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640

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

from ultralytics.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model="yolov8n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
yolo benchmark model=yolov8n.pt data='coco8.yaml' imgsz=640 half=False device=0

Pour plus d'informations, consulte la section sur les mesures de performance.



Créé le 2023-11-12, Mis à jour le 2024-07-04
Auteurs : glenn-jocher (17), Burhan-Q (1), Laughing-q (2), AyushExel (1), fcakyon (1)

Commentaires