Información general sobre datasets de detección de objetos
Entrenar un modelo de detección de objetos robusto y preciso requiere un dataset completo. Esta guía presenta varios formatos de datasets compatibles con el modelo Ultralytics YOLO y ofrece información sobre su estructura, uso y cómo convertir entre diferentes formatos.
Formatos de dataset compatibles
Formato Ultralytics YOLO
El formato Ultralytics YOLO es un formato de configuración de dataset que te permite definir el directorio raíz del dataset, las rutas relativas a los directorios de imágenes de entrenamiento/validación/prueba o archivos *.txt que contienen las rutas de las imágenes, y un diccionario de nombres de clases. Aquí tienes un ejemplo:
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# COCO8 dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/coco8/
# Example usage: yolo train data=coco8.yaml
# parent
# ├── ultralytics
# └── datasets
# └── coco8 ← downloads here (1 MB)
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: coco8 # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
test: # test images (optional)
# Classes
names:
0: person
1: bicycle
2: car
3: motorcycle
4: airplane
5: bus
6: train
7: truck
8: boat
9: traffic light
10: fire hydrant
11: stop sign
12: parking meter
13: bench
14: bird
15: cat
16: dog
17: horse
18: sheep
19: cow
20: elephant
21: bear
22: zebra
23: giraffe
24: backpack
25: umbrella
26: handbag
27: tie
28: suitcase
29: frisbee
30: skis
31: snowboard
32: sports ball
33: kite
34: baseball bat
35: baseball glove
36: skateboard
37: surfboard
38: tennis racket
39: bottle
40: wine glass
41: cup
42: fork
43: knife
44: spoon
45: bowl
46: banana
47: apple
48: sandwich
49: orange
50: broccoli
51: carrot
52: hot dog
53: pizza
54: donut
55: cake
56: chair
57: couch
58: potted plant
59: bed
60: dining table
61: toilet
62: tv
63: laptop
64: mouse
65: remote
66: keyboard
67: cell phone
68: microwave
69: oven
70: toaster
71: sink
72: refrigerator
73: book
74: clock
75: vase
76: scissors
77: teddy bear
78: hair drier
79: toothbrush
# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8.zipLas etiquetas para este formato deben exportarse al formato YOLO con un archivo *.txt por cada imagen. Si no hay objetos en una imagen, no se requiere ningún archivo *.txt. El archivo *.txt debe formatearse con una fila por objeto en formato class x_center y_center width height. Las coordenadas de la caja deben estar en formato xywh normalizado (de 0 a 1). Si tus cajas están en píxeles, debes dividir x_center y width por el ancho de la imagen, y y_center y height por el alto de la imagen. Los números de clase deben estar indexados en cero (empezando por 0).

El archivo de etiquetas correspondiente a la imagen anterior contiene 2 personas (clase 0) y una corbata (clase 27):

Al utilizar el formato Ultralytics YOLO, organiza tus imágenes y etiquetas de entrenamiento y validación como se muestra en el ejemplo del dataset COCO8 a continuación.

