Información general sobre los conjuntos de datos de detección de objetos#
Para entrenar un modelo robusto y preciso de detección de objetos, necesitas un conjunto de datos completo. Esta guía presenta varios formatos de conjuntos de datos compatibles con el modelo Ultralytics YOLO y ofrece información sobre su estructura, uso y conversión entre formatos.
Formatos de conjuntos de datos compatibles#
Formato Ultralytics YOLO#
El formato Ultralytics YOLO es un formato de configuración de conjuntos de datos que te permite definir el directorio raíz del conjunto de datos, las rutas relativas a los directorios de imágenes de entrenamiento/validación/prueba o a los archivos *.txt que contienen rutas de 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.zipCada uno de train, val y test acepta un directorio, una lista de directorios o un archivo *.txt que enumera una ruta de imagen por línea (las rutas que empiezan por ./ se resuelven en relación con el archivo *.txt). Un archivo *.txt resulta útil para entrenar con un subconjunto de un directorio, omitir imágenes sin etiquetar o combinar imágenes de varias fuentes en una misma partición.
path: datasets/coco8 # dataset root
train: train.txt # a directory, a list e.g. [images/a, images/b], or a *.txt file
val: val.txt
names:
0: personLas etiquetas de este formato deben exportarse al formato YOLO, con un archivo *.txt por imagen. Si una imagen no contiene objetos, no es necesario crear un archivo *.txt. El archivo *.txt debe tener una fila por objeto en formato class x_center y_center width height. Las coordenadas de los cuadros deben estar normalizadas en formato xywh (de 0 a 1). Si los cuadros están en píxeles, divide x_center y width por el ancho de la imagen, y y_center y height por su alto. La numeración de las clases empieza en cero.

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

Si usas el formato Ultralytics YOLO, organiza las imágenes y etiquetas de entrenamiento y validación como se muestra en el siguiente ejemplo del conjunto de datos COCO8.

