Descripción general de los conjuntos de datos de clasificación de imágenes
Estructura del conjunto de datos para tareas de clasificación YOLO
Para Ultralytics tareas de clasificación YOLO, el conjunto de datos debe organizarse en una estructura de directorio dividido específica bajo el root
directorio para facilitar los procesos adecuados de entrenamiento, prueba y validación opcional. Esta estructura incluye directorios separados para el entrenamiento (train
) y las pruebas (test
) fases, con un directorio opcional para la validación (val
).
Cada uno de estos directorios debe contener un subdirectorio para cada clase en el conjunto de datos. Los subdirectorios se nombran según la clase correspondiente y contienen todas las imágenes para esa clase. Asegúrese 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
Considere el conjunto de datos CIFAR-10 como ejemplo. La estructura de carpetas debería ser similar a esta:
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
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: 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 a color de 32x32 en 10 clases, con 6,000 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 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 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 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 tu 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 siga el formato especificado anteriormente en "Estructura del conjunto de datos" y luego apunte su data
argumento al directorio del conjunto de datos al inicializar tu script de entrenamiento.
Preguntas frecuentes
¿Cómo estructuro mi conjunto de datos para tareas de clasificación YOLO?
Para estructurar tu conjunto de datos para tareas de clasificación de Ultralytics YOLO, debes seguir un formato específico de directorio dividido. Organiza tu conjunto de datos en directorios separados para train
, test
, y 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. Por ejemplo, considere el CIFAR-10 formato del conjunto de datos:
cifar-10-/
|-- train/
| |-- airplane/
| |-- automobile/
| |-- bird/
| ...
|-- test/
| |-- airplane/
| |-- automobile/
| |-- bird/
| ...
|-- val/ (optional)
| |-- airplane/
| |-- automobile/
| |-- bird/
| ...
Para obtener más detalles, visite la sección Estructura del conjunto de datos para tareas de clasificación YOLO.
¿Qué conjuntos de datos son compatibles con 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 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 una manera que los hace fáciles de usar 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 usar su propio conjunto de datos con Ultralytics YOLO, asegúrese de que siga el formato de directorio especificado requerido para la tarea de clasificación, con directorios separados train
, test
, y opcionalmente val
directorios y subdirectorios para cada clase que contenga las imágenes respectivas. Una vez que su conjunto de datos esté estructurado correctamente, señale el data
argumento al directorio raíz de su conjunto de datos al inicializar el script de entrenamiento. Aquí hay 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)
Puedes encontrar más detalles en la sección Añadir tu propio conjunto de datos.
¿Por qué debería usar 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: Cargue modelos preentrenados como
yolo11n-cls.pt
para dar un impulso inicial a su proceso de entrenamiento. - Facilidad de uso: API sencilla y comandos CLI para el entrenamiento y la evaluación.
- Alto Rendimiento: Precisión y velocidad de última generación, ideal para aplicaciones en tiempo real.
- Soporte para múltiples conjuntos de datos: 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 la resolución de problemas y mejoras.
Para obtener información adicional y aplicaciones del mundo real, puede 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 la CLI. Aquí tienes 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 de Uso y la página de Entrenamiento para tareas de clasificación.