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.
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:
- Android - Ejemplo de código - Guía
- Python - Ejemplo de código - Guía
- Web - Ejemplo de código - Guía
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:
|
El marcador de posición de la mano genera los siguientes resultados:
|
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 |