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 poryolo 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 poryolo 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
Prevê
Utiliza um modelo YOLOv8n-cls treinado para executar previsões em imagens.
Exemplo
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
Os formatos de exportação disponíveis em YOLOv8-cls encontram-se na tabela abaixo. 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 , 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 , batch |
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.
Criado em 2023-11-12, Atualizado em 2024-04-27
Autores: Burhan-Q (1), glenn-jocher (11), RizwanMunawar (2), fcakyon (1), Laughing-q (1), AyushExel (1)