Saltar al contenido

Visi贸n general de los 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 proporciona informaci贸n sobre su estructura, uso y c贸mo convertir entre distintos formatos.

Formatos de conjuntos de datos admitidos

Ultralytics YOLO formato

El formato Ultralytics YOLO es un formato de configuraci贸n del 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 *.txt que contienen las rutas de las im谩genes, y un diccionario de nombres de clases. Aqu铆 tienes 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
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 tus casillas est谩n en p铆xeles, debes 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 utilices 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 que aparece a continuaci贸n.

Ejemplo de estructura de directorios de conjuntos de datos

Utilizaci贸n

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

Ejemplo

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.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=yolov8n.pt epochs=100 imgsz=640

Conjuntos de datos compatibles

Aqu铆 tienes una lista de los conjuntos de datos admitidos y una breve descripci贸n de cada uno:

  • Argoverse: Un conjunto de datos que contiene datos de seguimiento 3D y previsi贸n de movimiento de entornos urbanos con ricas anotaciones.
  • COCO: Objetos Comunes en Contexto (COCO) es un conjunto de datos a gran escala de detecci贸n, segmentaci贸n y subtitulaci贸n de objetos con 80 categor铆as de objetos.
  • LVIS: Un conjunto de datos a gran escala de detecci贸n, segmentaci贸n y subtitulaci贸n de objetos 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.
  • Trigo Global 2020: Un conjunto de datos que contiene im谩genes de cabezas de trigo para el Desaf铆o Mundial del Trigo 2020.
  • Objetos365: Un conjunto de datos a gran escala y de alta calidad para la detecci贸n de objetos, con 365 categor铆as de objetos y m谩s de 600.000 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.
  • xVer: 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 diversos 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: Un conjunto de datos con im谩genes de la fauna africana, incluidos 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.

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 "Ultralytics YOLO formato". 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.

Portar o convertir formatos de etiquetas

Formato del conjunto de datos COCO a formato YOLO

Puedes 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 formato Ultralytics YOLO .

Recuerda comprobar dos veces si el conjunto de datos que quieres utilizar es compatible con tu 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 tus proyectos de entrenamiento. Implica establecer rutas a tus 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 una gu铆a detallada, consulta Ejemplo de conjunto de datos COCO8.

驴C贸mo convierto un conjunto de datos COCO al formato YOLO ?

Puedes convertir un conjunto de datos COCO al formato YOLO utilizando 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 m谩s detalles, visita 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:

La p谩gina de cada conjunto de datos proporciona informaci贸n detallada sobre su estructura y uso, adaptada para un entrenamiento eficaz en YOLOv8 . Explora la lista completa en la secci贸n Conjuntos de datos compatibles.

驴C贸mo empiezo a entrenar un modelo YOLOv8 utilizando mi conjunto de datos?

Para empezar a entrenar un modelo YOLOv8 , aseg煤rate de que tu conjunto de datos tiene el formato correcto y las rutas est谩n definidas en un archivo YAML. Utiliza el siguiente script para comenzar el entrenamiento:

Ejemplo

from ultralytics import YOLO

model = YOLO("yolov8n.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=yolov8n.pt epochs=100 imgsz=640

Consulta 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 del uso de Ultralytics YOLO para la detecci贸n de objetos?

Ultralytics ofrece numerosos ejemplos y gu铆as pr谩cticas para utilizar YOLOv8 en diversas aplicaciones. Para obtener una visi贸n general completa, visita el Blog deUltralytics , 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 YOLOv8. Para ver ejemplos concretos, consulta la secci贸n Uso de la documentaci贸n.



Creado 2023-11-12, Actualizado 2024-07-04
Autores: glenn-jocher (10), RizwanMunawar (2), IvorZhu331 (1), Laughing-q (1)

Comentarios