Ultralytics YOLO27:
Get Started

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/cfg/datasets/coco8.yaml
# 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.zip

Cada 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.

Rutas de imágenes en un archivo `*.txt`
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: person

Las 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.

YOLO labeled image with bounding boxes on persons and tie

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

YOLO format label file with normalized coordinates

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.

YOLO dataset directory structure with train and val folders

Ejemplo de uso#

Así puedes usar conjuntos de datos en formato YOLO para entrenar tu modelo:

Ejemplo
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:

  1. 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.
  2. Registros de imágenes (líneas siguientes): contienen los datos de cada imagen, como las dimensiones, las anotaciones y las rutas de archivo.
Ejemplo de NDJSON
{
    "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:

Ejemplo
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:

Ejemplo
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.zip

    Las etiquetas se guardan en archivos *.txt, con un archivo por imagen, en el formato class x_center y_center width height y 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:

    Ejemplo
    from 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.

Comentarios