Saltar al contenido

Visi贸n general de los conjuntos de datos de estimaci贸n de poses

Formatos de conjuntos de datos admitidos

Ultralytics YOLO formato

El formato de la etiqueta del conjunto de datos utilizado para entrenar los modelos de pose YOLO es el siguiente:

  1. Un archivo de texto por imagen: Cada imagen del conjunto de datos tiene su correspondiente archivo de texto con el mismo nombre que el archivo de imagen y la extensi贸n ".txt".
  2. Una fila por objeto: Cada fila del archivo de texto corresponde a una instancia de objeto en la imagen.
  3. Informaci贸n del objeto por fila: Cada fila contiene la siguiente informaci贸n sobre la instancia del objeto:
    • 脥ndice de clase del objeto: Un n煤mero entero que representa la clase del objeto (por ejemplo, 0 para persona, 1 para coche, etc.).
    • Coordenadas del centro del objeto: Las coordenadas x e y del centro del objeto, normalizadas para que est茅n entre 0 y 1.
    • Anchura y altura del objeto: La anchura y la altura del objeto, normalizadas para que est茅n entre 0 y 1.
    • Coordenadas de los puntos clave del objeto: Los puntos clave del objeto, normalizados para que est茅n entre 0 y 1.

He aqu铆 un ejemplo del formato de etiqueta para la tarea de estimaci贸n de la pose:

Formato con Dim = 2

<class-index> <x> <y> <width> <height> <px1> <py1> <px2> <py2> ... <pxn> <pyn>

Formato con Dim = 3

<class-index> <x> <y> <width> <height> <px1> <py1> <p1-visibility> <px2> <py2> <p2-visibility> <pxn> <pyn> <p2-visibility>

En este formato, <class-index> es el 铆ndice de la clase del objeto,<x> <y> <width> <height> son las coordenadas de la caja delimitadora, y <px1> <py1> <px2> <py2> ... <pxn> <pyn> son las coordenadas en p铆xeles de los puntos clave. Las coordenadas est谩n separadas por espacios.

Conjunto de datos en formato YAML

El marco Ultralytics utiliza un formato de archivo YAML para definir el conjunto de datos y la configuraci贸n del modelo para entrenar Modelos de detecci贸n. He aqu铆 un ejemplo del formato YAML utilizado para definir un conjunto de datos de detecci贸n:

# 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-pose  # 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)

# Keypoints
kpt_shape: [17, 3]  # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
flip_idx: [0, 2, 1, 4, 3, 6, 5, 8, 7, 10, 9, 12, 11, 14, 13, 16, 15]

# Classes dictionary
names:
  0: person

En train y val especifican las rutas a los directorios que contienen las im谩genes de entrenamiento y validaci贸n, respectivamente.

names es un diccionario de nombres de clases. El orden de los nombres debe coincidir con el orden de los 铆ndices de las clases objeto en los archivos del conjunto de datos YOLO .

(Opcional) Si los puntos son sim茅tricos, necesitas flip_idx, como el lado izquierdo-derecho de un humano o de una cara. Por ejemplo, si suponemos cinco puntos clave del punto de referencia facial [ojo izquierdo, ojo derecho, nariz, boca izquierda, boca derecha], y el 铆ndice original es [0, 1, 2, 3, 4], entonces flip_idx es [1, 0, 2, 4, 3] (s贸lo intercambia el 铆ndice izquierda-derecha, es decir, 0-1 y 3-4, y no modifiques otros como la nariz en este ejemplo).

Utilizaci贸n

Ejemplo

from ultralytics import YOLO

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

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

Conjuntos de datos compatibles

En esta secci贸n se describen los conjuntos de datos compatibles con el formato Ultralytics YOLO y que pueden utilizarse para entrenar modelos de estimaci贸n de la pose:

COCO-Pose

  • Descripci贸n: COCO-Pose es un conjunto de datos a gran escala de detecci贸n de objetos, segmentaci贸n y estimaci贸n de la pose. Es un subconjunto del popular conjunto de datos COCO y se centra en la estimaci贸n de la pose humana. COCO-Pose incluye m煤ltiples puntos clave para cada instancia humana.
  • Formato de etiqueta: Igual que el formato Ultralytics YOLO descrito anteriormente, con puntos clave para las poses humanas.
  • N煤mero de Clases: 1 (Humano).
  • Puntos clave: 17 puntos clave: nariz, ojos, orejas, hombros, codos, mu帽ecas, caderas, rodillas y tobillos.
  • Utilizaci贸n: Adecuado para entrenar modelos de estimaci贸n de la pose humana.
  • Notas adicionales: El conjunto de datos es rico y diverso, y contiene m谩s de 200.000 im谩genes etiquetadas.
  • Leer m谩s sobre COCO-Pose

COCO8-Postura

  • Descripci贸n: Ultralytics COCO8-Pose es un peque帽o pero vers谩til conjunto de datos de detecci贸n de poses compuesto por las 8 primeras im谩genes del conjunto COCO train 2017, 4 para entrenamiento y 4 para validaci贸n.
  • Formato de etiqueta: Igual que el formato Ultralytics YOLO descrito anteriormente, con puntos clave para las poses humanas.
  • N煤mero de Clases: 1 (Humano).
  • Puntos clave: 17 puntos clave: nariz, ojos, orejas, hombros, codos, mu帽ecas, caderas, rodillas y tobillos.
  • Utilizaci贸n: Adecuado para probar y depurar modelos de detecci贸n de objetos, o para experimentar con nuevos enfoques de detecci贸n.
  • Notas adicionales: COCO8-Pose es ideal para comprobaciones de cordura y comprobaciones de CI.
  • Leer m谩s sobre COCO8-Pose

Postura del Tigre

  • Descripci贸n: Ultralytics Este conjunto de datos de poses de animales consta de 263 im谩genes procedentes de un v铆deo de YouTube, con 210 im谩genes asignadas para el entrenamiento y 53 para la validaci贸n.
  • Formato de etiqueta: Igual que el formato Ultralytics YOLO descrito anteriormente, con 12 puntos clave para la pose del animal y sin dimensi贸n visible.
  • N煤mero de Clases: 1 (Tigre).
  • Puntos clave: 12 puntos clave.
  • Utilizaci贸n: Ideal para poses de animales o cualquier otra pose que no sea humana.
  • Leer m谩s sobre la Postura del Tigre

A帽adir tu propio conjunto de datos

Si tienes tu propio conjunto de datos y quieres utilizarlo para entrenar modelos de estimaci贸n de pose 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.

Herramienta de conversi贸n

Ultralytics proporciona una c贸moda herramienta de conversi贸n para convertir etiquetas del popular formato de conjunto de datos COCO al formato YOLO :

Ejemplo

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/", use_keypoints=True)

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 . El formato use_keypoints especifica si se incluyen puntos clave (para la estimaci贸n de la pose) en las etiquetas convertidas.



Creado 2023-11-12, Actualizado 2024-05-18
Autores: glenn-jocher (7)

Comentarios