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.

PREGUNTAS FRECUENTES

驴Cu谩l es el formato Ultralytics YOLO para la estimaci贸n de la pose?

El formato Ultralytics YOLO para los conjuntos de datos de estimaci贸n de la pose implica etiquetar cada imagen con un archivo de texto correspondiente. Cada fila del archivo de texto almacena informaci贸n sobre una instancia del objeto:

  • 脥ndice de la clase de objeto
  • Coordenadas del centro del objeto (x e y normalizadas)
  • Anchura y altura del objeto (normalizadas)
  • Coordenadas del punto clave del objeto (pxn y pyn normalizados)

Para las posturas 2D, los puntos clave incluyen coordenadas de p铆xeles. Para 3D, cada punto clave tambi茅n tiene una bandera de visibilidad. Para m谩s detalles, consulta Ultralytics FormatoYOLO .

驴C贸mo utilizo el conjunto de datos COCO-Pose con Ultralytics YOLO ?

Para utilizar el conjunto de datos COCO-Pose con Ultralytics YOLO : 1. Descarga el conjunto de datos y prepara tus archivos de etiquetas en el formato YOLO . 2. Crea un archivo de configuraci贸n YAML especificando las rutas a las im谩genes de entrenamiento y validaci贸n, la forma del punto clave y los nombres de las clases. 3. Utiliza el archivo de configuraci贸n para el entrenamiento:

```python
from ultralytics import YOLO

model = YOLO("yolov8n-pose.pt")  # load pretrained model
results = model.train(data="coco-pose.yaml", epochs=100, imgsz=640)
```

For more information, visit [COCO-Pose](coco.md) and [train](../../modes/train.md) sections.

驴C贸mo puedo a帽adir mi propio conjunto de datos para la estimaci贸n de la pose en Ultralytics YOLO ?

Para a帽adir tu conjunto de datos: 1. Convierte tus anotaciones al formato Ultralytics YOLO . 2. Crea un archivo de configuraci贸n YAML especificando las rutas del conjunto de datos, el n煤mero de clases y los nombres de las clases. 3. Utiliza el archivo de configuraci贸n para entrenar tu modelo:

```python
from ultralytics import YOLO

model = YOLO("yolov8n-pose.pt")
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)
```

For complete steps, check the [Adding your own dataset](#adding-your-own-dataset) section.

驴Para qu茅 sirve el archivo YAML del conjunto de datos en Ultralytics YOLO ?

El archivo YAML del conjunto de datos en Ultralytics YOLO define el conjunto de datos y la configuraci贸n del modelo para el entrenamiento. Especifica las rutas a las im谩genes de entrenamiento, validaci贸n y prueba, las formas de los puntos clave, los nombres de las clases y otras opciones de configuraci贸n. Este formato estructurado ayuda a agilizar la gesti贸n del conjunto de datos y el entrenamiento del modelo. Aqu铆 tienes un ejemplo de formato YAML:

path: ../datasets/coco8-pose
train: images/train
val: images/val
names:
  0: person

M谩s informaci贸n sobre la creaci贸n de archivos de configuraci贸n YAML en formato Dataset YAML.

驴C贸mo puedo convertir las etiquetas del conjunto de datos COCO al formato Ultralytics YOLO para la estimaci贸n de la pose?

Ultralytics proporciona una herramienta de conversi贸n para convertir las etiquetas de los conjuntos de datos COCO al formato YOLO , incluida la informaci贸n de los puntos clave:

from ultralytics.data.converter import convert_coco

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

Esta herramienta ayuda a integrar sin problemas los conjuntos de datos COCO en los proyectos de YOLO . Para m谩s detalles, consulta la secci贸n Herramienta de conversi贸n.



Creado 2023-11-12, Actualizado 2024-07-04
Autores: glenn-jocher (9)

Comentarios