Ir al contenido

Visión general de los conjuntos de datos de detección de objetos

El entrenamiento de un modelo de detección de objetos sólido y preciso requiere un conjunto de datos completo. En esta guía se presentan varios formatos de conjuntos de datos compatibles con el modelo Ultralytics YOLO y se ofrece información sobre su estructura, su uso y cómo convertirlos de un formato a otro.

Formatos de datos admitidos

Ultralytics YOLO formato

El formato Ultralytics YOLO es un formato de configuración de conjuntos de datos que 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 *.txt que contienen las rutas de las imágenes, y un diccionario de nombres de clases. He aquí un ejemplo:

# 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: ../datasets/coco8 # dataset root dir (absolute or relative; if relative, it's relative to default datasets_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 (80 COCO classes)
names:
    0: person
    1: bicycle
    2: car
    # ...
    77: teddy bear
    78: hair drier
    79: toothbrush

Las etiquetas de este formato deben exportarse al formato YOLO con una *.txt por imagen. Si no hay objetos en una imagen, no hay *.txt es necesario. La dirección *.txt debe formatearse con una fila por objeto en class x_center y_center width height formato. Las coordenadas de la casilla deben estar en xywh normalizado (de 0 a 1). Si sus cajas están en píxeles, debe dividir x_center y width por ancho de imagen, y y_center y height por la altura de la imagen. Los números de clase deben tener índice cero (empezar por 0).

Ejemplo de imagen etiquetada

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

Ejemplo de archivo de etiquetas

Cuando utilice el formato Ultralytics YOLO , organice sus 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 estructura de directorios de conjuntos de datos

Utilización

A continuación te explicamos cómo utilizar estos formatos para entrenar tu modelo:

Ejemplo

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640

Conjuntos de datos compatibles

A continuación figura una lista de los conjuntos de datos compatibles y una breve descripción de cada uno de ellos:

  • Argoverse: Un conjunto de datos que contiene datos de seguimiento 3D y previsión de movimiento de entornos urbanos con abundantes anotaciones.
  • COCO: Common Objects in Context (COCO) es un conjunto de datos de detección, segmentación y subtitulación de objetos a gran escala con 80 categorías de objetos.
  • LVIS: conjunto de datos de detección, segmentación y subtitulación de objetos a gran escala con 1203 categorías de objetos.
  • COCO8: un subconjunto más pequeño de las 4 primeras imágenes de COCO train y COCO val, adecuado para pruebas rápidas.
  • COCO128: un subconjunto más pequeño de las 128 primeras imágenes de COCO train y COCO val, adecuado para las pruebas.
  • Global Wheat 2020: Un conjunto de datos que contiene imágenes de cabezas de trigo para el Global Wheat Challenge 2020.
  • Objetos365: Un conjunto de datos a gran escala de alta calidad para la detección de objetos con 365 categorías de objetos y más de 600K imágenes anotadas.
  • OpenImagesV7: un amplio conjunto de datos de Google con 1,7 millones de imágenes de entrenamiento y 42.000 imágenes de validación.
  • SKU-110K: Un conjunto de datos de detección de objetos densos en entornos comerciales con más de 11 000 imágenes y 1,7 millones de cuadros delimitadores.
  • VisDrone: Un conjunto de datos que contiene datos de detección de objetos y seguimiento multiobjeto a partir de imágenes capturadas por drones con más de 10.000 imágenes y secuencias de vídeo.
  • VOC: El conjunto de datos Pascal Visual Object Classes (VOC) para la detección y segmentación de objetos con 20 clases de objetos y más de 11.000 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.
  • Roboflow 100: una prueba comparativa de detección de objetos con 100 conjuntos de datos que abarcan siete dominios de imágenes para la evaluación exhaustiva de modelos.
  • Tumor cerebral: Un conjunto de datos para detectar tumores cerebrales incluye imágenes de resonancia magnética o tomografía computarizada con detalles sobre la presencia, localización y características del tumor.
  • Vida salvaje africana: Conjunto de datos con imágenes de la fauna africana, como búfalos, elefantes, rinocerontes y cebras.
  • Firma: Un conjunto de datos con imágenes de varios documentos con firmas anotadas, que sirve de apoyo a la investigación sobre verificación de documentos y detección de fraudes.
  • Pastillas médicas: Un conjunto de datos con imágenes de píldoras médicas, anotadas para aplicaciones como la garantía de calidad farmacéutica, la clasificación de píldoras y el cumplimiento normativo.

