Descripción general de los datasets de clasificación de imágenes
Estructura del dataset para tareas de clasificación YOLO
Para tareas de clasificación YOLO de Ultralytics, el dataset debe organizarse en una estructura específica de directorios divididos bajo el directorio root para facilitar los procesos de entrenamiento, prueba y validación opcional. Esta estructura incluye directorios separados para las fases de entrenamiento (train) y prueba (test), con un directorio opcional para la validación (val).
Cada uno de estos directorios debe contener un subdirectorio por cada clase en el dataset. Los subdirectorios llevan el nombre de la clase correspondiente y contienen todas las imágenes de dicha 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 el dataset CIFAR-10 como ejemplo. La estructura de carpetas debería verse así:
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.
Uso
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-cls.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)La mayoría de los nombres de datasets integrados (por ejemplo, cifar10, imagenette o mnist160) descargarán y almacenarán automáticamente los datos la primera vez que los menciones. Asigna data a una ruta de carpeta solo cuando hayas preparado un dataset personalizado.
Datasets compatibles
Ultralytics admite los siguientes datasets con descarga automática:
- Caltech 101: Un dataset 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 dataset de 60.000 imágenes en color de 32x32 distribuidas 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.
- Fashion-MNIST: Un dataset que consiste en 70.000 imágenes en escala de grises de 10 categorías de moda para tareas de clasificación de imágenes.
- ImageNet: Un dataset a gran escala para detección de objetos y 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 pruebas y experimentación más rápidas.
- Imagenette: Un subconjunto más pequeño de ImageNet que contiene 10 clases fácilmente distinguibles para un entrenamiento y pruebas más rápidos.
- Imagewoof: Un subconjunto de ImageNet más desafiante que contiene 10 categorías de razas de perros para tareas de clasificación de imágenes.
- MNIST: Un dataset de 70.000 imágenes en escala de grises de dígitos escritos a mano para tareas de clasificación de imágenes.
- MNIST160: Las primeras 8 imágenes de cada categoría de MNIST del dataset MNIST. El dataset contiene 160 imágenes en total.
Añadir tu propio dataset
Si tienes tu propio dataset y deseas utilizarlo para entrenar modelos de clasificación con Ultralytics YOLO, asegúrate de que siga el formato especificado anteriormente en "Estructura del dataset" y luego apunta tu argumento data al directorio del dataset al inicializar tu script de entrenamiento.
Preguntas frecuentes
¿Cómo estructuro mi dataset para tareas de clasificación YOLO?
Para estructurar tu dataset para tareas de clasificación de Ultralytics YOLO, debes seguir un formato específico de directorio dividido. Organiza tu dataset en directorios separados para train, test y, opcionalmente, val. Cada uno de estos directorios debe contener subdirectorios nombrados según cada clase, con las imágenes correspondientes dentro. Esto facilita los procesos de entrenamiento y evaluación. Como ejemplo, considera el formato del dataset CIFAR-10:
cifar-10-/
|-- train/
| |-- airplane/
| |-- automobile/
| |-- bird/
| ...
|-- test/
| |-- airplane/
| |-- automobile/
| |-- bird/
| ...
|-- val/ (optional)
| |-- airplane/
| |-- automobile/
| |-- bird/
| ...Para obtener más detalles, visita la sección Estructura del dataset para tareas de clasificación YOLO.
¿Qué datasets admite Ultralytics YOLO para la clasificación de imágenes?
Ultralytics YOLO admite la descarga automática de varios datasets para la clasificación de imágenes, incluidos Caltech 101, Caltech 256, CIFAR-10, CIFAR-100, Fashion-MNIST, ImageNet, ImageNet-10, Imagenette, Imagewoof y MNIST. Estos datasets están estructurados de una manera que los hace fáciles de usar con YOLO. La página de cada dataset proporciona más detalles sobre su estructura y aplicaciones.
¿Cómo añado mi propio dataset para la clasificación de imágenes YOLO?
Para usar tu propio dataset con Ultralytics YOLO, asegúrate de que siga el formato de directorio especificado requerido para la tarea de clasificación, con directorios separados para train, test y opcionalmente val, y subdirectorios para cada clase que contengan las respectivas imágenes. Una vez que tu dataset esté estructurado correctamente, apunta el argumento data al directorio raíz de tu dataset al inicializar el script de entrenamiento. Aquí tienes un ejemplo en Python:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-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ñadiendo tu propio dataset.
¿Por qué debería usar Ultralytics YOLO para la clasificación de imágenes?
Ultralytics YOLO ofrece varios beneficios para la clasificación de imágenes, incluyendo:
- Modelos preentrenados: Carga modelos preentrenados como
yolo26n-cls.ptpara acelerar tu proceso de entrenamiento. - Facilidad de uso: Comandos sencillos de API y CLI para entrenamiento y evaluación.
- Alto rendimiento: precisión y velocidad de última generación, ideal para aplicaciones en tiempo real.
- Soporte para múltiples datasets: Integración fluida con varios datasets populares como CIFAR-10, ImageNet y más.
- Comunidad y soporte: Acceso a documentación extensa y a una comunidad activa para la resolución de problemas y mejoras.
Para obtener información adicional y ver aplicaciones en el mundo real, puedes explorar Ultralytics YOLO.
¿Cómo puedo entrenar un modelo usando Ultralytics YOLO?
Entrenar un modelo usando Ultralytics YOLO se puede hacer fácilmente tanto en Python como en CLI. Aquí tienes un ejemplo:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-cls.pt") # load a pretrained model
# Train the model
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)Estos ejemplos demuestran el proceso sencillo de entrenar un modelo YOLO usando cualquier enfoque. Para más información, visita la sección Uso y la página de Entrenamiento para tareas de clasificación.