You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

12 KiB

comments description keywords
true Aprenda sobre modelos YOLOv8 Classify para classificação de imagens. Obtenha informações detalhadas sobre Lista de Modelos Pré-treinados e como Treinar, Validar, Prever e Exportar modelos. Ultralytics, YOLOv8, Classificação de Imagem, Modelos Pré-treinados, YOLOv8n-cls, Treinamento, Validação, Previsão, Exportação de Modelo

Classificação de Imagens

Exemplos de classificação de imagens

A classificação de imagens é a tarefa mais simples das três e envolve classificar uma imagem inteira em uma de um conjunto de classes pré-definidas.

A saída de um classificador de imagem é um único rótulo de classe e uma pontuação de confiança. A classificação de imagem é útil quando você precisa saber apenas a qual classe uma imagem pertence e não precisa conhecer a localização dos objetos dessa classe ou o formato exato deles.

!!! tip "Dica"

Os modelos YOLOv8 Classify usam o sufixo `-cls`, ou seja, `yolov8n-cls.pt` e são pré-treinados na [ImageNet](https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/ImageNet.yaml).

Modelos

Aqui são mostrados os modelos pré-treinados YOLOv8 Classify. Modelos de Detecção, Segmentação e Pose são pré-treinados no dataset COCO, enquanto que os modelos de Classificação são pré-treinados no dataset ImageNet.

Modelos são baixados automaticamente do último lançamento da Ultralytics release no primeiro uso.

Modelo Tamanho
(pixels)
acurácia
top1
acurácia
top5
Velocidade
CPU ONNX
(ms)
Velocidade
A100 TensorRT
(ms)
parâmetros
(M)
FLOPs
(B) a 640
YOLOv8n-cls 224 66.6 87.0 12.9 0.31 2.7 4.3
YOLOv8s-cls 224 72.3 91.1 23.4 0.35 6.4 13.5
YOLOv8m-cls 224 76.4 93.2 85.4 0.62 17.0 42.7
YOLOv8l-cls 224 78.0 94.1 163.0 0.87 37.5 99.7
YOLOv8x-cls 224 78.4 94.3 232.0 1.01 57.4 154.8
  • Os valores de acc são as acurácias dos modelos no conjunto de validação do dataset ImageNet.
    Reproduza com yolo val classify data=path/to/ImageNet device=0
  • Velocidade média observada sobre imagens de validação da ImageNet usando uma instância Amazon EC2 P4d.
    Reproduza com yolo val classify data=path/to/ImageNet batch=1 device=0|cpu

Treino

Treine o modelo YOLOv8n-cls no dataset MNIST160 por 100 épocas com tamanho de imagem 64. Para uma lista completa de argumentos disponíveis, veja a página de Configuração.

!!! exemplo ""

=== "Python"

    ```python
    from ultralytics import YOLO

    # Carregar um modelo
    model = YOLO('yolov8n-cls.yaml')  # construir um novo modelo a partir do YAML
    model = YOLO('yolov8n-cls.pt')  # carregar um modelo pré-treinado (recomendado para treino)
    model = YOLO('yolov8n-cls.yaml').load('yolov8n-cls.pt')  # construir a partir do YAML e transferir pesos

    # Treinar o modelo
    results = model.train(data='mnist160', epochs=100, imgsz=64)
    ```

=== "CLI"

    ```bash
    # Construir um novo modelo a partir do YAML e começar treino do zero
    yolo classify train data=mnist160 model=yolov8n-cls.yaml epochs=100 imgsz=64

    # Começar treino de um modelo pré-treinado *.pt
    yolo classify train data=mnist160 model=yolov8n-cls.pt epochs=100 imgsz=64

    # Construir um novo modelo do YAML, transferir pesos pré-treinados e começar treino
    yolo classify train data=mnist160 model=yolov8n-cls.yaml pretrained=yolov8n-cls.pt epochs=100 imgsz=64
    ```

Formato do dataset

O formato do dataset de classificação YOLO pode ser encontrado em detalhes no Guia de Datasets.

Val

Valide a acurácia do modelo YOLOv8n-cls treinado no dataset MNIST160. Não é necessário passar argumento, pois o modelo retém seus dados de treinamento e argumentos como atributos do modelo.

!!! exemplo ""

=== "Python"

    ```python
    from ultralytics import YOLO

    # Carregar um modelo
    model = YOLO('yolov8n-cls.pt')  # carregar um modelo oficial
    model = YOLO('path/to/best.pt')  # carregar um modelo personalizado

    # Validar o modelo
    metrics = model.val()  # sem argumentos necessários, dataset e configurações lembrados
    metrics.top1   # acurácia top1
    metrics.top5   # acurácia top5
    ```
=== "CLI"

    ```bash
    yolo classify val model=yolov8n-cls.pt  # validar modelo oficial
    yolo classify val model=path/to/best.pt  # validar modelo personalizado
    ```

Previsão

Use um modelo YOLOv8n-cls treinado para realizar previsões em imagens.

!!! exemplo ""

=== "Python"

    ```python
    from ultralytics import YOLO

    # Carregar um modelo
    model = YOLO('yolov8n-cls.pt')  # carregar um modelo oficial
    model = YOLO('path/to/best.pt')  # carregar um modelo personalizado

    # Prever com o modelo
    results = model('https://ultralytics.com/images/bus.jpg')  # prever em uma imagem
    ```
=== "CLI"

    ```bash
    yolo classify predict model=yolov8n-cls.pt source='https://ultralytics.com/images/bus.jpg'  # prever com modelo oficial
    yolo classify predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg'  # prever com modelo personalizado
    ```

Veja detalhes completos do modo de previsão na página Predict.

Exportar

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

!!! exemplo ""

=== "Python"

    ```python
    from ultralytics import YOLO

    # Carregar um modelo
    model = YOLO('yolov8n-cls.pt')  # carregar um modelo oficial
    model = YOLO('path/to/best.pt')  # carregar um modelo treinado personalizado

    # Exportar o modelo
    model.export(format='onnx')
    ```
=== "CLI"

    ```bash
    yolo export model=yolov8n-cls.pt format=onnx  # exportar modelo oficial
    yolo export model=path/to/best.pt format=onnx  # exportar modelo treinado personalizado
    ```

Os formatos de exportação YOLOv8-cls disponíveis estão na tabela abaixo. Você pode prever ou validar diretamente nos modelos exportados, ou seja, yolo predict model=yolov8n-cls.onnx. Exemplos de uso são mostrados para seu modelo após a conclusão da exportação.

Formato Argumento format Modelo Metadata Argumentos
PyTorch - yolov8n-cls.pt -
TorchScript torchscript yolov8n-cls.torchscript imgsz, optimize
ONNX onnx yolov8n-cls.onnx imgsz, half, dynamic, simplify, opset
OpenVINO openvino yolov8n-cls_openvino_model/ imgsz, half
TensorRT engine yolov8n-cls.engine imgsz, half, dynamic, simplify, workspace
CoreML coreml yolov8n-cls.mlpackage imgsz, half, int8, nms
TF SavedModel saved_model yolov8n-cls_saved_model/ imgsz, keras
TF GraphDef pb yolov8n-cls.pb imgsz
TF Lite tflite yolov8n-cls.tflite imgsz, half, int8
TF Edge TPU edgetpu yolov8n-cls_edgetpu.tflite imgsz
TF.js tfjs yolov8n-cls_web_model/ imgsz
PaddlePaddle paddle yolov8n-cls_paddle_model/ imgsz
ncnn ncnn yolov8n-cls_ncnn_model/ imgsz, half

Veja detalhes completos da exportação na página Export.