Descripción general de los conjuntos de datos de detección de objetos#
Entrenar un modelo sólido y preciso de detección de objetos requiere 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 distintos 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. Este es 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 etiquetas o combinar imágenes de varias fuentes en una divisió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 se necesita ningún archivo *.txt. El archivo *.txt debe tener una fila por objeto en formato class x_center y_center width height. Las coordenadas de las cajas deben estar en formato xywh normalizado (de 0 a 1). Si tus cajas están expresadas en píxeles, divide x_center y width por el ancho de la imagen, y y_center y height por su altura. La numeración de las clases debe empezar en cero.

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 las imágenes y etiquetas de entrenamiento y validación como se muestra en el ejemplo del conjunto de datos COCO8 a continuación.

Ejemplo de uso#
Así puedes usar conjuntos de datos 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 (JSON delimitado por saltos de línea) ofrece una forma alternativa de definir conjuntos de datos para 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 los metadatos del conjunto de datos, incluido el tipo de tarea, los nombres de las clases y la información general
- Registros de imágenes (líneas posteriores): contienen los datos individuales de cada imagen, incluidas 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 de imagen personalizados#
Cada registro de imagen puede incluir un objeto JSON metadata para 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 la imagen en Ultralytics Platform, los metadatos se almacenan con ella y puedes verlos o editarlos desde 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"
}
}La plataforma 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
# 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 conjunto de datos se contiene en un solo archivo
- Streaming: permite procesar grandes conjuntos de datos línea a línea sin cargarlo todo en memoria
- Integración en la nube: admite URL de imágenes remotas para el entrenamiento basado en la nube
- Ampliable: permite añadir fácilmente campos de metadatos personalizados
- Control de versiones: el formato de archivo único funciona bien con git y 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 de estos conjuntos de datos también están alojados en Ultralytics Platform, donde puedes explorar las imágenes y las anotaciones, ver las estadísticas de los conjuntos de datos y clonarlos para el entrenamiento en la nube.
- African-wildlife: un conjunto de datos con imágenes de fauna africana, incluidos búfalos, elefantes, rinocerontes y cebras.
- Argoverse: un dataset con datos de seguimiento 3D y predicción del movimiento en entornos urbanos, con anotaciones detalladas.
- Brain-tumor: un 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 de los tumores.
- COCO: Common Objects in Context (COCO) es un conjunto de datos a gran escala de detección de objetos, segmentación y generación de descripciones, con 80 categorías de objetos.
- COCO8: Un subconjunto más pequeño de las primeras 8 imágenes de COCO train2017, 4 para entrenamiento y 4 para validación, adecuado para pruebas rápidas.
- COCO8-Grayscale: una versión en escala de grises de COCO8 creada al convertir RGB a escala de grises, útil para evaluar modelos de un solo canal.
- COCO8-Multispectral: una versión multiespectral de COCO8 con 10 canales, creada mediante la interpolación de longitudes de onda RGB, útil para evaluar modelos sensibles al espectro.
- COCO12-Formats: un conjunto de datos de prueba con 12 imágenes que cubren 12 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.
- COCO16: un subconjunto de las primeras 16 imágenes de COCO train2017 (8 de entrenamiento + 8 de validación), adecuado para pruebas rápidas.
- COCO32: un subconjunto de las primeras 32 imágenes de COCO train2017 (16 de entrenamiento + 16 de validación), adecuado para pruebas rápidas.
- COCO64: un subconjunto de las primeras 64 imágenes de COCO train2017 (32 de entrenamiento + 32 de validación), adecuado para pruebas rápidas.
- COCO128: un subconjunto más pequeño de las 128 primeras imágenes de COCO train2017, adecuado para pruebas.
- Construction-PPE: un conjunto de datos con trabajadores de obras que llevan equipos de seguridad etiquetados, como cascos, chalecos, guantes, botas y gafas, e incluye anotaciones de equipos ausentes como no_helmet y no_goggle para la supervisión del cumplimiento en situaciones reales.
- Global Wheat 2020: un dataset con imágenes de espigas de trigo para el Global Wheat Challenge 2020.
- HomeObjects-3K: un conjunto de datos de objetos domésticos de interior, como camas, sillas, televisores y más, ideal para aplicaciones de domótica, robótica, realidad aumentada y análisis de la distribución de habitaciones.
- KITTI: un conjunto de datos con escenas de conducción del mundo real 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: un dataset a gran escala de detección, segmentación y generación de descripciones de objetos, con 1203 categorías de objetos.
- Medical-pills: un 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: un dataset de alta calidad y a gran escala para la detección de objetos, con 365 categorías de objetos y más de 600K imágenes anotadas.
- OpenImagesV7: un dataset completo de Google con 1,7 M de imágenes de entrenamiento y 42k imágenes de validación.
- Roboflow 100: un benchmark diverso de detección de objetos con 100 conjuntos de datos de siete dominios de imágenes para una evaluación exhaustiva de modelos.
- Signature: un dataset con imágenes de diversos documentos que incluyen firmas anotadas, compatible con la investigación sobre verificación de documentos y detección de fraudes.
- SKU-110K: un conjunto de datos con detección densa de objetos en entornos comerciales, con más de 11K 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 vistas de calle distribuidas en 221 categorías de señales para una detección y clasificación sólidas.
- VisDrone: un dataset con datos de detección de objetos y seguimiento multiobjeto procedentes de imágenes capturadas por drones, con más de 10K imágenes y secuencias de vídeo.
- VOC: el dataset Pascal Visual Object Classes (VOC) para la detección y segmentación de objetos, con 20 clases de objetos y más de 11K 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 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 siga 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 de conjunto de datos COCO al formato YOLO#
Puedes convertir fácilmente las etiquetas del popular formato del conjunto de datos COCO al formato YOLO mediante 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 en el formato YOLO basado en texto, más sencillo y compatible con los modelos Ultralytics YOLO. Para ver el flujo de trabajo completo —incluida la asignación de ID de clases, la estructura de directorios y las anotaciones de segmentación o pose—, consulta Convertir anotaciones COCO a YOLO.
Recuerda comprobar minuciosamente que el conjunto de datos que quieres usar sea compatible con tu modelo y siga las convenciones de formato necesarias. Los conjuntos de datos con el formato correcto son fundamentales para entrenar modelos de detección de objetos eficaces.
¿Y ahora qué?#
Una vez formateado el conjunto de datos, 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, y 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, uno por imagen, con el formatoclass x_center y_center width heighty coordenadas normalizadas. Para obtener una guía detallada, consulta el ejemplo del conjunto de datos COCO8.Puedes convertir un conjunto de datos COCO al formato YOLO mediante las herramientas de conversión de Ultralytics. Este es 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, lo que permite una integración fluida 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 proporciona información detallada sobre su estructura y uso, adaptada para un entrenamiento eficiente de YOLO26. Explora la lista completa en la sección Conjuntos de datos compatibles.
Para empezar a entrenar un modelo YOLO26, asegúrate de que tu conjunto de datos tenga el formato correcto y de que las rutas estén definidas en un archivo YAML. Utiliza el siguiente script para comenzar el entrenamiento:
Ejemplofrom 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 información sobre cómo utilizar los distintos modos, incluidos los comandos de CLI.
Ultralytics ofrece numerosos ejemplos y guías prácticas para usar YOLO26 en diversas aplicaciones. Para obtener una descripción general completa, visita el blog de Ultralytics, donde encontrarás casos prácticos, tutoriales detallados e historias de la comunidad que muestran la detección de objetos, la segmentación y mucho más con YOLO26. Para consultar ejemplos específicos, revisa la sección Uso de la documentación.