Classification des images
La classification des images est la plus simple des trois tâches et consiste à classer une image entière dans l'une des classes prédéfinies.
Le résultat d'un classificateur d'images est une étiquette de classe unique et un score de confiance. La classification d'images est utile lorsque tu as besoin de savoir uniquement à quelle classe appartient une image et que tu n'as pas besoin de savoir où se trouvent les objets de cette classe ou quelle est leur forme exacte.
Regarde : Explore Ultralytics YOLO Tâches : Classification d'images à l'aide de Ultralytics HUB
Astuce
YOLOv8 Classifie les modèles à l'aide de l'outil -cls
suffixe, c'est-à-dire yolov8n-cls.pt
et sont formés à l'avance sur ImageNet.
Modèles
YOLOv8 Les modèles Classify pré-entraînés sont présentés ici. Les modèles de détection, de segmentation et de pose sont entraînés sur l'ensemble de données COCO, tandis que les modèles de classification sont entraînés sur l'ensemble de données ImageNet.
Les modèles se téléchargent automatiquement à partir de la dernièreversion de Ultralytics lors de la première utilisation.
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 |
- acc sont les précisions du modèle sur le ImageNet jeu de données jeu de validation.
Reproduire paryolo val classify data=path/to/ImageNet device=0
- La vitesse moyenne sur les images de valeur ImageNet à l'aide d'un Amazon EC2 P4d instance.
Reproduire paryolo val classify data=path/to/ImageNet batch=1 device=0|cpu
Train
Entraîne YOLOv8n-cls sur l'ensemble de données MNIST160 pendant 100 époques à une taille d'image de 64. Pour une liste complète des arguments disponibles, voir la page Configuration.
Exemple
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n-cls.yaml") # build a new model from YAML
model = YOLO("yolov8n-cls.pt") # load a pretrained model (recommended for training)
model = YOLO("yolov8n-cls.yaml").load("yolov8n-cls.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="mnist160", epochs=100, imgsz=64)
# Build a new model from YAML and start training from scratch
yolo classify train data=mnist160 model=yolov8n-cls.yaml epochs=100 imgsz=64
# Start training from a pretrained *.pt model
yolo classify train data=mnist160 model=yolov8n-cls.pt epochs=100 imgsz=64
# Build a new model from YAML, transfer pretrained weights to it and start training
yolo classify train data=mnist160 model=yolov8n-cls.yaml pretrained=yolov8n-cls.pt epochs=100 imgsz=64
Format des données
YOLO Le format des jeux de données de classification est détaillé dans le Guide des jeux de données.
Val
Validate trained YOLOv8n-cls model accuracy on the MNIST160 dataset. No arguments are needed as the model
conserve sa formation data
et les arguments en tant qu'attributs du modèle.
Exemple
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n-cls.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Validate the model
metrics = model.val() # no arguments needed, dataset and settings remembered
metrics.top1 # top1 accuracy
metrics.top5 # top5 accuracy
Prévoir
Utilise un modèle YOLOv8n-cls entraîné pour faire des prédictions sur les images.
Exemple
Voir l'intégralité predict
détails du mode dans la rubrique Prévoir page.
Exporter
Exporte un modèle YOLOv8n-cls vers un format différent comme ONNX, CoreML, etc.
Exemple
Les formats d'exportation disponibles pour YOLOv8-cls sont présentés dans le tableau ci-dessous. Tu peux exporter vers n'importe quel format à l'aide de la fonction format
argument, c'est-à-dire format='onnx'
ou format='engine'
. Tu peux prédire ou valider directement sur les modèles exportés, c'est-à-dire . yolo predict model=yolov8n-cls.onnx
. Des exemples d'utilisation sont montrés pour ton modèle une fois l'exportation terminée.
Format | format Argument |
Modèle | Métadonnées | Arguments |
---|---|---|---|---|
PyTorch | - | yolov8n-cls.pt |
✅ | - |
TorchScript | torchscript |
yolov8n-cls.torchscript |
✅ | imgsz , optimize , batch |
ONNX | onnx |
yolov8n-cls.onnx |
✅ | imgsz , half , dynamic , simplify , opset , batch |
OpenVINO | openvino |
yolov8n-cls_openvino_model/ |
✅ | imgsz , half , int8 , batch |
TensorRT | engine |
yolov8n-cls.engine |
✅ | imgsz , half , dynamic , simplify , workspace , int8 , batch |
CoreML | coreml |
yolov8n-cls.mlpackage |
✅ | imgsz , half , int8 , nms , batch |
TF SavedModel | saved_model |
yolov8n-cls_saved_model/ |
✅ | imgsz , keras , int8 , batch |
TF GraphDef | pb |
yolov8n-cls.pb |
❌ | imgsz , batch |
TF Lite | tflite |
yolov8n-cls.tflite |
✅ | imgsz , half , int8 , batch |
TF Bord TPU | edgetpu |
yolov8n-cls_edgetpu.tflite |
✅ | imgsz |
TF.js | tfjs |
yolov8n-cls_web_model/ |
✅ | imgsz , half , int8 , batch |
PaddlePaddle | paddle |
yolov8n-cls_paddle_model/ |
✅ | imgsz , batch |
NCNN | ncnn |
yolov8n-cls_ncnn_model/ |
✅ | imgsz , half , batch |
Voir l'intégralité export
détails dans le Exporter page.
FAQ
Quel est l'objectif de YOLOv8 dans la classification des images ?
YOLOv8 modèles, tels que yolov8n-cls.pt
sont conçus pour une classification efficace des images. Ils attribuent une étiquette de classe unique à l'ensemble de l'image ainsi qu'un score de confiance. Cette méthode est particulièrement utile pour les applications où il suffit de connaître la classe spécifique d'une image, plutôt que d'identifier l'emplacement ou la forme des objets dans l'image.
Comment entraîner un modèle YOLOv8 pour la classification des images ?
Pour entraîner un modèle YOLOv8 , tu peux utiliser les commandes Python ou CLI . Par exemple, pour entraîner un modèle yolov8n-cls
sur l'ensemble de données MNIST160 pour 100 époques à une taille d'image de 64 :
Exemple
Pour plus d'options de configuration, visite la page Configuration.
Où puis-je trouver des modèles de classification pré-entraînés sur YOLOv8 ?
Les modèles de classification pré-entraînés YOLOv8 se trouvent dans le site Modèles section. Les modèles comme yolov8n-cls.pt
, yolov8s-cls.pt
, yolov8m-cls.pt
etc., sont entraînés sur la base de la ImageNet et peut être facilement téléchargé et utilisé pour diverses tâches de classification d'images.
Comment puis-je exporter un modèle YOLOv8 dans différents formats ?
Tu peux exporter un modèle YOLOv8 entraîné dans différents formats à l'aide des commandes Python ou CLI . Par exemple, pour exporter un modèle au format ONNX :
Exemple
Pour connaître les options d'exportation détaillées, reporte-toi à la page Exportation.
Comment valider un modèle de classification formé sur YOLOv8 ?
Pour valider la précision d'un modèle entraîné sur un ensemble de données comme MNIST160, tu peux utiliser les commandes suivantes Python ou CLI :
Exemple
Pour plus d'informations, visite la section Valider.