Ejemplo de uso#
Así puedes usar conjuntos de datos en formato YOLO para entrenar tu modelo:
from ultralytics import YOLO
# Cargar un modelo
model = YOLO("yolo26n.pt") # Carga un modelo preentrenado (recomendado para el entrenamiento)
# Entrenar el modelo
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Formato NDJSON de Ultralytics#
El formato JSON delimitado por líneas (NDJSON) ofrece una forma alternativa de definir conjuntos de datos para los modelos Ultralytics YOLO. Este formato almacena los metadatos y las anotaciones del conjunto de datos en un único archivo, donde cada línea contiene un objeto JSON independiente.
Un archivo de conjunto de datos NDJSON contiene:
- Registro del conjunto de datos (primera línea): contiene metadatos del conjunto de datos, como el tipo de tarea, los nombres de las clases e información general.
- Registros de imágenes (líneas siguientes): contienen los datos de cada imagen, como las dimensiones, las anotaciones y las rutas de archivo.
{
"type": "dataset",
"task": "detect",
"name": "Example",
"description": "COCO NDJSON example dataset",
"url": "https://platform.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"
}Metadatos personalizados de imagen#
Cada registro de imagen puede incluir un objeto JSON metadata con información contextual específica de la aplicación, como las condiciones de captura, los identificadores del equipo o el estado de revisión. Se admiten valores anidados. Al importar los datos a Ultralytics Platform, los metadatos se guardan junto con la imagen y se pueden consultar o editar en su panel de información a pantalla completa.
{
"type": "image",
"file": "airbus-wing.jpg",
"url": "https://example.com/airbus-wing.jpg",
"split": "train",
"metadata": {
"aircraft": { "family": "A350", "section": "wing" },
"inspectionStatus": "reviewed"
}
}Platform limita las claves de metadatos de nivel superior a 128 caracteres, el objeto de metadatos serializado de cada imagen a 500,000 caracteres y los metadatos efectivos combinados de una importación NDJSON a 500,000 caracteres.
Ejemplo de uso#
Para usar un conjunto de datos NDJSON con YOLO26, solo tienes que especificar la ruta al archivo .ndjson:
from ultralytics import YOLO
# Cargar un modelo
model = YOLO("yolo26n.pt")
# Entrenar con un conjunto de datos NDJSON
results = model.train(data="path/to/dataset.ndjson", epochs=100, imgsz=640)Ventajas del formato NDJSON#
- Un único archivo: toda la información del conjunto de datos se encuentra en un solo archivo.
- Procesamiento en streaming: permite procesar conjuntos de datos grandes línea por línea sin cargarlos por completo en memoria.
- Integración con la nube: admite URL remotas de imágenes para entrenar en la nube.
- Ampliable: es fácil añadir campos de metadatos personalizados.
- Control de versiones: el formato de archivo único funciona bien con git y con los sistemas de control de versiones.
Conjuntos de datos compatibles#
Aquí tienes una lista de los conjuntos de datos compatibles y una breve descripción de cada uno. La mayoría también está alojada en Ultralytics Platform, donde puedes explorar las imágenes y las anotaciones, consultar estadísticas y clonarlos para entrenar en la nube.
- African-wildlife: conjunto de datos con imágenes de fauna africana, incluidos búfalos, elefantes, rinocerontes y cebras.
- Argoverse: conjunto de datos Argoverse-HD de detección 2D, con 54,446 imágenes urbanas de conducción autónoma distribuidas en 8 clases de objetos viales.
- Brain-tumor: conjunto de datos para detectar tumores cerebrales que incluye imágenes de resonancias magnéticas o tomografías computarizadas con información sobre la presencia, la ubicación y las características del tumor.
- COCO: Objetos comunes en contexto (COCO) es un conjunto de datos a gran escala para la detección de objetos, la segmentación y la generación de descripciones, con 80 categorías de objetos.
- COCO8: subconjunto reducido de las 8 primeras imágenes de COCO train2017, con 4 para entrenamiento y 4 para validación, adecuado para pruebas rápidas.
- COCO8-Grayscale: versión en escala de grises de COCO8, creada al convertir RGB a escala de grises y útil para evaluar modelos de un solo canal.
- COCO8-Multispectral: versión multiespectral de 10 canales de COCO8, creada mediante interpolación de las longitudes de onda RGB y útil para evaluar modelos con capacidad espectral.
- COCO12-Formats: conjunto de prueba con 12 imágenes que abarca 12 formatos de imagen compatibles (AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP) para validar los procesos de carga de imágenes.
- COCO16: subconjunto de las primeras 16 imágenes de COCO train2017 (8 de entrenamiento + 8 de validación), adecuado para pruebas rápidas.
- COCO32: subconjunto de las primeras 32 imágenes de COCO train2017 (16 de entrenamiento + 16 de validación), adecuado para pruebas rápidas.
- COCO64: subconjunto de las primeras 64 imágenes de COCO train2017 (32 de entrenamiento + 32 de validación), adecuado para pruebas rápidas.
- COCO128: subconjunto reducido de las 128 primeras imágenes de COCO train2017, adecuado para pruebas.
- Construction-PPE: conjunto de datos con trabajadores de obras de construcción y equipos de seguridad etiquetados, como cascos, chalecos, guantes, botas y gafas protectoras. También incluye anotaciones sobre equipos ausentes, como no_helmet y no_goggle, para supervisar el cumplimiento en entornos reales.
- Global Wheat 2020: conjunto de datos con imágenes de espigas de trigo para el Global Wheat Challenge 2020.
- HomeObjects-3K: conjunto de datos de objetos domésticos, como camas, sillas y televisores, ideal para aplicaciones de domótica, robótica, realidad aumentada y análisis de la distribución de habitaciones.
- KITTI: conjunto de datos con escenas de conducción reales y 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: conjunto de datos a gran escala para la detección de objetos y la segmentación de instancias, con 1.203 categorías de objetos.
- Medical-pills: conjunto de datos con imágenes de pastillas médicas, anotadas para aplicaciones como el control de calidad farmacéutico, la clasificación de pastillas y el cumplimiento normativo.
- Objects365: conjunto de datos de alta calidad y a gran escala para la detección de objetos, con 365 categorías de objetos y más de 1.7M de imágenes de entrenamiento.
- OpenImagesV7: completo conjunto de datos de Google con 1,7 millones de imágenes de entrenamiento y 42.000 imágenes de validación.
- Roboflow 100: un banco de pruebas diverso de detección de objetos con 100 conjuntos de datos que abarcan siete dominios de imágenes para una evaluación exhaustiva de modelos.
- Signature: conjunto de datos con imágenes de varios documentos y firmas anotadas, que facilita la investigación sobre verificación documental y detección de fraude.
- SKU-110K: un conjunto de datos con detección densa de objetos en entornos comerciales, que contiene más de 11 000 imágenes y 1,7 millones de cajas delimitadoras.
- TT100K: explora el conjunto de datos de señales de tráfico Tsinghua-Tencent 100K (TT100K), con 16 817 imágenes de vista de calle y 221 categorías de señales para una detección y clasificación robustas.
- VisDrone: conjunto de datos de detección de objetos y seguimiento de múltiples objetos en imágenes capturadas con drones, con más de 10.000 imágenes y secuencias de vídeo.
- VOC: el conjunto de datos de clases de objetos visuales Pascal (VOC) para la detección y segmentación de objetos, con 20 clases de objetos y más de 11 000 imágenes.
- xView: conjunto de datos para la detección de objetos en imágenes aéreas, con 60 categorías de objetos y más de un millón de objetos anotados.
Añadir tu propio conjunto de datos#
Si tienes tu propio conjunto de datos y quieres utilizarlo para entrenar modelos de detección con el formato Ultralytics YOLO, asegúrate de que sigue el formato especificado anteriormente en «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.
Adaptar o convertir formatos de etiquetas#
Convertir el formato del conjunto de datos COCO al formato YOLO#
Puedes convertir fácilmente etiquetas del popular formato del conjunto de datos COCO al formato YOLO con 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 conjunto de datos COCO o cualquier conjunto de datos en formato COCO al formato Ultralytics YOLO. El proceso transforma las anotaciones COCO basadas en JSON al formato YOLO más sencillo, basado en texto, para que sean compatibles con los modelos Ultralytics YOLO. Consulta Convertir anotaciones COCO a YOLO para ver el flujo de trabajo completo, incluida la asignación de ID de clase, la estructura de directorios y las anotaciones de segmentación o pose.
Recuerda comprobar que el conjunto de datos que quieres utilizar es compatible con tu modelo y sigue las convenciones de formato necesarias. Los conjuntos de datos con el formato adecuado son esenciales para entrenar modelos de detección de objetos eficaces.
Qué hacer a continuación#
Con el conjunto de datos ya preparado, empieza a entrenar tu modelo. ¿No sabes con qué modelo preentrenado empezar? Compara las opciones de la familia de modelos YOLO26.
Preguntas frecuentes#
El formato Ultralytics YOLO es una configuración estructurada para definir conjuntos de datos en tus proyectos de entrenamiento. Consiste en establecer las rutas a las imágenes de entrenamiento, validación y prueba, así como a sus etiquetas correspondientes. 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, en el formatoclass x_center y_center width heighty con coordenadas normalizadas. Consulta el ejemplo del conjunto de datos COCO8 para ver una guía detallada.Puedes convertir un conjunto de datos COCO al formato YOLO con 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 convierte tus anotaciones COCO al formato YOLO y permite integrarlas sin problemas con los modelos Ultralytics YOLO. Para obtener más información, visita la sección Adaptar o convertir formatos de etiquetas.
Ultralytics YOLO admite una amplia variedad de conjuntos de datos, entre ellos:
Cada página de conjunto de datos ofrece información detallada sobre su estructura y uso, adaptada para entrenar YOLO26 de forma eficiente. Consulta la lista completa en la sección Conjuntos de datos admitidos.
Para empezar a entrenar un modelo YOLO26, asegúrate de que tu conjunto de datos tiene el formato correcto y de que las rutas están definidas en un archivo YAML. Utiliza el siguiente script para empezar a entrenar:
Ejemplofrom ultralytics import YOLO model = YOLO("yolo26n.pt") # Cargar un modelo preentrenado results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)Consulta la sección Uso para obtener más información sobre cómo utilizar los distintos modos, incluidos los comandos CLI.
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 prácticos, tutoriales detallados e historias de la comunidad sobre detección de objetos, segmentación y otras tareas con YOLO26. Para ver ejemplos concretos, consulta la página del modo de predicción en la documentación.