12 KiB
comments | description | keywords |
---|---|---|
true | Aprenda sobre los modelos de clasificación de imágenes YOLOv8 Classify. Obtenga información detallada sobre la Lista de Modelos Preentrenados y cómo Entrenar, Validar, Predecir y Exportar modelos. | Ultralytics, YOLOv8, Clasificación de imágenes, Modelos preentrenados, YOLOv8n-cls, Entrenamiento, Validación, Predicción, Exportación de modelos |
Clasificación de Imágenes
La clasificación de imágenes es la tarea más sencilla de las tres y consiste en clasificar una imagen completa en una de un conjunto de clases predefinidas.
La salida de un clasificador de imágenes es una única etiqueta de clase y una puntuación de confianza. La clasificación de imágenes es útil cuando solo necesita saber a qué clase pertenece una imagen y no necesita conocer dónde están ubicados los objetos de esa clase o cuál es su forma exacta.
!!! tip "Consejo"
Los modelos YOLOv8 Classify utilizan el sufijo `-cls`, por ejemplo, `yolov8n-cls.pt` y están preentrenados en [ImageNet](https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/ImageNet.yaml).
Modelos
Los modelos Classify preentrenados YOLOv8 se muestran aquí. Los modelos Detect, Segment y Pose están preentrenados en el conjunto de datos COCO, mientras que los modelos Classify están preentrenados en el conjunto de datos ImageNet.
Los modelos se descargan automáticamente desde el último lanzamiento de Ultralytics en el primer uso.
Modelo | Tamaño (píxeles) |
Exactitud top1 |
Exactitud top5 |
Velocidad CPU ONNX (ms) |
Velocidad A100 TensorRT (ms) |
Parámetros (M) |
FLOPs (B) en 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 |
- Los valores de Exactitud son las precisiones de los modelos en el conjunto de datos de validación de ImageNet.
Para reproducir usaryolo val classify data=path/to/ImageNet device=0
- Velocidad promediada sobre imágenes de validación de ImageNet usando una instancia de Amazon EC2 P4d
Para reproducir usaryolo val classify data=path/to/ImageNet batch=1 device=0|cpu
Entrenamiento
Entrena el modelo YOLOv8n-cls en el conjunto de datos MNIST160 durante 100 épocas con un tamaño de imagen de 64. Para obtener una lista completa de argumentos disponibles, consulte la página de Configuración.
!!! example ""
=== "Python"
```python
from ultralytics import YOLO
# Cargar un modelo
model = YOLO('yolov8n-cls.yaml') # construir un nuevo modelo desde YAML
model = YOLO('yolov8n-cls.pt') # cargar un modelo preentrenado (recomendado para entrenamiento)
model = YOLO('yolov8n-cls.yaml').load('yolov8n-cls.pt') # construir desde YAML y transferir pesos
# Entrenar el modelo
results = model.train(data='mnist160', epochs=100, imgsz=64)
```
=== "CLI"
```bash
# Construir un nuevo modelo desde YAML y empezar entrenamiento desde cero
yolo classify train data=mnist160 model=yolov8n-cls.yaml epochs=100 imgsz=64
# Empezar entrenamiento desde un modelo *.pt preentrenado
yolo classify train data=mnist160 model=yolov8n-cls.pt epochs=100 imgsz=64
# Construir un nuevo modelo desde YAML, transferir pesos preentrenados e iniciar entrenamiento
yolo classify train data=mnist160 model=yolov8n-cls.yaml pretrained=yolov8n-cls.pt epochs=100 imgsz=64
```
Formato del conjunto de datos
El formato del conjunto de datos de clasificación YOLO puede encontrarse en detalle en la Guía de Conjuntos de Datos.
Validación
Validar la exactitud del modelo YOLOv8n-cls entrenado en el conjunto de datos MNIST160. No es necesario pasar ningún argumento ya que el modelo
retiene su data
y argumentos como atributos del modelo.
!!! example ""
=== "Python"
```python
from ultralytics import YOLO
# Cargar un modelo
model = YOLO('yolov8n-cls.pt') # cargar un modelo oficial
model = YOLO('path/to/best.pt') # cargar un modelo personalizado
# Validar el modelo
metrics = model.val() # no se necesitan argumentos, el conjunto de datos y configuraciones se recuerdan
metrics.top1 # precisión top1
metrics.top5 # precisión top5
```
=== "CLI"
```bash
yolo classify val model=yolov8n-cls.pt # validar modelo oficial
yolo classify val model=path/to/best.pt # validar modelo personalizado
```
Predicción
Usar un modelo YOLOv8n-cls entrenado para realizar predicciones en imágenes.
!!! example ""
=== "Python"
```python
from ultralytics import YOLO
# Cargar un modelo
model = YOLO('yolov8n-cls.pt') # cargar un modelo oficial
model = YOLO('path/to/best.pt') # cargar un modelo personalizado
# Predecir con el modelo
results = model('https://ultralytics.com/images/bus.jpg') # predecir en una imagen
```
=== "CLI"
```bash
yolo classify predict model=yolov8n-cls.pt source='https://ultralytics.com/images/bus.jpg' # predecir con modelo oficial
yolo classify predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg' # predecir con modelo personalizado
```
Ver detalles completos del modo predict
en la página de Predicción.
Exportación
Exportar un modelo YOLOv8n-cls a un formato diferente como ONNX, CoreML, etc.
!!! example ""
=== "Python"
```python
from ultralytics import YOLO
# Cargar un modelo
model = YOLO('yolov8n-cls.pt') # cargar un modelo oficial
model = YOLO('path/to/best.pt') # cargar un modelo entrenado personalizado
# Exportar el 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 entrenado personalizado
```
Los formatos de exportación disponibles para YOLOv8-cls se encuentran en la tabla a continuación. Puede predecir o validar directamente en modelos exportados, por ejemplo, yolo predict model=yolov8n-cls.onnx
. Ejemplos de uso se muestran para su modelo después de que se completa la exportación.
Formato | Argumento format |
Modelo | Metadatos | 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 |
Vea detalles completos de exportación
en la página de Exportación.