Añadir su propio conjunto de datos

Si dispone de su propio conjunto de datos y desea utilizarlo para entrenar modelos de detección con el formato Ultralytics YOLO , asegúrese de que sigue el formato especificado anteriormente en "Ultralytics YOLO format". Convierta sus anotaciones al formato requerido y especifique las rutas, el número de clases y los nombres de las clases en el archivo de configuración YAML.

Portar o convertir formatos de etiquetas

COCO Dataset Format a YOLO Format

Puede convertir fácilmente etiquetas del popular formato de conjunto de datos COCO al formato YOLO utilizando 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 utilizarse para convertir el conjunto de datos COCO o cualquier conjunto de datos en formato COCO al formatoYOLO de Ultralytics . El proceso transforma las anotaciones COCO basadas en JSON al formato YOLO , más sencillo y basado en texto, haciéndolo compatible con los modelosYOLO de Ultralytics .

No olvide volver a comprobar si el conjunto de datos que desea utilizar es compatible con su modelo y sigue las convenciones de formato necesarias. Los conjuntos de datos formateados correctamente son cruciales para entrenar con éxito modelos de detección de objetos.

PREGUNTAS FRECUENTES

¿Cuál es el formato del conjunto de datos Ultralytics YOLO y cómo estructurarlo?

El formato Ultralytics YOLO es una configuración estructurada para definir conjuntos de datos en sus proyectos de formación. Se trata de establecer rutas a las imágenes de entrenamiento, validación y prueba y las etiquetas correspondientes. Por ejemplo:

path: ../datasets/coco8 # dataset root directory
train: images/train # training images (relative to 'path')
val: images/val # validation images (relative to 'path')
test: # optional test images
names:
    0: person
    1: bicycle
    2: car
    # ...

Las etiquetas se guardan en *.txt con un archivo por imagen, formateado como class x_center y_center width height con coordenadas normalizadas. Para obtener una guía detallada, consulte la página Ejemplo de conjunto de datos COCO8.

¿Cómo se convierte un conjunto de datos COCO al formato YOLO ?

Puede convertir un conjunto de datos COCO al formato YOLO utilizando las herramientas de conversión deUltralytics . He aquí un método rápido:

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/")

Este código convertirá sus anotaciones COCO al formato YOLO , permitiendo una integración perfecta con los modelos Ultralytics YOLO . Para más detalles, visite la sección Portar o convertir formatos de etiquetas.

¿Qué conjuntos de datos admite Ultralytics YOLO para la detección de objetos?

Ultralytics YOLO admite una amplia gama de conjuntos de datos, incluidos:

Cada página de conjunto de datos proporciona información detallada sobre la estructura y el uso adaptados para un entrenamiento eficaz de YOLO11 . Consulta la lista completa en la sección de conjuntos de datos compatibles.

¿Cómo empiezo a entrenar un modelo YOLO11 utilizando mi conjunto de datos?

Para empezar a entrenar un modelo YOLO11 , asegúrese de que el conjunto de datos tiene el formato correcto y las rutas están definidas en un archivo YAML. Utilice el siguiente script para comenzar el entrenamiento:

Ejemplo

from ultralytics import YOLO

model = YOLO("yolo11n.pt")  # Load a pretrained model
results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)
yolo detect train data=path/to/your_dataset.yaml model=yolo11n.pt epochs=100 imgsz=640

Consulte la sección Uso para obtener más detalles sobre la utilización de los distintos modos, incluidos los comandos CLI .

¿Dónde puedo encontrar ejemplos prácticos de la utilización de Ultralytics YOLO para la detección de objetos?

Ultralytics ofrece numerosos ejemplos y guías prácticas para utilizar YOLO11 en diversas aplicaciones. Para obtener una visión general completa, visite el blogUltralytics , donde encontrará estudios de casos, tutoriales detallados e historias de la comunidad que muestran la detección de objetos, la segmentación y mucho más con YOLO11. Para ver ejemplos concretos, consulte la sección Uso de la documentación.

Creado hace 1 año ✏️ Actualizado hace 9 días

Comentarios