# Hand Pose Estimation

## 📥 Entradas <a href="#inputs" id="inputs"></a>

`Image`\
Proporcione una imagen (frame de cámara, imagen cargada o imagen procesada) para analizar en busca de manos.

## 📤 Salidas <a href="#outputs" id="outputs"></a>

`Visualization`\
Imagen anotada que muestra keypoints, esqueletos y bounding boxes.

`Hands`\
Datos estructurados de la detección (lista/diccionario) que incluyen bounding boxes, posiciones por keypoint, puntuaciones de confianza y flags de visibilidad.

`Model Info`\
Información básica de tiempo de ejecución, como el estilo de esqueleto seleccionado y los ajustes de umbral.

`Hand Count`\
Número de manos detectadas (después de aplicar los límites configurados).

## 🕹️ Controles <a href="#controls" id="controls"></a>

`Skeleton Style`\
Elija cómo se formatean los keypoints/esqueletos para la visualización (por ejemplo, estilo MMPose u OpenPose).

`Det Threshold`\
Ajuste la confianza mínima requerida para que una detección de mano se considere válida (escala 0–100).

`Keypoint Threshold`\
Establezca la confianza mínima para que un keypoint individual se considere visible (escala 0–100).

`Max Hands`\
Limite cuántas manos se devuelven y dibujan (útil para reducir el tamaño de salida y el procesamiento en escenas concurridas).

## 🎨 Características <a href="#features" id="features"></a>

* Superposición visual con keypoints, conexiones de esqueleto y bounding boxes para cada mano detectada.
* Salida estructurada tipo JSON para uso posterior: bounding boxes, posiciones (x,y) por keypoint, confianza y visibilidad.
* Umbrales ajustables por el usuario para equilibrar sensibilidad frente a falsos positivos.
* Limite el número de manos procesadas con `Max Hands` para un comportamiento downstream predecible.
* Usa automáticamente el hardware disponible para mejorar la velocidad (preferirá GPU si está disponible).

## 📝 Instrucciones de uso <a href="#usage" id="usage"></a>

1. Conecte una fuente de imagen al input `Image` (cámara en vivo, stream o archivo de imagen).
2. Elija el `Skeleton Style` preferido para la visualización y el formato downstream.
3. Ajuste `Det Threshold` para controlar si se ignoran detecciones débiles.
4. Ajuste `Keypoint Threshold` para controlar qué keypoints se consideran visibles.
5. Configure `Max Hands` si solo desea rastrear un número limitado de manos.
6. Lea las salidas: use `Visualization` para previsualizar, y `Hands` / `Hand Count` para lógica, interfaz o registro.

## 📊 Cómo funciona <a href="#evaluation" id="evaluation"></a>

Al recibir una imagen, el bloque analiza la imagen en busca de manos, aplica los umbrales de confianza para detección y keypoints, limita los resultados según `Max Hands` y luego emite: una imagen visual con overlays, una lista estructurada de manos detectadas con bounding boxes y detalles por keypoint, un pequeño resumen en `Model Info` y el número de manos detectadas.

## 💡 Consejos y trucos <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Para entrada en vivo, combine con `Camera USB`, `Camera IP (ONVIF)` o `Stream Reader` para alimentar frames continuos.
* Use `Show Image` para previsualizar la salida `Visualization` en una ventana más grande mientras ajusta umbrales.
* Preprocese imágenes con ruido usando `Blur`, `Denoising` o `Image Resize` para mejorar la estabilidad de la detección.
* Si las manos aparecen recortadas o solo desea analizar un área específica, coloque un bloque `Image ROI Select` o `Image ROI` antes de este bloque.
* Para anotar resultados en reportes, combine `Visualization` con `Write Text On Image` o `Draw Result On Image` y luego guarde con `Image Logger`, `Image Write` o `Record Video`.
* Use `Object Detection` o `Object Detection - Custom` antes de este bloque cuando quiera localizar primero a las personas y luego analizar solo las regiones de persona para manos — esto reduce falsos positivos y acelera el procesamiento.
* Si necesita keypoints de cuerpo completo además de las manos, considere emparejar con `Skeleton Estimation` y combinar resultados en pasos de procesamiento posteriores.

## 🛠️ Solución de problemas <a href="#troubleshooting" id="troubleshooting"></a>

* Sin detecciones: Intente bajar ligeramente `Det Threshold` y `Keypoint Threshold`, o mejore la claridad de la imagen con `Image Resizer`.
* Falsos positivos / keypoints ruidosos: Aumente los umbrales y/o recorte la región de interés con `Image ROI Select` para eliminar el desorden.
* Demasiado lento: Reduzca la resolución de la imagen con `Image Resize`, disminuya `Max Hands` o use una fuente de imagen más rápida. Un sistema con GPU acelerará el procesamiento.
* Falta de dependencias o modelo no disponible: El bloque requiere que el modelo de hand-pose esté disponible. Si el modelo o componentes de runtime no están presentes, siga el instalador de módulos / descargador de módulos de la aplicación para añadir los paquetes de runtime y modelo necesarios.

Si necesita combinaciones de ejemplo o una canalización recomendada pequeña para seguimiento de manos en vivo (camera → preprocess → hand pose → display/save), pida una cadena de bloques sugerida y una breve explicación.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.augelab.com/spanish/bloques-de-funcion/ai-blocks/hand-pose-estimation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
