Link to this sectionResumen de conjuntos de datos de detección de objetos#
Entrenar un modelo de detección de objetos robusto y preciso 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 cómo convertir entre diferentes formatos.
Link to this sectionFormatos de conjuntos de datos compatibles#
Link to this sectionFormato Ultralytics YOLO#
El formato Ultralytics YOLO es un formato de configuración de conjunto 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 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 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 desde cero (comenzando en 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 conjunto de datos COCO8 a continuación.

Link to this sectionEjemplo de uso#
Aquí tienes cómo 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)Link to this sectionFormato Ultralytics NDJSON#
El formato NDJSON (Newline Delimited JSON) proporciona una forma alternativa de definir conjuntos de datos para los modelos Ultralytics YOLO. Este formato almacena metadatos y anotaciones del conjunto de datos en un solo archivo donde cada línea contiene un objeto JSON separado.
Un archivo de conjunto de datos NDJSON contiene:
- Registro del conjunto de datos (primera línea): Contiene metadatos del conjunto de datos, incluyendo tipo de tarea, nombres de clases e información general
- Registros de imágenes (líneas siguientes): Contiene datos de imágenes individuales, incluyendo dimensiones, anotaciones y rutas de archivo
{
"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"
}Link to this sectionEjemplo de uso#
Para usar un conjunto de datos 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)Link to this sectionVentajas del formato NDJSON#
- Archivo único: Toda la información del conjunto de datos contenida en un solo archivo
- Streaming: Puede procesar grandes conjuntos de datos 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
Link to this sectionConjuntos de datos compatibles#
Aquí tienes una lista de los conjuntos de datos compatibles y una breve descripción de cada uno:
- African-wildlife: Un conjunto de datos con imágenes de vida salvaje africana, incluyendo búfalos, elefantes, rinocerontes y cebras.
- Argoverse: Un conjunto de datos que contiene datos de seguimiento 3D y previsión de movimiento de entornos urbanos con anotaciones ricas.
- Brain-tumor: Un conjunto de datos 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 conjunto de datos a gran escala de 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 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 los flujos de trabajo de carga de imágenes.
- COCO128: Un subconjunto más pequeño de las primeras 128 imágenes de COCO train2017, adecuado para realizar pruebas.
- Construction-PPE: Un conjunto de datos con 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_goggle para el monitoreo del cumplimiento en el mundo real.
- Global Wheat 2020: Un conjunto de datos que contiene imágenes de espigas de trigo para el Global Wheat Challenge 2020.
- HomeObjects-3K: Un conjunto de datos de artículos domésticos de interior, incluyendo camas, sillas, televisores y más, ideal para aplicaciones en automatización de hogares inteligentes, robótica, realidad aumentada y análisis de diseño de habitaciones.
- KITTI: Un conjunto de datos con 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 conjunto de datos a gran escala de detección de objetos, segmentación y subtitulado con 1203 categorías de objetos.
- Medical-pills: Un conjunto de datos con imágenes de pastillas médicas, anotadas para aplicaciones como control de calidad farmacéutico, clasificación de pastillas y cumplimiento normativo.
- Objects365: Un conjunto de datos de alta calidad 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 conjunto de datos completo de Google con 1.7M de imágenes de entrenamiento y 42k imágenes de validación.
- Roboflow 100: Un punto de referencia de detección de objetos diverso con 100 conjuntos de datos que abarcan siete dominios de imágenes para una evaluación integral del modelo.
- Signature: Un conjunto de datos con imágenes de varios documentos con firmas anotadas, que respalda la investigación en verificación de documentos y detección de fraudes.
- SKU-110K: Un conjunto de datos con detección de objetos densos en entornos minoristas 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 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 conjunto de datos 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 10K imágenes y secuencias de video.
- VOC: El conjunto de datos Pascal Visual Object Classes (VOC) para detección y segmentación de objetos con 20 clases de objetos y más de 11K imágenes.
- xView: Un conjunto de datos 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.
Link to this sectionAñadir tu propio conjunto de datos#
Si tienes tu propio conjunto de datos y te gustaría usarlo 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.
Link to this sectionPortar o convertir formatos de etiquetas#
Link to this sectionFormato de conjunto de datos COCO a formato YOLO#
Puedes convertir fácilmente etiquetas del popular formato de conjunto de datos COCO al formato YOLO usando 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 puede usarse 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 de texto más simple de YOLO, haciéndolo compatible con modelos Ultralytics YOLO.
Recuerda verificar dos veces si el conjunto de datos que quieres usar es compatible con tu modelo y sigue las convenciones de formato necesarias. Los conjuntos de datos formateados correctamente son cruciales para entrenar modelos de detección de objetos exitosos.
Link to this sectionFAQ#
Link to this section¿Qué es el formato de conjunto de datos Ultralytics YOLO y cómo estructurarlo?#
El formato Ultralytics YOLO es una configuración estructurada para definir conjuntos de datos en tus proyectos de entrenamiento. Implica establecer rutas a tus imágenes de entrenamiento, validación y prueba y las 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, formateadas como class x_center y_center width height con coordenadas normalizadas. Para una guía detallada, consulta el ejemplo del conjunto de datos COCO8.
Link to this section¿Cómo convierto un conjunto de datos COCO al formato YOLO?#
Puedes convertir un conjunto de datos COCO al formato YOLO usando 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.
Link to this section¿Qué conjuntos de datos son compatibles con Ultralytics YOLO para la detección de objetos?#
Ultralytics YOLO admite una amplia gama de conjuntos de datos, incluyendo:
Cada página de conjunto de datos 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 Conjuntos de datos compatibles.
Link to this section¿Cómo empiezo a entrenar un modelo YOLO26 usando mi conjunto de datos?#
Para comenzar a entrenar un modelo YOLO26, asegúrate de que tu conjunto de datos esté formateado correctamente y que las rutas estén definidas en un archivo YAML. Usa 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 más detalles sobre cómo utilizar diferentes modos, incluidos los comandos CLI.
Link to this section¿Dónde puedo encontrar ejemplos prácticos de uso de Ultralytics YOLO para la detección de objetos?#
Ultralytics proporciona numerosos ejemplos y guías prácticas para usar YOLO26 en diversas aplicaciones. Para una visión general completa, visita el Blog de Ultralytics donde puedes encontrar estudios de casos, tutoriales detallados e historias de la comunidad que muestran la detección de objetos, segmentación y más con YOLO26. Para ejemplos específicos, consulta la sección Uso en la documentación.