Link to this sectionResumen de conjuntos de datos para clasificación de imágenes#
Link to this sectionEstructura del conjunto de datos para tareas de clasificación YOLO#
Para las tareas de clasificación YOLO de Ultralytics, el conjunto de datos debe estar organizado 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 validación (val), con un directorio opcional para 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.
Link to this sectionEjemplo de estructura de carpetas#
Toma como ejemplo el conjunto de datos CIFAR-10. 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.
Link to this sectionUso#
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é los datos automáticamente la primera vez que los referencies. Indica la ruta de la carpeta en data solo cuando hayas preparado un conjunto de datos personalizado.
Link to this sectionConjuntos 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 ampliada de Caltech 101 con 256 categorías de objetos e imágenes más desafiantes.
- CIFAR-10: Un conjunto de datos de 60 mil imágenes en color de 32x32 píxeles en 10 clases, con 6 mil 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 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 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) tanto de las divisiones de entrenamiento como de prueba de MNIST. El conjunto de datos contiene 160 imágenes en total.
Link to this sectionAñadir tu propio conjunto de datos#
Si tienes tu propio conjunto de datos y quieres usarlo para entrenar modelos de clasificación con Ultralytics YOLO, asegúrate de que siga el formato especificado arriba en "Estructura del conjunto de datos" y, a continuación, apunta tu argumento data al directorio del conjunto de datos al inicializar tu script de entrenamiento.
Link to this sectionFAQ#
Link to this section¿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 nombrados según cada clase, con las imágenes correspondientes dentro. Esto facilita 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 más detalles, visita la sección Estructura del conjunto de datos para tareas de clasificación YOLO.
Link to this section¿Qué conjuntos de datos admite Ultralytics YOLO para la clasificación de imágenes?#
Ultralytics YOLO admite la descarga automática de varios conjuntos de datos para 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 resultan fáciles de usar con YOLO. La página de cada conjunto de datos proporciona más detalles sobre su estructura y aplicaciones.
Link to this section¿Cómo añado mi propio conjunto de datos para la clasificación de imágenes YOLO?#
Para usar 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, test y, opcionalmente, val, además de subdirectorios para cada clase que contengan las imágenes respectivas. Una vez que tu conjunto de datos esté estructurado correctamente, apunta el argumento data al 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 Añadir tu propio conjunto de datos.
Link to this section¿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: 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.
- Alto rendimiento: Precisión y velocidad de vanguardia, ideal para aplicaciones en tiempo real.
- Compatibilidad con 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 resolución de problemas y mejoras.
Para obtener información adicional y aplicaciones en el mundo real, puedes explorar Ultralytics YOLO.
Link to this section¿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 sencillo proceso de entrenar un modelo YOLO usando cualquiera de los dos enfoques. Para más información, visita la sección Uso y la página Train para tareas de clasificación.