Découvre Ultralytics YOLOv8

Présentation

YOLOv8 a été publié par Ultralytics le 10 janvier 2023, 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 a 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.

Graphiques de comparaison des performances YOLOv8



Watch: Ultralytics YOLOv8 Model Overview
Essaie sur la plateforme Ultralytics

Explore et exécute les modèles YOLOv8 directement sur Ultralytics Platform.

Fonctionnalités clés de YOLOv8

  • Architectures de backbone et de neck avancées : YOLOv8 utilise des architectures de backbone et de neck de pointe, ce qui améliore les performances d'extraction de caractéristiques et de détection d'objets.
  • Tête Ultralytics fractionnée sans ancres : YOLOv8 adopte une tête Ultralytics fractionnée sans ancres, ce qui contribue à une meilleure précision et à un processus de détection plus efficace par rapport aux approches basées sur des ancres.
  • Compromis précision-vitesse optimisé : Avec l'accent mis sur le maintien d'un équilibre optimal entre précision et vitesse, YOLOv8 est adapté 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 à diverses tâches et exigences de performance, facilitant ainsi la recherche du modèle adapté à 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é pour des tâches spécifiques en vision par ordinateur. Ces modèles sont conçus pour répondre à diverses exigences, de la détection d'objets aux tâches plus complexes comme la segmentation d'instances, la détection de pose/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, garantissant des performances et une précision élevées. De plus, ces modèles sont compatibles avec divers modes opérationnels incluant Inférence, Validation, Entraînement, et Exportation, facilitant leur utilisation dans différentes étapes de déploiement et de développement.

ModèleNoms de fichiersTâcheInférenceValidationEntraînementExportation
YOLOv8yolov8n.pt yolov8s.pt yolov8m.pt yolov8l.pt yolov8x.ptDétection
YOLOv8-segyolov8n-seg.pt yolov8s-seg.pt yolov8m-seg.pt yolov8l-seg.pt yolov8x-seg.ptSegmentation d'instance
YOLOv8-poseyolov8n-pose.pt yolov8s-pose.pt yolov8m-pose.pt yolov8l-pose.pt yolov8x-pose.pt yolov8x-pose-p6.ptPose/Points clés
YOLOv8-obbyolov8n-obb.pt yolov8s-obb.pt yolov8m-obb.pt yolov8l-obb.pt yolov8x-obb.ptDétection orientée
YOLOv8-clsyolov8n-cls.pt yolov8s-cls.pt yolov8m-cls.pt yolov8l-cls.pt yolov8x-cls.ptClassification

Ce tableau fournit un aperçu des variantes de modèles YOLOv8, mettant en évidence leur applicabilité à 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 démontre la polyvalence et la robustesse de la série YOLOv8, les rendant adaptés à une variété d'applications en vision par ordinateur.

Mesures de performance

Performance

Consulte les Docs de détection pour des exemples d'utilisation avec ces modèles entraînés sur COCO, qui incluent 80 classes pré-entraînées.

Modèletaille
(pixels)
mAPval
50-95
Vitesse
CPU ONNX
(ms)
Vitesse
A100 TensorRT
(ms)
params
(M)
FLOPs
(B)
YOLOv8n64037.380.40.993.28.7
YOLOv8s64044.9128.41.2011.228.6
YOLOv8m64050.2234.71.8325.978.9
YOLOv8l64052.9375.22.3943.7165.2
YOLOv8x64053.9479.13.5368.2257.8

Exemples d'utilisation de YOLOv8

Cet exemple fournit des exemples simples d'entraînement et d'inférence avec YOLOv8. Pour une documentation complète sur ces modes et d'autres, consulte les pages de documentation Predict, Train, Val et Export.

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, consulte les documentations Segment, Classify, OBB et Pose.

Exemple

PyTorch pretrained *.pt models as well as configuration *.yaml files can be passed to the YOLO() class to create a model instance in 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")

Citations et remerciements

Publication Ultralytics YOLOv8

Ultralytics n'a pas publié d'article de recherche formel pour YOLOv8 en raison de la nature évolutive rapide de ces modèles. Nous nous concentrons sur l'avancement de la technologie et sur la simplification de son utilisation, plutôt que sur la production d'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 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 :

Citation
@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 sera ajouté à la citation une fois qu'il sera disponible. Les modèles YOLOv8 sont fournis sous 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 conçu pour améliorer les performances de détection d'objets en temps réel grâce à des fonctionnalités avancées. Contrairement aux versions précédentes, YOLOv8 intègre une tête Ultralytics sans ancres, des architectures de backbone et de neck à la pointe de la technologie, et offre un compromis précision-vitesse optimisé, ce qui le rend idéal pour des applications diverses. Pour plus de détails, consulte les sections Aperçu 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 pose/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 Inférence, Validation, Entraînement et Exportation. Reporte-toi à la section Tâches et modes pris en charge pour plus d'informations.

Quelles sont les métriques de performance pour les modèles YOLOv8 ?

Les modèles YOLOv8 atteignent des performances de pointe sur divers jeux de données de référence. Par exemple, le modèle YOLOv8n atteint un mAP (précision moyenne) de 37,3 sur le jeu de données COCO et une vitesse de 0,99 ms sur A100 TensorRT. Des métriques de performance détaillées pour chaque variante de modèle à travers différentes tâches et jeux de données sont disponibles dans la section Métriques de performance.

Comment entraîner un modèle YOLOv8 ?

L'entraînement d'un modèle YOLOv8 peut être effectué en utilisant Python ou l'interface CLI. Voici des exemples pour entraîner un modèle en utilisant un modèle YOLOv8 pré-entraîné sur COCO sur le jeu 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)

Pour plus de détails, visite la documentation sur l'Entraînement.

Puis-je évaluer les performances des modèles YOLOv8 ?

Oui, les modèles YOLOv8 peuvent être évalués en termes de vitesse et de précision sur divers formats d'exportation. Tu peux utiliser PyTorch, ONNX, TensorRT, et plus encore pour réaliser ces benchmarks. Voici des exemples de commandes pour effectuer des benchmarks via 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)

Pour des informations supplémentaires, consulte la section Métriques de performance.

Commentaires