Visión general de los conjuntos de datos de estimación de poses
Formatos de datos admitidos
Ultralytics YOLO formato
El formato de la etiqueta del conjunto de datos utilizado para el entrenamiento de los modelos de pose YOLO es el siguiente:
- 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".
- Una fila por objeto: Cada fila del archivo de texto corresponde a una instancia de objeto en la imagen.
- 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 estar 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
Formato con Dim = 3
<class-index> <x> <y> <width> <height> <px1> <py1> <p1-visibility> <px2> <py2> <p2-visibility> <pxn> <pyn> <pn-visibility>
En este formato, <class-index>
es el índice de la clase del objeto,<x> <y> <width> <height>
son coordenadas de cuadro delimitadory <px1> <py1> <px2> <py2> ... <pxn> <pyn>
son las coordenadas de píxel de los puntos clave. Las coordenadas están separadas por espacios.
Conjunto de datos en formato YAML
El marco de Ultralytics utiliza un formato de archivo YAML para definir el conjunto de datos y la configuración del modelo para el entrenamiento de modelos de estimación de pose. A continuación se muestra un ejemplo del formato YAML utilizado para definir un conjunto de datos de pose:
# 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 (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)
# 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 de objetos en los archivos del conjunto de datos YOLO .
(Opcional) si los puntos son simétricos, entonces necesita flip_idx, como el lado izquierdo-derecho de la cara humana. Por ejemplo, si suponemos cinco puntos clave 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 intercambiar el índice izquierda-derecha, es decir, 0-1 y 3-4, y no modificar otros como la nariz en este ejemplo).
Utilización
Ejemplo
Conjuntos de datos compatibles
En esta sección se describen los conjuntos de datos compatibles con el formatoYOLO Ultralytics 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 poses. 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 poses humanas.
- Número de Clases: 1 (Humano).
- Puntos clave: 17 puntos clave incluyendo nariz, ojos, orejas, hombros, codos, muñecas, caderas, rodillas y tobillos.
- Utilización: Adecuado para el entrenamiento de modelos de estimación de la pose humana.
- Notas adicionales: El conjunto de datos es rico y diverso, contiene más de 200k imágenes etiquetadas.
- Más información 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 poses humanas.
- Número de Clases: 1 (Humano).
- Puntos clave: 17 puntos clave incluyendo 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.
- Más información sobre COCO8-Pose
Postura del Tigre
- Descripción: Ultralytics El conjunto de datos Tiger Pose se compone de 263 imágenes extraídas de un vídeo de YouTube, de las que 210 se destinaron al entrenamiento y 53 a la validación.
- Formato de la 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.
- Uso: Ideal para poses de animales o cualquier otra pose que no sea humana.
- Más información sobre la postura del tigre
Puntos clave de la mano
- Descripción: Hand keypoints pose dataset comprises nearly 26K images, with 18776 images allocated for training and 7992 for validation.
- Formato de etiqueta: Igual que el formato Ultralytics YOLO descrito anteriormente, pero con 21 puntos clave para la mano humana y la dimensión visible.
- Número de clases: 1 (Mano).
- Puntos clave: 21 puntos clave.
- Utilización: Excelente para la estimación de la pose de la mano humana y el reconocimiento de gestos.
- Leer más sobre Hand Keypoints
Postura del perro
- Descripción: El conjunto de datos Dog Pose contiene aproximadamente 6.000 imágenes, proporcionando un recurso diverso y extenso para el entrenamiento y validación de modelos de estimación de la pose del perro.
- Formato de las etiquetas: Sigue el formato Ultralytics YOLO , con anotaciones para múltiples puntos clave específicos de la anatomía canina.
- Número de clases: 1 (Perro).
- Puntos clave: Incluye 24 puntos clave adaptados a las posturas del perro, como las extremidades, las articulaciones y las posiciones de la cabeza.
- Utilización: Ideal para el entrenamiento de modelos de estimación de poses caninas en diversos escenarios, desde la investigación hasta las aplicaciones en el mundo real.
- Leer más sobre Dog-Pose
Añadir su propio conjunto de datos
Si dispone de su propio conjunto de datos y desea utilizarlo para entrenar modelos de estimación de pose 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.
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
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 los 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 consiste en etiquetar cada imagen con su correspondiente archivo de texto. Cada fila del archivo de texto almacena información sobre un objeto:
- Índice de 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 poses 2D, los puntos clave incluyen coordenadas de píxeles. Para 3D, cada punto clave también tiene una bandera de visibilidad. Para obtener más información, consulte Ultralytics YOLO format.
¿Cómo se utiliza el conjunto de datos COCO-Pose con Ultralytics YOLO ?
Para utilizar el conjunto de datos COCO-Pose con Ultralytics YOLO:
- Descargue el conjunto de datos y prepare sus archivos de etiquetas en el formato YOLO .
- Cree un archivo de configuración YAML que especifique las rutas a las imágenes de entrenamiento y validación, la forma del punto clave y los nombres de las clases.
-
Utilice el archivo de configuración para la formación:
from ultralytics import YOLO model = YOLO("yolo11n-pose.pt") # load pretrained model results = model.train(data="coco-pose.yaml", epochs=100, imgsz=640)
Para más información, visite las secciones COCO-Pose y tren.
¿Cómo puedo añadir mi propio conjunto de datos para la estimación de la pose en Ultralytics YOLO ?
Para añadir su conjunto de datos:
- Convierta sus anotaciones al formato Ultralytics YOLO .
- Cree un archivo de configuración YAML especificando las rutas de los conjuntos de datos, el número de clases y los nombres de las clases.
-
Utilice el archivo de configuración para entrenar su modelo:
from ultralytics import YOLO model = YOLO("yolo11n-pose.pt") results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)
Para ver los pasos completos, consulte la sección Añadir su propio conjunto de datos.
¿Para qué sirve el archivo YAML del conjunto de datos en Ultralytics YOLO ?
El archivo YAML del conjunto de datos de 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. He aquí un ejemplo de formato YAML:
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 sobre 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 YOLO . Para más detalles, consulte la sección Herramienta de conversión y la guía de preprocesamiento de datos.