Guía de detección de puntos de referencia en la mano

La tarea MediaPipe Hand Landmarker te permite detectar los puntos de referencia de las manos en una imagen. Puedes usar esta tarea para ubicar puntos clave clave y renderizar efectos visuales en ellos. Esta tarea opera en datos de imagen con un modelo de aprendizaje automático (AA) como datos estáticos o una transmisión continua y genera puntos de referencia de la mano en coordenadas de imágenes, puntos de referencia de la mano en coordenadas mundiales y la mano(izquierda/derecha) de varias manos detectadas.

Probar

Comenzar

Comienza a utilizar esta tarea siguiendo una de estas guías de implementación para la plataforma de destino. En estas guías específicas de la plataforma, se explica la implementación básica de esta tarea, incluidos un modelo recomendado y un ejemplo de código con las opciones de configuración recomendadas:

Detalles de la tarea

En esta sección, se describen las capacidades, entradas, salidas y opciones de configuración de esta tarea.

Funciones

  • Procesamiento de imágenes de entrada: El procesamiento incluye la rotación de imágenes, el cambio de tamaño, la normalización y la conversión del espacio de color.
  • Umbral de puntuación: Filtra los resultados en función de las puntuaciones de predicción.
Entradas de tareas Resultados de la tarea
El marcador de posición manual acepta una entrada de uno de los siguientes tipos de datos:
  • Imágenes fijas
  • Fotogramas de video decodificados
  • Feed de video en vivo
El marcador de posición de la mano genera los siguientes resultados:
  • Mano de las manos detectadas
  • Puntos de referencia de manos detectadas en coordenadas de imagen
  • Puntos de referencia de manos detectadas en coordenadas mundiales

Opciones de configuración

Esta tarea incluye las siguientes opciones de configuración:

Nombre de la opción Descripción Rango de valores Valor predeterminado
running_mode Establece el modo de ejecución para la tarea. Existen tres modos:

IMAGE: El modo para entradas de una sola imagen.

VIDEO: Es el modo para los fotogramas decodificados de un video.

LIVE_STREAM: Es el modo para una transmisión en vivo de datos de entrada, como los que provienen de una cámara. En este modo, se debe llamar a resultListener para configurar un objeto de escucha a fin de recibir resultados de forma asíncrona.
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
num_hands La cantidad máxima de manos detectadas por el detector de puntos de referencia de la mano. Any integer > 0 1
min_hand_detection_confidence Puntuación de confianza mínima para que la detección de la mano se considere exitosa en el modelo de detección de palma. 0.0 - 1.0 0.5
min_hand_presence_confidence Puntuación de confianza mínima para la puntuación de presencia de la mano en el modelo de detección de puntos de referencia de la mano. En los modos de video y de transmisión en vivo, si la puntuación de confianza de la presencia de la mano del modelo del punto de referencia de la mano es inferior a este umbral, el marcador de la mano activa el modelo de detección de la palma. De lo contrario, un algoritmo básico de seguimiento de la mano determina la ubicación de las manos para las detecciones de puntos de referencia posteriores. 0.0 - 1.0 0.5
min_tracking_confidence La puntuación de confianza mínima para que el seguimiento de la mano se considere exitoso. Este es el umbral de IoU del cuadro de límite entre las manos en el marco actual y el último fotograma. Si el seguimiento falla, en los modos Video y Transmisión de Marcadores manuales, se activa la detección de la mano. De lo contrario, omitirá la detección de la mano. 0.0 - 1.0 0.5
result_callback Configura el objeto de escucha de resultados para recibir los resultados de la detección de forma asíncrona cuando el punto de referencia manual está en el modo de transmisión en vivo. Solo se aplica cuando el modo de ejecución está configurado en LIVE_STREAM N/A N/A

ajustables

Hand Landmarker usa un paquete de modelos con dos modelos empaquetados: un modelo de detección de palma y un modelo de detección de puntos de referencia de la mano. Necesitas un paquete de modelos que contenga ambos modelos para ejecutar esta tarea.

Nombre del modelo Forma de entrada Tipo de cuantización Tarjeta de modelo Versiones
HandLandmarker (completo) 192 × 192, 224 × 224 número de punto flotante 16 info Más reciente

El paquete de modelos de puntos de referencia de la mano detecta la localización de los puntos clave de 21 coordenadas de mano en las regiones de la mano detectadas. El modelo se entrenó con alrededor de 30,000 imágenes del mundo real, así como con varios modelos de mano sintética renderizados sobre varios fondos.

El paquete de modelos del punto de referencia de la mano contiene un modelo de detección de la palma y uno de detección de puntos de referencia de la mano. El modelo de detección de la palma localiza las manos dentro de la imagen de entrada, y el modelo de detección de puntos de referencia de la mano identifica puntos de referencia específicos de la mano en la imagen recortada de la mano que define el modelo de detección de la palma.

Como la ejecución del modelo de detección de palma requiere mucho tiempo, cuando está en modo de ejecución de video o transmisión en vivo, el marcador manual usa el cuadro de límite definido por el modelo de puntos de referencia de la mano en un fotograma a fin de localizar la región de las manos para los fotogramas posteriores. El marcador de mano solo vuelve a activar el modelo de detección de la palma si el modelo de puntos de referencia de la mano ya no identifica la presencia de manos o no puede rastrearlas dentro del marco. Esto reduce la cantidad de veces que se activa el modelo de detección de palma.

Comparativas de tareas

Estas son las comparativas de tareas para toda la canalización basadas en los modelos previamente entrenados anteriores. El resultado de latencia es la latencia promedio en el Pixel 6 usando CPU / GPU.

Nombre del modelo Latencia de la CPU Latencia de GPU
HandLandmarker (completo) 17.12ms 12.27ms