Saltar al contenido

Visi贸n general de los conjuntos de datos de clasificaci贸n de im谩genes

Estructura del conjunto de datos para las tareas de clasificaci贸n YOLO

Para Ultralytics YOLO tareas de clasificaci贸n, el conjunto de datos debe organizarse en una estructura espec铆fica de directorios divididos bajo el root para facilitar los procesos adecuados de formaci贸n, prueba y validaci贸n opcional. Esta estructura incluye directorios separados para la formaci贸n (train) y pruebas (test), con un directorio opcional para la validaci贸n (val).

Cada uno de estos directorios debe contener un subdirectorio por cada clase del conjunto de datos. Los subdirectorios llevan el nombre de la clase correspondiente y contienen todas las im谩genes de esa clase. Aseg煤rate de que cada archivo de imagen tenga un nombre 煤nico y se almacene en un formato com煤n, como JPEG o PNG.

Ejemplo de estructura de carpetas

Considera como ejemplo el conjunto de datos CIFAR-10. La estructura de carpetas deber铆a ser la siguiente

cifar-10-/
|
|-- train/
|   |-- airplane/
|   |   |-- 10008_airplane.png
|   |   |-- 10009_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 1000_automobile.png
|   |   |-- 1001_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 10014_bird.png
|   |   |-- 10015_bird.png
|   |   |-- ...
|   |
|   |-- ...
|
|-- test/
|   |-- airplane/
|   |   |-- 10_airplane.png
|   |   |-- 11_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 100_automobile.png
|   |   |-- 101_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 1000_bird.png
|   |   |-- 1001_bird.png
|   |   |-- ...
|   |
|   |-- ...
|
|-- val/ (optional)
|   |-- airplane/
|   |   |-- 105_airplane.png
|   |   |-- 106_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 102_automobile.png
|   |   |-- 103_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 1045_bird.png
|   |   |-- 1046_bird.png
|   |   |-- ...
|   |
|   |-- ...

Este enfoque estructurado garantiza que el modelo pueda aprender eficazmente de clases bien organizadas durante la fase de entrenamiento y evaluar con precisi贸n el rendimiento durante las fases de prueba y validaci贸n.

Utilizaci贸n

Ejemplo

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n-cls.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=path/to/data model=yolov8n-cls.pt epochs=100 imgsz=640

Conjuntos de datos compatibles

Ultralytics admite los siguientes conjuntos de datos con descarga autom谩tica:

  • Caltech 101: Un conjunto de datos que contiene im谩genes de 101 categor铆as de objetos para tareas de clasificaci贸n de im谩genes.
  • Caltech 256: Una versi贸n ampliada de Caltech 101 con 256 categor铆as de objetos e im谩genes m谩s desafiantes.
  • CIFAR-10: Un conjunto de datos de 60.000 im谩genes en color de 32x32 en 10 clases, con 6.000 im谩genes por clase.
  • CIFAR-100: Una versi贸n ampliada de CIFAR-10 con 100 categor铆as de objetos y 600 im谩genes por clase.
  • Moda-MNIST: Un conjunto de datos formado por 70.000 im谩genes en escala de grises de 10 categor铆as de moda para tareas de clasificaci贸n de im谩genes.
  • ImageNet: Un conjunto de datos a gran escala para la detecci贸n de objetos y la clasificaci贸n de im谩genes con m谩s de 14 millones de im谩genes y 20.000 categor铆as.
  • ImageNet-10: Un subconjunto m谩s peque帽o de ImageNet con 10 categor铆as para una experimentaci贸n y unas pruebas m谩s r谩pidas.
  • Imagenette: Un subconjunto m谩s peque帽o de ImageNet que contiene 10 clases f谩cilmente distinguibles para agilizar el entrenamiento y las pruebas.
  • Imagewoof: Un subconjunto m谩s desafiante de ImageNet que contiene 10 categor铆as de razas de perros para tareas de clasificaci贸n de im谩genes.
  • MNIST: Un conjunto de datos de 70.000 im谩genes en escala de grises de d铆gitos manuscritos para tareas de clasificaci贸n de im谩genes.

A帽adir tu propio conjunto de datos

