Resumen de conjuntos de datos para clasificación de imágenes#
Estructura del conjunto de datos para tareas de clasificación YOLO#
Para las tareas de clasificación de Ultralytics YOLO, el conjunto de datos debe organizarse en una estructura específica de directorios divididos bajo el directorio root para facilitar los procesos adecuados de entrenamiento, prueba y validación opcional. Esta estructura incluye directorios separados para las fases de entrenamiento (train) y validación (val), con un directorio opcional para las pruebas (test).
Cada uno de estos directorios debe contener un subdirectorio para cada clase en el conjunto de datos. Los subdirectorios reciben 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 conjunto de datos CIFAR-10 como ejemplo. La estructura de carpetas debería tener este aspecto:
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 conjuntos de datos integrados (por ejemplo, cifar10, imagenette o mnist160) descargarán y almacenarán en caché automáticamente los datos la primera vez que los referencies. Apunta data a la ruta de una carpeta solo cuando hayas seleccionado y preparado un conjunto de datos personalizado.
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 extendida 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 6000 imágenes por clase.
- CIFAR-100: Una versión extendida de CIFAR-10 con 100 categorías de objetos y 600 imágenes por clase.
- Fashion-MNIST: Un conjunto de datos que consta de 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 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 una experimentación y pruebas 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 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 escritos a mano para tareas de clasificación de imágenes.
- MNIST160: Las primeras 8 imágenes de cada dígito (0-9) de las divisiones de entrenamiento y prueba de MNIST. El conjunto de datos contiene 160 imágenes en total.
Añadir tu propio conjunto de datos#
Si tienes tu propio conjunto de datos y deseas utilizarlo para entrenar modelos de clasificación con Ultralytics YOLO, asegúrate de que siga el formato especificado anteriormente en "Dataset Structure" y luego apunta tu argumento data al directorio del conjunto de datos al inicializar tu script de entrenamiento.
FAQ#
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 los nombres de cada clase, con las imágenes correspondientes dentro. Esto facilita unos procesos de entrenamiento y evaluación fluidos. 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 obtener más detalles, visita la sección Dataset Structure for YOLO Classification Tasks.
Ultralytics YOLO admite la descarga automática de varios conjuntos de datos 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 conjuntos de datos están estructurados de manera que facilitan su uso con YOLO. La página de cada conjunto de datos proporciona más detalles sobre su estructura y aplicaciones.
Para utilizar tu propio conjunto de datos 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,testy, opcionalmente,val, así como subdirectorios para cada clase que contengan las imágenes respectivas. Una vez que tu conjunto de datos esté estructurado correctamente, apunta el argumentodataal 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("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 Adding your own dataset.
Ultralytics YOLO ofrece varias ventajas para la clasificación de imágenes, entre ellas:
- Pretrained Models: Carga modelos preentrenados como
yolo26n-cls.ptpara acelerar tu proceso de entrenamiento. - Facilidad de uso: API sencilla y comandos CLI para entrenamiento y evaluación.
- High Performance: Precisión y velocidad de vanguardia, ideales para aplicaciones en tiempo real.
- Support for Multiple Datasets: Integración perfecta con varios conjuntos de datos populares como CIFAR-10, ImageNet y más.
- Comunidad y soporte: Acceso a documentación exhaustiva y a una comunidad activa para resolución de problemas y mejoras.
Para obtener información adicional y aplicaciones del mundo real, puedes explorar Ultralytics YOLO.
- Pretrained Models: Carga modelos preentrenados como
Entrenar un modelo usando Ultralytics YOLO se puede hacer fácilmente tanto en Python como en CLI. Aquí tienes un ejemplo:
Ejemplofrom 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 sencillo proceso de entrenar un modelo YOLO utilizando cualquiera de los dos enfoques. Para obtener más información, visita la sección Usage y la página Train para tareas de clasificación.