Ultralytics YOLO27:
Get Started

Conjunto de datos de puntos clave de manos#

Introducción#

El conjunto de datos de puntos clave de manos de Ultralytics contiene 26.768 imágenes de manos anotadas con 21 puntos clave cada una, generadas mediante la biblioteca Google MediaPipe para lograr una gran precisión y coherencia. Es compatible con los formatos de Ultralytics YOLO26 para entrenar modelos de estimación de pose.



Ver: Estimación de puntos clave de la mano con Ultralytics YOLO | Tutorial de estimación de pose de la mano humana

Puntos clave#

Diagrama de puntos de referencia de la mano con 21 puntos clave

Cada mano está anotada con 21 puntos clave, distribuidos así:

  1. Muñeca
  2. Pulgar (4 puntos)
  3. Dedo índice (4 puntos)
  4. Dedo corazón (4 puntos)
  5. Dedo anular (4 puntos)
  6. Dedo meñique (4 puntos)

Estructura del conjunto de datos#

  • Total de imágenes: 26.768 (18.776 de entrenamiento / 7.992 de validación).
  • Clases: 1 (mano).
  • Puntos clave: 21 por mano, en tripletas (x, y, visibility).
  • Tamaño de descarga: ~369 MB.

Si necesitas un vocabulario de gestos personalizado, más allá de los puntos de referencia genéricos de la mano, Ultralytics Platform te permite etiquetar y entrenar tu propio conjunto de datos desde el navegador.

Aplicaciones#

Los puntos clave de las manos permiten varias aplicaciones del mundo real:

  • Reconocimiento de gestos: interacción persona-ordenador e interfaces de control sin contacto.
  • Controles de RA/RV: interacción precisa con objetos virtuales.
  • Manipulación robótica: control preciso de manos robóticas.
  • Atención sanitaria: análisis del movimiento de las manos para el diagnóstico médico.
  • Animación: captura de movimiento para animar las manos de forma realista.
  • Autenticación biométrica: sistemas de seguridad basados en la geometría de la mano.

YAML del conjunto de datos#

Se utiliza un archivo YAML para definir la configuración del conjunto de datos. Contiene información sobre las rutas, las clases y otros datos relevantes. En el caso del conjunto de datos de puntos clave de manos, el archivo hand-keypoints.yaml se mantiene en https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/hand-keypoints.yaml.

ultralytics/cfg/datasets/hand-keypoints.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# Hand Keypoints dataset by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/pose/hand-keypoints
# Example usage: yolo train data=hand-keypoints.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── hand-keypoints ← downloads here (369 MB)

# 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: hand-keypoints # dataset root dir
train: images/train # train images (relative to 'path') 18776 images
val: images/val # val images (relative to 'path') 7992 images

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

# Classes
names:
  0: hand

# Keypoint names per class
kpt_names:
  0:
    - wrist
    - thumb_cmc
    - thumb_mcp
    - thumb_ip
    - thumb_tip
    - index_mcp
    - index_pip
    - index_dip
    - index_tip
    - middle_mcp
    - middle_pip
    - middle_dip
    - middle_tip
    - ring_mcp
    - ring_pip
    - ring_dip
    - ring_tip
    - pinky_mcp
    - pinky_pip
    - pinky_dip
    - pinky_tip

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/hand-keypoints.zip

Uso#

Para entrenar un modelo YOLO26n-pose con el conjunto de datos de puntos clave de manos durante 100 épocas y con un tamaño de imagen de 640, puedes utilizar los siguientes fragmentos de código. Consulta la página de entrenamiento del modelo para ver una lista completa de los argumentos disponibles.

Ejemplo de entrenamiento
from ultralytics import YOLO

# Cargar un modelo
model = YOLO("yolo26n-pose.pt")  # Carga un modelo preentrenado (recomendado para el entrenamiento)

# Entrenar el modelo
results = model.train(data="hand-keypoints.yaml", epochs=100, imgsz=640)

Imágenes de muestra y anotaciones#

El conjunto de datos de puntos clave de manos contiene una amplia variedad de imágenes de manos humanas anotadas mediante puntos clave. Aquí tienes algunos ejemplos de imágenes del conjunto de datos junto con sus anotaciones correspondientes:

Ejemplo del conjunto de datos de estimación de pose con puntos clave de manos

  • Imagen en mosaico: Esta imagen muestra un lote de entrenamiento compuesto por imágenes del conjunto de datos dispuestas en mosaico. El mosaico es una técnica que se utiliza durante el entrenamiento para combinar varias imágenes en una sola y aumentar la variedad de objetos y escenas de cada lote de entrenamiento. Esto ayuda a mejorar la capacidad del modelo para generalizar a distintos tamaños de objetos, relaciones de aspecto y contextos.

El ejemplo muestra la variedad y complejidad de las imágenes del conjunto de datos de puntos clave de manos y las ventajas de usar mosaicos durante el entrenamiento.

Citas y agradecimientos#

Si utilizas el conjunto de datos de puntos clave de manos en tu investigación o trabajo de desarrollo, cita las siguientes fuentes:

Cita

Queremos agradecer a las siguientes fuentes por proporcionar las imágenes utilizadas en este conjunto de datos:

Las imágenes se recopilaron y utilizaron conforme a las licencias correspondientes proporcionadas por cada plataforma, y se distribuyen bajo la Licencia internacional Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0.

También queremos reconocer la contribución del creador de este conjunto de datos, Rion Dsilva, a la investigación en IA de visión.

Preguntas frecuentes#

  • Carga yolo26n-pose.pt y llama a model.train(data="hand-keypoints.yaml", epochs=100, imgsz=640); consulta el ejemplo de entrenamiento anterior para ver los fragmentos completos de Python y CLI, y la página de entrenamiento del modelo para consultar una lista completa de argumentos.

  • Con 26 768 imágenes anotadas y 21 puntos clave por mano generados mediante Google MediaPipe, el conjunto de datos Hand Keypoints proporciona a los modelos de estimación de pose la escala y la precisión de anotación necesarias para tareas de estimación de pose avanzada. Consulta la sección Puntos clave para ver el desglose completo de los puntos de referencia.

  • Hand Keypoints permite el reconocimiento de gestos, los controles de AR/VR, la manipulación robótica, el análisis del movimiento en el ámbito sanitario, la animación y la autenticación biométrica; consulta la sección Aplicaciones para obtener más información sobre cada una.

  • El conjunto de datos Hand Keypoints se divide en dos subconjuntos:

    1. Entrenamiento: contiene 18 776 imágenes para entrenar modelos de estimación de pose.
    2. Validación: contiene 7992 imágenes para validar los modelos durante el entrenamiento.

    Esta estructura garantiza un proceso exhaustivo de entrenamiento y validación. Para obtener más información, consulta la sección Estructura del conjunto de datos.

  • La configuración del conjunto de datos se define en un archivo YAML que incluye rutas, clases y otra información relevante. Puedes encontrar el archivo hand-keypoints.yaml en hand-keypoints.yaml.

    Para utilizar este archivo YAML en el entrenamiento, especifícalo en el script de entrenamiento o en el comando CLI, como se muestra en el ejemplo de entrenamiento anterior. Para obtener más información, consulta la sección YAML del conjunto de datos.

Comentarios