Passer au contenu

Explorez Ultralytics YOLOv8

Aperçu

YOLOv8 a été lancé 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.

Ultralytics YOLOv8



Regarder : Présentation du modèle Ultralytics YOLOv8

Principales caractéristiques de YOLOv8

  • Architectures avancées de Backbone et de Neck : YOLOv8 utilise des architectures de backbone et de neck de pointe, ce qui améliore l'extraction de caractéristiques et les performances 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.
  • Compromis précision-vitesse optimisé : En mettant l'accent sur le maintien d'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 à diverses 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 étant 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 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 de fonctionnement, notamment l'inférence, la validation, l'entraînement et l'exportation, ce qui facilite leur utilisation dans différentes étapes de déploiement et de développement.

Modèle Noms de fichiers Tâche Inférence Validation Entraînement 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 d'instance
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 un aperçu des différentes 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, les rendant adaptés à une variété d'applications en vision par ordinateur.

Mesures de performance

Performance

Consultez la documentation sur la détection pour des exemples d'utilisation avec ces modèles entraînés sur COCO, qui comprennent 80 classes pré-entraînées.

Modèle Taille
(pixels)
mAPval
50-95
Vitesse
CPU ONNX
(ms)
Vitesse
A100 TensorRT
(ms)
paramètres
(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

Consultez la documentation sur la détection pour des exemples d'utilisation avec ces modèles entraînés sur Open Image V7, qui comprennent 600 classes pré-entraînées.

Modèle Taille
(pixels)
mAPval
50-95
Vitesse
CPU ONNX
(ms)
Vitesse
A100 TensorRT
(ms)
paramètres
(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

Consultez la documentation sur la segmentation pour des exemples d'utilisation avec ces modèles entraînés sur COCO, qui comprennent 80 classes pré-entraînées.

Modèle Taille
(pixels)
mAPboîte
50-95
mAPmasque
50-95
Vitesse
CPU ONNX
(ms)
Vitesse
A100 TensorRT
(ms)
paramètres
(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

Consultez la documentation sur la classification pour des exemples d'utilisation avec ces modèles entraînés sur ImageNet, qui comprennent 1 000 classes pré-entraînées.

Modèle Taille
(pixels)
acc
top1
acc
top5
Vitesse
CPU ONNX
(ms)
Vitesse
A100 TensorRT
(ms)
paramètres
(M)
FLOPs
(B) à 224
YOLOv8n-cls 224 69.0 88.3 12.9 0.31 2.7 0.5
YOLOv8s-cls 224 73.8 91.7 23.4 0.35 6.4 1.7
YOLOv8m-cls 224 76.8 93.5 85.4 0.62 17.0 5.3
YOLOv8l-cls 224 76.8 93.5 163.0 0.87 37.5 12.3
YOLOv8x-cls 224 79.0 94.6 232.0 1.01 57.4 19.0

Consultez la documentation sur l'estimation de pose pour des exemples d'utilisation avec ces modèles entraînés sur COCO, qui comprennent 1 classe pré-entraînée, 'personne'.

Modèle Taille
(pixels)
mAPpose
50-95
mAPpose
50
Vitesse
CPU ONNX
(ms)
Vitesse
A100 TensorRT
(ms)
paramètres
(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

Consultez la documentation sur la détection orientée pour des exemples d'utilisation avec ces modèles entraînés sur DOTAv1, qui incluent 15 classes pré-entraînées.

Modèle Taille
(pixels)
mAPtest
50
Vitesse
CPU ONNX
(ms)
Vitesse
A100 TensorRT
(ms)
paramètres
(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 de YOLOv8

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

Notez que l'exemple ci-dessous concerne les modèles YOLOv8 Detect pour la détection d'objets. Pour connaître les tâches supplémentaires prises en charge, consultez les documents Segment, Classify, OBB et les documents Pose.

Exemple

PyTorch pré-entraînés *.pt ainsi que la configuration des modèles *.yaml fichiers peuvent être passés aux YOLO() class pour créer une instance de modèle en 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")

Des commandes CLI 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

Publication Ultralytics YOLOv8

Ultralytics n'a pas publié d'article de recherche officiel pour YOLOv8 en raison de la nature évolutive rapide des modèles. Nous nous concentrons sur l'avancement de la technologie et 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 référentiel GitHub et notre documentation.

Si vous utilisez le modèle YOLOv8 ou tout autre logiciel de ce référentiel dans votre travail, veuillez 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 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 conçu pour améliorer les performances de la détection d’objets en temps réel grâce à des fonctionnalités avancées. Contrairement aux versions antérieures, YOLOv8 intègre une tête Ultralytics divisée sans point d’ancrage, des architectures backbone et neck à la pointe de la technologie, et offre un compromis précision-vitesse optimisé, ce qui le rend idéal pour diverses applications. Pour plus de détails, consultez les sections Aperçu et Principales caractéristiques.

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 de fonctionnement tels que Inference, Validation, Training et Export. Reportez-vous à la section Tâches et modes pris en charge pour plus d'informations.

Quelles sont les mesures de performance des modèles YOLOv8 ?

Les modèles YOLOv8 atteignent des performances de pointe sur divers ensembles de données de référence. Par exemple, le modèle YOLOv8n atteint une mAP (précision moyenne moyenne) 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 sur différentes tâches et ensembles de données sont disponibles dans la section Mesures de performance.

Comment puis-je entraîner un modèle YOLOv8 ?

L'entraînement d'un modèle YOLOv8 peut être effectué à l'aide de python ou de CLI. Vous trouverez ci-dessous des exemples d'entraînement d'un modèle à l'aide d'un modèle YOLOv8 pré-entraîné COCO sur l'ensemble de données COCO8 pour 100 epochs :

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, consultez la documentation Training.

Puis-je évaluer les modèles YOLOv8 pour connaître leurs performances ?

Oui, les modèles YOLOv8 peuvent être évalués en termes de vitesse et de précision dans différents formats d'exportation. Vous pouvez utiliser PyTorch, ONNX, TensorRT, et plus encore pour l'évaluation. Vous trouverez ci-dessous des exemples de commandes pour l'évaluation à l'aide de python et de 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, consultez la section Mesures de performance.



📅 Créé il y a 1 an ✏️ Mis à jour il y a 5 mois

Commentaires