Salta para o conte√ļdo

Classificação de imagens

Exemplos de classificação de imagens

A classificação de imagens é a mais simples das três tarefas e envolve a classificação de uma imagem inteira num conjunto de classes predefinidas.

O resultado de um classificador de imagens √© uma etiqueta de classe √ļnica e uma pontua√ß√£o de confian√ßa. A classifica√ß√£o de imagens √© √ļtil quando apenas precisa de saber a que classe pertence uma imagem e n√£o precisa de saber onde est√£o localizados os objectos dessa classe ou qual √© a sua forma exacta.



Observa: Explora Ultralytics YOLO Tasks: Classificação de imagens usando Ultralytics HUB

Dica

YOLOv8 Os modelos de classificação utilizam o -cls sufixo, ou seja yolov8n-cls.pt e são pré-treinados em ImageNet.

Modelos

YOLOv8 Os modelos Classify pré-treinados são mostrados aqui. Os modelos Detetar, Segmentar e Pose são pré-treinados no conjunto de dados COCO, enquanto os modelos Classificar são pré-treinados no conjunto de dados ImageNet.

Os modelos são transferidos automaticamente a partir daversão mais recente de Ultralytics na primeira utilização.

Modelo tamanho
(pixéis)
acc
top1
acc
top5
Velocidade
CPU ONNX
(ms)
Velocidade
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
  • ac s√£o as precis√Ķes do modelo no ImageNet conjunto de valida√ß√£o do conjunto de dados.
    Reproduzir por yolo val classify data=path/to/ImageNet device=0
  • Velocidade calcula a m√©dia das imagens ImageNet val utilizando um Amazon EC2 P4d inst√Ęncia.
    Reproduzir por yolo val classify data=path/to/ImageNet batch=1 device=0|cpu

Comboio

Treina YOLOv8n-cls no conjunto de dados MNIST160 para 100 épocas com o tamanho de imagem 64. Para obter uma lista completa dos argumentos disponíveis, consulta a página Configuração.

Exemplo

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 do conjunto de dados

YOLO O formato do conjunto de dados de classificação pode ser consultado em pormenor no Guia do conjunto de dados.

Val

Valida a precisão do modelo YOLOv8n-cls treinado no conjunto de dados MNIST160. Não precisas de passar nenhum argumento, pois o model mantém a sua formação data e argumentos como atributos do modelo.

Exemplo

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

Prevê

Utiliza um modelo YOLOv8n-cls treinado para executar previs√Ķes em imagens.

Exemplo

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

Ver completo predict detalhes do modo no Prevê página.

Exportação

Exporta um modelo YOLOv8n-cls para um formato diferente, como ONNX, CoreML, etc.

Exemplo

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

Os formatos de exportação disponíveis em YOLOv8-cls estão na tabela abaixo. Podes exportar para qualquer formato utilizando o format argumento, ou seja format='onnx' ou format='engine'. Podes prever ou validar diretamente nos modelos exportados, ou seja yolo predict model=yolov8n-cls.onnx. São apresentados exemplos de utilização para o teu modelo após a conclusão da exportação.

Formato format Argumenta Modelo Metadados Argumentos
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 Leve tflite yolov8n-cls.tflite ‚úÖ imgsz, half, int8, batch
TF Borda 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

Ver completo export detalhes no Exportação página.



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

Coment√°rios