Si tienes tu propio conjunto de datos y quieres utilizarlo para entrenar modelos de clasificaci贸n con Ultralytics, aseg煤rate de que sigue el formato especificado anteriormente en "Formato del conjunto de datos" y luego apunta tu data al directorio del conjunto de datos.

PREGUNTAS FRECUENTES

驴C贸mo estructuro mi conjunto de datos para las tareas de clasificaci贸n de YOLO ?

Para estructurar tu conjunto de datos para las tareas de clasificaci贸n de Ultralytics YOLO , debes seguir un formato espec铆fico de directorios divididos. Organiza tu conjunto de datos en directorios separados para train, testy opcionalmente val. Cada uno de estos directorios debe contener subdirectorios con el nombre de cada clase, con las im谩genes correspondientes en su interior. Esto facilita los procesos de entrenamiento y evaluaci贸n. Como ejemplo, considera el formato del conjunto de datos CIFAR-10:

cifar-10-/
|-- train/
|   |-- airplane/
|   |-- automobile/
|   |-- bird/
|   ...
|-- test/
|   |-- airplane/
|   |-- automobile/
|   |-- bird/
|   ...
|-- val/ (optional)
|   |-- airplane/
|   |-- automobile/
|   |-- bird/
|   ...

Para m谩s detalles, visita Estructura del conjunto de datos para tareas de clasificaci贸n YOLO .

驴Qu茅 conjuntos de datos admite Ultralytics YOLO para la clasificaci贸n de im谩genes?

Ultralytics YOLO admite la descarga autom谩tica de varios conjuntos de datos para la clasificaci贸n de im谩genes, incluidos:

Estos conjuntos de datos est谩n estructurados de forma que sea f谩cil utilizarlos con YOLO. La p谩gina de cada conjunto de datos proporciona m谩s detalles sobre su estructura y aplicaciones.

驴C贸mo a帽ado mi propio conjunto de datos para la clasificaci贸n de im谩genes YOLO ?

Para utilizar tu propio conjunto de datos con Ultralytics YOLO , aseg煤rate de que sigue el formato de directorio especificado necesario para la tarea de clasificaci贸n, con directorios separados. train, testy opcionalmente val y subdirectorios para cada clase que contenga las im谩genes respectivas. Una vez que tu conjunto de datos est茅 estructurado correctamente, apunta el comando data al directorio ra铆z de tu conjunto de datos al inicializar el script de entrenamiento. Aqu铆 tienes un ejemplo en Python:

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n-cls.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="path/to/your/dataset", epochs=100, imgsz=640)

Puedes encontrar m谩s detalles en la secci贸n A帽adir tu propio conjunto de datos.

驴Por qu茅 utilizar Ultralytics YOLO para la clasificaci贸n de im谩genes?

Ultralytics YOLO ofrece varias ventajas para la clasificaci贸n de im谩genes, entre ellas

  • Modelos preentrenados: Carga modelos preentrenados como yolov8n-cls.pt para poner en marcha tu proceso de entrenamiento.
  • Facilidad de uso: API sencilla y comandos CLI para formaci贸n y evaluaci贸n.
  • Alto rendimiento: Precisi贸n y velocidad de vanguardia, ideal para aplicaciones en tiempo real.
  • Compatibilidad con m煤ltiples conjuntos de datos: Perfecta integraci贸n con varios conjuntos de datos populares como CIFAR-10, ImageNet, etc.
  • Comunidad y asistencia: Acceso a una amplia documentaci贸n y a una comunidad activa para la resoluci贸n de problemas y mejoras.

Para obtener m谩s informaci贸n y aplicaciones reales, puedes explorar Ultralytics YOLO.

驴C贸mo puedo entrenar un modelo utilizando Ultralytics YOLO ?

Entrenar un modelo utilizando Ultralytics YOLO puede hacerse f谩cilmente tanto en Python como en CLI. He aqu铆 un ejemplo:

Ejemplo

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n-cls.pt")  # load a pretrained model

# Train the model
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=path/to/data model=yolov8n-cls.pt epochs=100 imgsz=640

Estos ejemplos demuestran el sencillo proceso de entrenamiento de un modelo YOLO utilizando cualquiera de los dos enfoques. Para m谩s informaci贸n, visita la secci贸n Uso.



Creado 2023-11-12, Actualizado 2024-07-04
Autores: glenn-jocher (7), stormsson (1), GreatV (1)

Comentarios