Ultralytics YOLO27:
Get Started

Descripción general de los conjuntos de datos de clasificación de imágenes#

Estructura de los conjuntos de datos para tareas de clasificación con YOLO#

Para las tareas de clasificación de Ultralytics YOLO, el conjunto de datos debe organizarse siguiendo una estructura específica de directorios divididos dentro del directorio root. Esta estructura incluye un directorio train y un directorio val (también se aceptan valid y validation), además de un directorio opcional test. Si no existe un directorio de validación, se utiliza el directorio test para la validación. Si la raíz no contiene ningún directorio train, pero sí una carpeta por clase, Ultralytics divide automáticamente las imágenes en una proporción 80/20 y las guarda en un nuevo directorio <root>_split con los subdirectorios train y 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úrate de que cada archivo de imagen tenga un nombre único y esté guardado en un formato común, como JPEG o PNG.

Ejemplo de estructura de carpetas#

Tomemos como ejemplo el conjunto de datos CIFAR-10. La estructura de carpetas debería ser la siguiente:

cifar10/
|
|-- 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 el entrenamiento y evaluar el rendimiento con precisión durante las fases de prueba y validación.

Uso#

Ejemplo
from ultralytics import YOLO

# Cargar un modelo
model = YOLO("yolo26n-cls.pt")  # Carga un modelo preentrenado (recomendado para el entrenamiento)

# Entrenar el modelo
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)
Consejo

La mayoría de los nombres de conjuntos de datos integrados (por ejemplo, cifar10, imagenette o mnist160) descargan y almacenan automáticamente los datos en caché la primera vez que haces referencia a ellos. Indica la ruta de una carpeta en data solo si has preparado un conjunto de datos personalizado.

Conjuntos de datos compatibles#

Ultralytics admite la descarga automática de los siguientes conjuntos de datos. La mayoría también está alojada en Ultralytics Platform, donde puedes explorar las imágenes y anotaciones, consultar estadísticas y clonar los conjuntos para entrenar en la nube.

  • Caltech 101: conjunto de datos con imágenes de 101 categorías de objetos para tareas de clasificación de imágenes.
  • Caltech 256: versión ampliada de Caltech 101, con 256 categorías de objetos e imágenes más complejas.
  • CIFAR-10: conjunto de datos de 60.000 imágenes en color de 32x32 píxeles, distribuidas en 10 clases, con 6.000 imágenes por clase.
  • CIFAR-100: versión ampliada de CIFAR-10, con 100 categorías de objetos y 600 imágenes por clase.
  • Fashion-MNIST: conjunto de datos de 70.000 imágenes en escala de grises de 10 categorías de moda para tareas de clasificación de imágenes.
  • ImageNet: referencia de clasificación de imágenes ImageNet-1k (ILSVRC-2012), con 1000 clases, 1,28 millones de imágenes de entrenamiento y 50 000 imágenes de validación.
  • ImageNet-10: subconjunto reducido de ImageNet con 10 categorías que permite experimentar y probar más rápido.
  • Imagenette: subconjunto reducido de ImageNet que contiene 10 clases fáciles de distinguir para agilizar el entrenamiento y las pruebas.
  • Imagewoof: subconjunto más complejo de ImageNet que contiene 10 categorías de razas de perros para tareas de clasificación de imágenes.
  • MNIST: 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 8 primeras imágenes de cada dígito (0-9) de las particiones 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 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» e 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 tareas de clasificación de Ultralytics YOLO, sigue un formato específico de directorios divididos. Organiza el conjunto de datos en directorios separados para train y val, y, de forma opcional, para test. Cada uno de estos directorios debe contener subdirectorios con el nombre de cada clase y las imágenes correspondientes. Así facilitarás los procesos de entrenamiento y evaluación. Como ejemplo, puedes consultar el formato del conjunto de datos CIFAR-10:

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

    Para obtener más información, visita la sección Estructura de los conjuntos de datos para tareas de clasificación con YOLO.

  • Ultralytics YOLO permite descargar automáticamente 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 para que sea fácil utilizarlos con YOLO. La página de cada conjunto ofrece más información sobre su estructura y sus aplicaciones.

  • Para utilizar tu propio conjunto de datos con Ultralytics YOLO, asegúrate de que siga el formato de directorios especificado para la tarea de clasificación, con directorios separados train y val (y, de forma opcional, test), además de subdirectorios para cada clase que contengan las imágenes correspondientes. Cuando el conjunto esté bien estructurado, indica el directorio raíz del conjunto de datos en el argumento data al inicializar el script de entrenamiento. Aquí tienes un ejemplo en Python:

    from ultralytics import YOLO
    
    # Cargar un modelo
    model = YOLO("yolo26n-cls.pt")  # Carga un modelo preentrenado (recomendado para el entrenamiento)
    
    # Entrenar el modelo
    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.pt para empezar a entrenar rápidamente.
    • Facilidad de uso: comandos sencillos de API y CLI para el entrenamiento y la evaluación.
    • Alto rendimiento: precisión y velocidad de última generación, ideales para aplicaciones en tiempo real.
    • Compatibilidad con varios conjuntos de datos: integración sencilla con distintos conjuntos de datos populares, como CIFAR-10, ImageNet y otros.
    • Comunidad y asistencia: acceso a documentación exhaustiva 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.

  • Puedes entrenar fácilmente un modelo con Ultralytics YOLO tanto en Python como en CLI. Aquí tienes un ejemplo:

    Ejemplo
    from ultralytics import YOLO
    
    # Cargar un modelo
    model = YOLO("yolo26n-cls.pt")  # cargar un modelo preentrenado
    
    # Entrenar el modelo
    results = model.train(data="path/to/dataset", epochs=100, imgsz=640)

    Estos ejemplos muestran lo sencillo que es entrenar un modelo YOLO con cualquiera de los dos métodos. Para obtener más información, visita la sección Uso y la página Entrenamiento para tareas de clasificación.

Comentarios