Ejemplo de uso
Aquí tienes cómo puedes utilizar los datasets en formato YOLO para entrenar tu modelo:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Formato Ultralytics NDJSON
El formato NDJSON (Newline Delimited JSON) proporciona una forma alternativa de definir datasets para los modelos Ultralytics YOLO. Este formato almacena los metadatos y las anotaciones del dataset en un solo archivo donde cada línea contiene un objeto JSON separado.
Un archivo de dataset en NDJSON contiene:
- Registro del dataset (primera línea): contiene metadatos del dataset, incluido el tipo de tarea, los nombres de las clases e información general
- Registros de imágenes (líneas posteriores): contienen datos individuales de la imagen, incluidas las dimensiones, las anotaciones y las rutas de los archivos
{
"type": "dataset",
"task": "detect",
"name": "Example",
"description": "COCO NDJSON example dataset",
"url": "https://app.ultralytics.com/user/datasets/example",
"class_names": { "0": "person", "1": "bicycle", "2": "car" },
"bytes": 426342,
"version": 0,
"created_at": "2024-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
}Ejemplo de uso
Para utilizar un dataset NDJSON con YOLO26, simplemente especifica la ruta al archivo .ndjson:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt")
# Train using NDJSON dataset
results = model.train(data="path/to/dataset.ndjson", epochs=100, imgsz=640)Ventajas del formato NDJSON
- Archivo único: toda la información del dataset está contenida en un solo archivo
- Streaming: puedes procesar datasets grandes línea por línea sin cargar todo en la memoria
- Integración en la nube: admite URLs de imágenes remotas para entrenamiento basado en la nube
- Extensible: fácil de añadir campos de metadatos personalizados
- Control de versiones: el formato de archivo único funciona bien con git y sistemas de control de versiones
Datasets compatibles
Aquí tienes una lista de los datasets compatibles y una breve descripción de cada uno:
- African-wildlife: un dataset que presenta imágenes de fauna africana, incluidos búfalos, elefantes, rinocerontes y cebras.
- Argoverse: un dataset que contiene datos de seguimiento en 3D y previsión de movimiento de entornos urbanos con ricas anotaciones.
- Brain-tumor: un dataset para detectar tumores cerebrales que incluye imágenes de resonancia magnética o tomografía computarizada con detalles sobre la presencia, ubicación y características del tumor.
- COCO: Common Objects in Context (COCO) es un dataset de gran escala para detección de objetos, segmentación y subtitulado con 80 categorías de objetos.
- COCO8: un subconjunto más pequeño de las primeras 4 imágenes de COCO train y COCO val, adecuado para pruebas rápidas.
- COCO8-Grayscale: una versión en escala de grises de COCO8 creada convirtiendo RGB a escala de grises, útil para la evaluación de modelos de un solo canal.
- COCO8-Multispectral: una versión multiespectral de 10 canales de COCO8 creada interpolando longitudes de onda RGB, útil para la evaluación de modelos con conciencia espectral.
- COCO12-Formats: un dataset de prueba con 12 imágenes que cubre todos los formatos de imagen compatibles (AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP) para validar las canalizaciones de carga de imágenes.
- COCO128: un subconjunto más pequeño de las primeras 128 imágenes de COCO train y COCO val, adecuado para pruebas.
- Construction-PPE: un dataset que presenta trabajadores de obras de construcción con equipo de seguridad etiquetado como cascos, chalecos, guantes, botas y gafas, incluyendo anotaciones de equipo faltante como no_helmet, no_googles para el cumplimiento de normativas en el mundo real.
- Global Wheat 2020: un dataset que contiene imágenes de cabezas de trigo para el Global Wheat Challenge 2020.
- HomeObjects-3K: un dataset de artículos domésticos de interior que incluye camas, sillas, televisores y más, ideal para aplicaciones en automatización del hogar inteligente, robótica, realidad aumentada y análisis de distribución de habitaciones.
- KITTI: un dataset que presenta escenas de conducción del mundo real con datos estéreo, LiDAR y GPS/IMU, utilizado aquí para tareas de detección de objetos 2D como identificar coches, peatones y ciclistas en entornos urbanos, rurales y de autopista.
- LVIS: un dataset de detección, segmentación y subtitulado de objetos a gran escala con 1203 categorías de objetos.
- Medical-pills: un dataset que presenta imágenes de pastillas médicas, anotadas para aplicaciones como control de calidad farmacéutico, clasificación de pastillas y cumplimiento normativo.
- Objects365: un dataset de alta calidad y gran escala para la detección de objetos con 365 categorías de objetos y más de 600.000 imágenes anotadas.
- OpenImagesV7: un dataset completo de Google con 1,7 millones de imágenes de entrenamiento y 42.000 imágenes de validación.
- Roboflow 100: un benchmark diverso de detección de objetos con 100 datasets que abarcan siete dominios de imágenes para una evaluación integral del modelo.
- Signature: un dataset que presenta imágenes de varios documentos con firmas anotadas, que respalda la investigación sobre verificación de documentos y detección de fraudes.
- SKU-110K: un dataset que presenta detección de objetos densos en entornos minoristas con más de 11.000 imágenes y 1,7 millones de bounding boxes.
- TT100K: explora el dataset de señales de tráfico Tsinghua-Tencent 100K (TT100K) con 100.000 imágenes de vista de calle y más de 30.000 señales de tráfico anotadas para una detección y clasificación robustas.
- VisDrone: un dataset que contiene datos de detección de objetos y seguimiento de múltiples objetos a partir de imágenes capturadas por drones con más de 10.000 imágenes y secuencias de vídeo.
- VOC: el dataset Pascal Visual Object Classes (VOC) para detección y segmentación de objetos con 20 clases de objetos y más de 11.000 imágenes.
- xView: un dataset para la detección de objetos en imágenes aéreas con 60 categorías de objetos y más de 1 millón de objetos anotados.
Añadir tu propio dataset
Si tienes tu propio dataset y te gustaría usarlo para entrenar modelos de detección con el formato Ultralytics YOLO, asegúrate de que siga el formato especificado arriba bajo "Formato Ultralytics YOLO". Convierte tus anotaciones al formato requerido y especifica las rutas, el número de clases y los nombres de las clases en el archivo de configuración YAML.
Portar o convertir formatos de etiquetas
Formato de dataset COCO a formato YOLO
Puedes convertir fácilmente etiquetas del popular formato dataset COCO al formato YOLO utilizando el siguiente fragmento de código:
from ultralytics.data.converter import convert_coco
convert_coco(labels_dir="path/to/coco/annotations/")Esta herramienta de conversión se puede utilizar para convertir el dataset COCO o cualquier dataset en formato COCO al formato Ultralytics YOLO. El proceso transforma las anotaciones COCO basadas en JSON al formato YOLO más simple basado en texto, haciéndolo compatible con los modelos Ultralytics YOLO.
Recuerda comprobar dos veces si el dataset que quieres utilizar es compatible con tu modelo y sigue las convenciones de formato necesarias. Los datasets correctamente formateados son cruciales para entrenar modelos de detección de objetos exitosos.
Preguntas frecuentes
¿Qué es el formato de dataset Ultralytics YOLO y cómo estructurarlo?
El formato Ultralytics YOLO es una configuración estructurada para definir datasets en tus proyectos de entrenamiento. Implica establecer rutas a tus imágenes de entrenamiento, validación y prueba y sus correspondientes etiquetas. Por ejemplo:
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# COCO8 dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/coco8/
# Example usage: yolo train data=coco8.yaml
# parent
# ├── ultralytics
# └── datasets
# └── coco8 ← downloads here (1 MB)
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: coco8 # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
test: # test images (optional)
# Classes
names:
0: person
1: bicycle
2: car
3: motorcycle
4: airplane
5: bus
6: train
7: truck
8: boat
9: traffic light
10: fire hydrant
11: stop sign
12: parking meter
13: bench
14: bird
15: cat
16: dog
17: horse
18: sheep
19: cow
20: elephant
21: bear
22: zebra
23: giraffe
24: backpack
25: umbrella
26: handbag
27: tie
28: suitcase
29: frisbee
30: skis
31: snowboard
32: sports ball
33: kite
34: baseball bat
35: baseball glove
36: skateboard
37: surfboard
38: tennis racket
39: bottle
40: wine glass
41: cup
42: fork
43: knife
44: spoon
45: bowl
46: banana
47: apple
48: sandwich
49: orange
50: broccoli
51: carrot
52: hot dog
53: pizza
54: donut
55: cake
56: chair
57: couch
58: potted plant
59: bed
60: dining table
61: toilet
62: tv
63: laptop
64: mouse
65: remote
66: keyboard
67: cell phone
68: microwave
69: oven
70: toaster
71: sink
72: refrigerator
73: book
74: clock
75: vase
76: scissors
77: teddy bear
78: hair drier
79: toothbrush
# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8.zipLas etiquetas se guardan en archivos *.txt con un archivo por imagen, formateados como class x_center y_center width height con coordenadas normalizadas. Para una guía detallada, consulta el ejemplo del dataset COCO8.
¿Cómo convierto un dataset COCO al formato YOLO?
Puedes convertir un dataset COCO al formato YOLO utilizando las herramientas de conversión de Ultralytics. Aquí tienes un método rápido:
from ultralytics.data.converter import convert_coco
convert_coco(labels_dir="path/to/coco/annotations/")Este código convertirá tus anotaciones COCO al formato YOLO, permitiendo una integración perfecta con los modelos Ultralytics YOLO. Para obtener detalles adicionales, visita la sección Portar o convertir formatos de etiquetas.
¿Qué datasets son compatibles con Ultralytics YOLO para la detección de objetos?
Ultralytics YOLO admite una amplia gama de datasets, incluyendo:
Cada página de dataset proporciona información detallada sobre la estructura y el uso adaptado para un entrenamiento eficiente de YOLO26. Explora la lista completa en la sección Datasets compatibles.
¿Cómo empiezo a entrenar un modelo YOLO26 usando mi dataset?
Para empezar a entrenar un modelo YOLO26, asegúrate de que tu dataset esté formateado correctamente y que las rutas estén definidas en un archivo YAML. Utiliza el siguiente script para comenzar el entrenamiento:
from ultralytics import YOLO
model = YOLO("yolo26n.pt") # Load a pretrained model
results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)Consulta la sección Uso para obtener más detalles sobre la utilización de diferentes modos, incluidos los comandos CLI.
¿Dónde puedo encontrar ejemplos prácticos del uso de Ultralytics YOLO para la detección de objetos?
Ultralytics ofrece numerosos ejemplos y guías prácticas para utilizar YOLO26 en diversas aplicaciones. Para obtener una visión general completa, visita el Blog de Ultralytics, donde encontrarás casos de estudio, tutoriales detallados e historias de la comunidad que muestran la detección de objetos, la segmentación y más con YOLO26. Para ejemplos específicos, consulta la sección Uso en la documentación.