Vai al contenuto

Classificazione delle immagini

Esempi di classificazione delle immagini

La classificazione delle immagini è il compito più semplice dei tre e consiste nel classificare un'intera immagine in una serie di classi predefinite.

L'output di un classificatore di immagini è una singola etichetta di classe e un punteggio di confidenza. La classificazione delle immagini è utile quando hai bisogno di sapere solo a quale classe appartiene un'immagine e non hai bisogno di sapere dove si trovano gli oggetti di quella classe o qual è la loro forma esatta.



Guarda: Esplora Ultralytics YOLO Compiti: Classificazione delle immagini con Ultralytics HUB

Suggerimento

YOLOv8 I modelli di classificazione utilizzano il metodo -cls suffisso, cioè yolov8n-cls.pt e sono preaddestrati su ImageNet.

Modelli

YOLOv8 I modelli Classify pre-addestrati sono mostrati qui. I modelli Detect, Segment e Pose sono stati preaddestrati sul dataset COCO, mentre i modelli Classify sono stati preaddestrati sul dataset ImageNet.

I modelli vengono scaricati automaticamente dall'ultimarelease di Ultralytics al primo utilizzo.

Modello dimensione
(pixel)
acc
top1
acc
top5
Velocità
CPU ONNX
(ms)
Velocità
A100 TensorRT
(ms)
params
(M)
FLOPs
(B) a 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 i valori sono le precisioni del modello sul ImageNet set di convalida del set di dati.
    Riproduci da yolo val classify data=path/to/ImageNet device=0
  • Velocità mediato sulle immagini ImageNet val utilizzando un Amazon EC2 P4d istanza.
    Riproduci da yolo val classify data=path/to/ImageNet batch=1 device=0|cpu

Treno

Addestra YOLOv8n-cls sul dataset MNIST160 per 100 epoch con dimensioni dell'immagine 64. Per un elenco completo degli argomenti disponibili, consulta la pagina di configurazione.

Esempio

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

Formato del set di dati

YOLO Il formato del dataset di classificazione è riportato in dettaglio nella Guida ai Dataset.

Val

Convalida l'accuratezza del modello addestrato YOLOv8n-cls sul dataset MNIST160. Non è necessario passare alcun argomento in quanto il modello model mantiene la sua formazione data e gli argomenti come attributi del modello.

Esempio

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

Prevedere

Utilizza un modello addestrato YOLOv8n-cls per eseguire previsioni sulle immagini.

Esempio

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

Vedi tutto predict i dettagli della modalità nella sezione Prevedere pagina.

Esportazione

Esporta un modello YOLOv8n-cls in un formato diverso come ONNX, CoreML, ecc.

Esempio

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

I formati di esportazione disponibili di YOLOv8-cls sono riportati nella tabella seguente. Puoi esportare in qualsiasi formato utilizzando l'opzione format argomento, vale a dire format='onnx' o format='engine'. Puoi prevedere o convalidare direttamente i modelli esportati, ad es. yolo predict model=yolov8n-cls.onnx. Al termine dell'esportazione vengono mostrati degli esempi di utilizzo per il tuo modello.

Formato format Argomento Modello Metadati Argomenti
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 Bordo 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

Vedi tutto export dettagli nella sezione Esportazione pagina.



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

Commenti