Ir al contenido

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 la formación adecuada, las pruebas y los procesos de validación opcionales. 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úrese de que cada archivo de imagen tiene un nombre único y se almacena en un formato común, como JPEG o PNG.

Ejemplo de estructura de carpetas

Considere el conjunto de datos CIFAR-10 como ejemplo. 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("yolo11n-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 classify train data=path/to/data model=yolo11n-cls.pt epochs=100 imgsz=640

Conjuntos de datos compatibles

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

  • Caltech 101: 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 compuesto 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 agilizar la experimentación y las pruebas.
  • 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.
  • MNIST160: Las primeras 8 imágenes de cada categoría MNIST del conjunto de datos MNIST. El conjunto de datos contiene 160 imágenes en total.

Añadir su propio conjunto de datos

Si tiene su propio conjunto de datos y desea utilizarlo para entrenar modelos de clasificación con Ultralytics YOLO, asegúrese de que sigue el formato especificado anteriormente en "Estructura del conjunto de datos" y, a continuación, apunte su data al directorio del conjunto de datos al inicializar el script de entrenamiento.

PREGUNTAS FRECUENTES

¿Cómo puedo estructurar mi conjunto de datos para las tareas de clasificación de YOLO ?

Para estructurar su conjunto de datos para las tareas de clasificación de Ultralytics YOLO , debe seguir un formato específico de directorios divididos. Organice su 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 formación y evaluación. A modo de ejemplo, considere el directorio CIFAR-10 formato del conjunto de datos:

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

Para más detalles, visite la sección Estructura del conjunto de datos para las 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, como Caltech 101, Caltech 256, CIFAR-10, CIFAR-100, Fashion-MNIST, ImageNet, ImageNet-10, Imagenette, Imagewoof y MNIST. Estos conjuntos de datos están estructurados de forma que sea fácil utilizarlos con YOLO. La página de cada conjunto de datos ofrece 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 su propio conjunto de datos con Ultralytics YOLO , asegúrese 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 su conjunto de datos esté estructurado correctamente, apunte el archivo data al directorio raíz del conjunto de datos al inicializar el script de entrenamiento. He aquí un ejemplo en Python:

from ultralytics import YOLO

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

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

Encontrará más detalles en la sección Añadir su 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 yolo11n-cls.pt para poner en marcha su proceso de formación.
  • 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: Integración perfecta con varios conjuntos de datos populares como CIFAR-10, ImageNet, etc.
  • Comunidad y asistencia: Acceso a amplia documentación y a una comunidad activa para la resolución de problemas y mejoras.

Para más información y aplicaciones reales, puede consultar 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("yolo11n-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 classify train data=path/to/data model=yolo11n-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 obtener más información, visite la sección Uso y la página Entrenar para tareas de clasificación.

Creado hace 1 año ✏️ Actualizado hace 11 días

Comentarios