Skip to content

Classification des images

Exemples de classification d'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 par yolo 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 par yolo 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

Valide la précision du modèle YOLOv8n-cls entraîné sur l'ensemble de données MNIST160. Aucun argument n'a besoin d'être passé en tant que 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
yolo classify val model=yolov8n-cls.pt  # val official model
yolo classify val model=path/to/best.pt  # val custom model

Prévoir

Utilise un modèle YOLOv8n-cls entraîné pour faire des prédictions sur les images.

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

# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg")  # predict on an image
yolo classify predict model=yolov8n-cls.pt source='https://ultralytics.com/images/bus.jpg'  # predict with official model
yolo classify predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg'  # predict with custom model

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

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 trained model

# Export the model
model.export(format="onnx")
yolo export model=yolov8n-cls.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx  # export custom trained model

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.



Created 2023-11-12, Updated 2024-06-10
Authors: glenn-jocher (16), Burhan-Q (4), RizwanMunawar (2), fcakyon (1), Laughing-q (1)

Commentaires