> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/french/function-blocks/blocks-reference/ai-blocks/hand-pose-estimation.md).

# Hand Pose Estimation

Ce bloc de fonction détecte et estime les points clés de la main (21 par main) dans les images et fournit à la fois une superposition visuelle et des données structurées de détection. Il est conçu pour une utilisation en temps réel et propose des contrôles pour la sensibilité de détection, la visibilité des points clés, le style du squelette de sortie et le nombre maximum de mains à traiter.

## 📥 Entrées <a href="#inputs" id="inputs"></a>

`Image`\
Fournissez une image (frame caméra, image chargée ou image prétraitée) à analyser pour la présence de mains.

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

`Visualization`\
Image annotée montrant points clés, squelettes et boîtes englobantes.

`Hands`\
Données structurées (liste/dictionnaire) incluant les boîtes englobantes, les positions par point clé, les scores de confiance et les drapeaux de visibilité.

`Model Info`\
Informations de base d’exécution, comme le style de squelette sélectionné et les paramètres de seuil.

`Hand Count`\
Nombre de mains détectées (après application des limites configurées).

## 🕹️ Contrôles <a href="#controls" id="controls"></a>

`Skeleton Style`\
Choix du format de visualisation des points clés/squelettes (ex. style MMPose ou OpenPose).

`Det Threshold`\
Ajuste la confiance minimale requise pour qu’une détection de main soit considérée valide (échelle 0–100).

`Keypoint Threshold`\
Seuil minimal de confiance pour qu’un point clé individuel soit considéré comme visible (0–100).

`Max Hands`\
Limite le nombre de mains renvoyées et dessinées (utile pour réduire la taille des sorties et la charge de traitement en scènes encombrées).

## 🎨 Fonctionnalités <a href="#features" id="features"></a>

* Superposition visuelle avec points clés, connexions de squelette et boîtes englobantes pour chaque main détectée.
* Sortie structurée de type JSON pour la logique en aval : boîtes englobantes, positions (x,y) par point clé, confiance et visibilité.
* Seuils ajustables par l’utilisateur pour équilibrer sensibilité et faux positifs.
* Limitation du nombre de mains traitées via `Max Hands` pour un comportement en aval prévisible.
* Utilisation automatique du matériel disponible pour améliorer la vitesse (préférence GPU si présent).

## 📝 Mode d’emploi <a href="#usage" id="usage"></a>

1. Fournissez une source d’image à l’entrée `Image` (caméra live, flux ou fichier image).
2. Choisissez le `Skeleton Style` souhaité pour la visualisation et le format en aval.
3. Ajustez `Det Threshold` pour ignorer les détections faibles si nécessaire.
4. Ajustez `Keypoint Threshold` pour définir quels points clés sont considérés visibles.
5. Réglez `Max Hands` si vous voulez suivre un nombre limité de mains.
6. Lisez les sorties : utilisez `Visualization` pour prévisualiser, et `Hands` / `Hand Count` pour la logique, l’interface ou le journal.

## 📊 Fonctionnement <a href="#evaluation" id="evaluation"></a>

Pour une image fournie, le bloc analyse la photo pour trouver des mains, applique les seuils de confiance pour détection et points clés, limite les résultats par `Max Hands`, puis produit : une image visuelle avec superpositions, une liste structurée des mains détectées (boîtes et détails par point clé), un résumé `Model Info` et le nombre de mains détectées.

## 💡 Astuces <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Pour une entrée live, combinez avec `Camera USB`, `Camera IP (ONVIF)` ou `Stream Reader` pour alimenter des frames continus.
* Utilisez `Show Image` pour prévisualiser la sortie `Visualization` dans une plus grande fenêtre pendant le réglage des seuils.
* Prétraitez les images bruitées avec `Blur`, `Denoising` ou `Image Resize` pour stabiliser la détection.
* Si les mains sont partiellement recadrées ou si vous souhaitez analyser une zone spécifique, placez un bloc `Image ROI Select` ou `Image ROI` avant ce bloc.
* Pour annoter des résultats, combinez `Visualization` avec `Write Text On Image` ou `Draw Result On Image` puis enregistrez via `Image Logger`, `Image Write` ou `Record Video`.
* Pour réduire les faux positifs et accélérer le traitement, détectez d’abord les personnes avec `Object Detection` ou `Object Detection - Custom` et appliquez ensuite la détection de mains uniquement sur les régions personnes.
* Si vous avez besoin de points clés pour tout le corps en plus des mains, associez à `Skeleton Estimation` et fusionnez les résultats dans les étapes suivantes.

## 🛠️ Dépannage <a href="#troubleshooting" id="troubleshooting"></a>

* Aucune détection : Essayez de diminuer légèrement `Det Threshold` et `Keypoint Threshold`, ou améliorez la qualité de l’image avec `Image Resizer`.
* Faux positifs / points clés bruyants : Augmentez les seuils et/ou recadrez la région d’intérêt avec `Image ROI Select` pour supprimer le désordre.
* Trop lent : Baissez la résolution d’image via `Image Resize`, réduisez `Max Hands` ou utilisez une source d’image plus rapide. Un système avec GPU accélérera le traitement.
* Modèle manquant / dépendances : Ce bloc nécessite le modèle de hand-pose disponible. Si le modèle ou les composants d’exécution sont absents, utilisez l’installateur de modules de l’application pour ajouter les packages runtime et modèle requis.

Si vous voulez un exemple de pipeline recommandé pour le suivi de mains en direct (caméra → prétraitement → hand pose → affichage/enregistrement), demandez une chaîne de blocs suggérée avec une courte explication.
