Meet YOLO26: next-gen vision AI.

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/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

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

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

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.

YOLO dataset directory structure with train and val folders

Link to this sectionEjemplo de uso#

Aquí tienes cómo puedes usar conjuntos de datos en formato YOLO para entrenar tu modelo:

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

  1. 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
  2. Registros de imágenes (líneas siguientes): Contiene datos de imágenes individuales, incluyendo dimensiones, anotaciones y rutas de archivo
Ejemplo de NDJSON
{
    "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:

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

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

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

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

Comentarios