Descripción general de los conjuntos de datos de clasificación de imágenes#
Estructura del conjunto de datos para tareas de clasificación de YOLO#
Para las tareas de clasificación de Ultralytics YOLO, el conjunto de datos debe organizarse en una estructura de directorios divididos específica bajo el directorio root. Esta estructura incluye un directorio train y un directorio val (también se aceptan valid y validation), con un directorio test opcional. Si no existe un directorio de validación, el directorio test se utiliza para la validación en su lugar.
Cada uno de estos directorios debe contener un subdirectorio para cada clase del conjunto de datos. Los subdirectorios reciben 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 esté almacenado 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/ (optional)
| |-- airplane/
| | |-- 10_airplane.png
| | |-- 11_airplane.png
| | |-- ...
| |
| |-- automobile/
| | |-- 100_automobile.png
| | |-- 101_automobile.png
| | |-- ...
| |
| |-- bird/
| | |-- 1000_bird.png
| | |-- 1001_bird.png
| | |-- ...
| |
| |-- ...
|
|-- val/
| |-- 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 automáticamente los datos en caché la primera vez que hagas referencia a ellos. Indica data como una ruta de 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. La mayoría de estos conjuntos de datos también están alojados en Ultralytics Platform, donde puedes explorar las imágenes y las anotaciones, ver las estadísticas del conjunto de datos y clonarlas para el entrenamiento en la nube.
- 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 dataset de 60K imágenes en color de 32x32 en 10 clases, con 6K 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 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 experimentar y probar más rápidamente.
- Imagenette: un subconjunto más pequeño de ImageNet que contiene 10 clases fáciles de distinguir para entrenar y probar más rápidamente.
- 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 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 8 primeras imágenes de cada dígito (0-9) de las particiones de entrenamiento y prueba de MNIST. El dataset contiene 160 imágenes en total.
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 YOLO, asegúrate de que siga el formato especificado anteriormente en «Estructura del conjunto de datos» y, a continuación, indica el directorio del conjunto de datos en el argumento data al inicializar el script de entrenamiento.
Preguntas frecuentes#
Para estructurar tu conjunto de datos para las tareas de clasificación de Ultralytics YOLO, debes seguir un formato de directorio dividido específico. Organiza tu conjunto de datos en directorios separados para
trainyval, y opcionalmentetest. Cada uno de estos directorios debe contener subdirectorios con el nombre de cada clase, con las imágenes correspondientes dentro. Esto facilita los procesos de entrenamiento y evaluación fluidos. Para ver un ejemplo, considera el formato del conjunto de datos CIFAR-10:cifar-10-/ |-- train/ | |-- airplane/ | |-- automobile/ | |-- bird/ | ... |-- val/ | |-- airplane/ | |-- automobile/ | |-- bird/ | ... |-- test/ (optional) | |-- airplane/ | |-- automobile/ | |-- bird/ | ...Para obtener más información, consulta la sección Estructura del conjunto de datos para tareas de clasificación de YOLO.
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 forma que resulta sencillo utilizarlos con YOLO. La página de cada conjunto de datos proporciona más información 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
trainyvalseparados (y opcionalmentetest), y 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)Encontrarás más información en la sección Añadir tu propio conjunto de datos.
Ultralytics YOLO ofrece varias ventajas para la clasificación de imágenes, entre ellas:
- Modelos preentrenados: carga modelos preentrenados como
yolo26n-cls.ptpara iniciar rápidamente el proceso de entrenamiento. - Facilidad de uso: comandos sencillos de API y CLI para el entrenamiento y la evaluación.
- Alto rendimiento: precisión y velocidad de vanguardia, ideales para aplicaciones en tiempo real.
- Compatibilidad con varios conjuntos de datos: integración fluida con diversos conjuntos de datos populares, como CIFAR-10, ImageNet y muchos más.
- Comunidad y asistencia: acceso a documentación extensa y a una comunidad activa para resolver problemas y realizar mejoras.
Para obtener más información y conocer aplicaciones reales, puedes explorar Ultralytics YOLO.
- Modelos preentrenados: carga modelos preentrenados como
Puedes entrenar fácilmente un modelo con Ultralytics YOLO tanto en Python como con CLI. Este es 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 muestran el sencillo proceso de entrenamiento de un modelo YOLO mediante cualquiera de los dos métodos. Para obtener más información, consulta la sección Uso y la página Entrenamiento para tareas de clasificación.