# Skeleton Estimation

Este bloque de función realiza la estimación de esqueletos de cuerpo entero en imágenes de entrada. Ofrece varios niveles de detalle (Body, Body with Feet, Wholebody), modos de rendimiento ajustables y umbrales de confianza para equilibrar velocidad y precisión. Los resultados incluyen una imagen de visualización, datos estructurados de esqueletos, metadatos del modelo y un conteo de personas.

## 📥 Entradas

`Image`\
La imagen a analizar para detectar poses humanas. Acepta fuentes de imagen típicas (fotogramas de cámara, imágenes cargadas o imágenes procesadas por otros bloques).

## 📤 Salidas

`Visualization`\
Imagen con esqueletos y cajas delimitadoras dibujadas para las personas detectadas.

`Skeletons`\
Datos estructurados que describen las personas detectadas: sus cajas delimitadoras, keypoints (con nombres y confidencias) y agrupaciones opcionales por partes del cuerpo.

`Model Info`\
Metadatos sobre la selección de modelo y la configuración de ejecución (tipo de modelo, modo, dispositivo, umbrales).

`Person Count`\
Número de personas detectadas incluido en la salida estructurada.

## 🕹️ Controles

`Model Type`\
Elija el nivel de detalle: `Body` (17 keypoints), `Body with Feet` (26 keypoints) o `Wholebody` (cuerpo + rostro + manos).

`Mode`\
Seleccione el perfil de procesamiento para priorizar velocidad o precisión, p. ej. `lightweight`, `balanced`, `performance`.

`Skeleton Style`\
Elija el formato de salida de los keypoints, por ejemplo `MMPose` o `OpenPose`.

`Detection Threshold`\
Ajuste la confianza mínima requerida para considerar válida una persona detectada.

`Keypoint Threshold`\
Ajuste la confianza mínima requerida para marcar keypoints individuales como visibles.

`Max Persons`\
Limite el número de personas procesadas y devueltas para mantener un rendimiento estable.

## 🎯 Características clave

* Soporta múltiples formatos de modelo según el caso de uso: detección rápida solo de cuerpo o análisis detallado de todo el cuerpo (cara + manos).
* Ajuste de rendimiento mediante `Mode`, `Detection Threshold` y `Max Persons` para adaptarse a las capacidades del dispositivo.
* Filtrado de keypoints basado en confianza para reportar solo los puntos fiables como visibles.
* Retroalimentación visual con superposición de esqueletos y cajas delimitadoras para verificación rápida.
* Salidas estructuradas aptas para automatización posterior, análisis o registro.

## ⚙️ Mecanismo de ejecución (orientado al usuario)

* Cuando se proporciona una imagen, el bloque ejecuta el modelo de estimación seleccionado y devuelve tanto una imagen anotada como los datos estructurados de la pose.
* `Detection Threshold` controla si una persona detectada se considera válida. Valores más bajos devuelven más detecciones pero pueden incluir falsos positivos; valores más altos son más estrictos.
* `Keypoint Threshold` determina qué keypoints se marcan como visibles; úselo para ignorar articulaciones con baja confianza.
* `Max Persons` trunca los resultados a las detecciones principales para preservar el rendimiento en escenas concurridas.
* El bloque se adapta al `Mode` elegido para balancear velocidad y precisión: elija modos más ligeros para necesidades en tiempo real y modos más pesados para mayor exactitud.

## 📝 Instrucciones de uso

1. Proporcione una fuente de imagen al `Image`. Fuentes típicas: fotogramas de cámara (por ejemplo, `Camera USB` o `Camera IP (ONVIF)`) o una imagen cargada (`Load Image`).
2. Seleccione el `Model Type` deseado según el nivel de detalle requerido.
3. Ajuste `Mode` para que coincida con sus expectativas de rendimiento (más rápido o más preciso).
4. Ajuste `Detection Threshold` y `Keypoint Threshold` para filtrar detecciones poco fiables.
5. Opcionalmente reduzca `Max Persons` para acelerar el procesamiento en sistemas con recursos limitados.
6. Use las salidas: visualice `Visualization`, envíe `Skeletons` a análisis o registros y supervise `Person Count`.

## 💡 Consejos y trucos

* Para montajes en vivo, use `Camera USB`, `Camera IP (ONVIF)` o `Stream Reader` como fuentes de imagen. Para pruebas, use `Load Image`.
* Si el procesamiento es lento, pruebe a:
  * Seleccionar un `Mode` más rápido.
  * Reducir `Max Persons`.
  * Pre-redimensionar imágenes con `Image Resize` antes de enviar al bloque.
* Mejore la robustez en imágenes ruidosas aplicando preprocesamiento como `Blur` o `Denoising` antes del bloque de esqueletos.
* Para enfocarse en un área específica (por ejemplo, una puerta o una línea de montaje), recorte con `Image ROI` o `Image ROI Select` y ejecute la estimación solo en esa región.
* Combine las salidas con bloques de visualización y registro:
  * Envíe `Visualization` a `Show Image` para una vista previa interactiva.
  * Superponga cajas o etiquetas usando `Draw Detections` o `Write Text On Image` para paneles claros para el operario.
  * Guarde fotogramas de verificación con `Image Logger` o registre sesiones con `Record Video` para auditorías.
  * Convierta los `Skeletons` estructurados en registros con `Data to JSON` o exporte conteos vía `CSV Export`.
* Para seguridad o análisis de alto nivel:
  * Use `Skeletons` (posiciones de personas) junto con `Social Distance Detector` para comprobar violaciones de proximidad (puede necesitar una transformada de perspectiva o calibración mediante `Perspective Transform`).
  * Envíe las cajas delimitadoras o centros de personas a bloques lógicos personalizados para activar alertas o acciones externas (p. ej., `Send Mail` o `MQTT Publish`).

## 🛠️ Solución de problemas

* Si obtiene pocas o ninguna detección:
  * Aumente gradualmente `Detection Threshold` y/o `Keypoint Threshold`, o pruebe un `Mode` más preciso.
  * Asegúrese de que el sujeto esté bien iluminado y claramente visible en la fuente `Image`.
  * Pruebe preprocesamiento con `Image Resize` (ampliar o reducir) para ajustar la escala del sujeto a lo esperado.
* Si el rendimiento o la capacidad de respuesta son deficientes:
  * Elija un `Mode` más ligero, baje `Max Persons` o preprocese imágenes a tamaños menores con `Image Resize`.
* Si los resultados son ruidosos o inestables entre fotogramas:
  * Considere añadir suavizado temporal en la lógica posterior o registrar solo las detecciones con alta confianza (use umbrales).
* Si la inicialización o ejecución del modelo falla: asegúrese de que los componentes de runtime necesarios estén disponibles (instalables mediante las herramientas de módulos de la aplicación) y vuelva a ejecutar el bloque.

## 🔗 Ejemplos de flujos de bloques

* Monitorización en tiempo real: `Camera USB` → `Image Resize` → `Skeleton Estimation` → `Draw Detections` → `Show Image`
* Registro de auditoría: `Camera IP (ONVIF)` → `Skeleton Estimation` → `Image Logger` + `Data to JSON`
* Aplicación de seguridad (controles de distancia): `Camera USB` → `Skeleton Estimation` → (extraer centros de personas) → `Social Distance Detector` → `Draw Result On Image`

Utilice estas combinaciones para construir sistemas de detección de poses fiables y con buen rendimiento sin necesidad de tocar detalles de implementació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/skeleton-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.
