> 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/german/funktionsblocke/blocks-reference/ai-blocks/skeleton-estimation.md).

# Skeleton Estimation

Dieser Funktionsblock führt eine vollständige Körper-Skelettschätzung auf Eingabebildern durch. Er bietet mehrere Detailebenen (`Body`, `Body with Feet`, `Wholebody`), einstellbare Performance-Modi und Vertrauensschwellen, sodass Sie Geschwindigkeit und Genauigkeit ausbalancieren können. Als Ergebnisse erhalten Sie ein Visualisierungsbild, strukturierte Skelettdaten, Modell-Metadaten und eine Personenanzahl.

## 📥 Eingänge

`Image`\
Das Bild, das auf Körperhaltungen analysiert werden soll. Akzeptiert typische Bildquellen (Kamera-Frames, geladene Bilder oder verarbeitete Bilder aus anderen Blöcken).

## 📤 Ausgänge

`Visualization`\
Ein Bild mit eingezeichneten Skeletten und Bounding-Boxen für erkannte Personen.

`Skeletons`\
Strukturierte Daten, die erkannte Personen beschreiben: Bounding-Boxen, Keypoints (mit Namen und Konfidenzwerten) und optionale Gruppierungen von Körperteilen.

`Model Info`\
Metadaten zur aktuellen Modellauswahl und Laufzeiteinstellungen (Modelltyp, Modus, Gerät, Schwellenwerte).

`Person Count`\
Anzahl erkannter Personen, enthalten in den strukturierten Ausgaben.

## 🕹️ Steuerungen

`Model Type`\
Wählen Sie das Detaillierungsniveau: `Body` (17 Keypoints), `Body with Feet` (26 Keypoints) oder `Wholebody` (Körper + Gesicht + Hände).

`Mode`\
Wählen Sie ein Verarbeitungsprofil für Geschwindigkeit vs. Genauigkeit, z. B. `lightweight`, `balanced`, `performance`.

`Skeleton Style`\
Wählen Sie das Keypoint-Ausgabeformat, z. B. `MMPose` oder `OpenPose`.

`Detection Threshold`\
Minimum-Konfidenz, damit eine erkannte Person als gültig gilt.

`Keypoint Threshold`\
Minimum-Konfidenz, damit einzelne Keypoints als sichtbar markiert werden.

`Max Persons`\
Begrenzt die Anzahl der verarbeiteten und zurückgegebenen Personen, um die Leistung stabil zu halten.

## 🎯 Hauptfunktionen

* Mehrere Modellformate für verschiedene Anwendungsfälle: schnelle Körper-Erkennung oder detaillierte Ganzkörper-Analyse (Gesicht + Hände).
* Performance-Tuning über `Mode`, `Detection Threshold` und `Max Persons`, um sich an die Geräteleistung anzupassen.
* Keypoint-Filterung basierend auf Konfidenz, sodass nur zuverlässige Keypoints als sichtbar gemeldet werden.
* Visuelles Feedback durch Skelett-Overlays und Bounding-Boxen zur einfachen Überprüfung.
* Strukturierte Ausgaben, geeignet für Automatisierung, Analysen oder Protokollierung.

## ⚙️ Funktionsweise (für Anwender)

* Sobald ein Bild bereitgestellt wird, führt der Block das gewählte Schätzmodell aus und liefert sowohl ein annotiertes Bild als auch strukturierte Posedaten.
* `Detection Threshold` steuert, ob eine erkannte Person als gültig gilt. Niedrigere Werte liefern mehr Treffer, jedoch mehr False-Positives; höhere Werte sind strenger.
* `Keypoint Threshold` bestimmt, welche Keypoints als sichtbar markiert werden; damit ignorieren Sie Gelenke mit niedriger Konfidenz.
* `Max Persons` kürzt Ergebnisse auf die stärksten Erkennungen, um die Performance in überfüllten Szenen zu erhalten.
* Der Block passt sich an den gewählten `Mode` an, um einen Kompromiss zwischen Geschwindigkeit und Genauigkeit zu ermöglichen: leichtere Modi für Echtzeit, schwerere Modi für höhere Genauigkeit.

## 📝 Nutzungshinweise

1. Geben Sie eine Bildquelle an `Image`. Typische Quellen sind Kameraframes (`Camera USB`, `Camera IP (ONVIF)`) oder ein geladenes Bild (`Load Image`).
2. Wählen Sie `Model Type` je nach benötigter Detailtiefe.
3. Setzen Sie `Mode`, um Ihre Performance-Erwartungen zu erfüllen (schneller oder genauer).
4. Passen Sie `Detection Threshold` und `Keypoint Threshold` an, um unzuverlässige Erkennungen zu filtern.
5. Reduzieren Sie optional `Max Persons` für schnellere Verarbeitung auf ressourcenbegrenzten Systemen.
6. Verwenden Sie die Ausgaben: `Visualization` für Vorschauen, `Skeletons` für Analysen/Logging und `Person Count` zur Überwachung.

## 💡 Tipps und Tricks

* Für Live-Setups nutzen Sie `Camera USB`, `Camera IP (ONVIF)` oder `Stream Reader` als Bildquellen. Für Tests verwenden Sie `Load Image`.
* Wenn die Verarbeitung langsam ist, versuchen Sie:
  * Einen schnelleren `Mode` zu wählen.
  * `Max Persons` zu reduzieren.
  * Bilder vorab mit `Image Resize` zu verkleinern.
* Zur Robustheit bei verrauschten Bildern Vorverarbeitung wie `Blur` oder `Denoising` vor dem Skelett-Block einsetzen.
* Um auf einen Bereich zu fokussieren (z. B. Türbereich oder Förderband), mit `Image ROI` oder `Image ROI Select` zuschneiden und nur diesen Bereich schätzen lassen.
* Kombinieren Sie Ausgaben mit Visualisierung und Logging:
  * Senden Sie `Visualization` an `Show Image` für eine Vorschau.
  * Overlayen Sie Bounding-Boxen oder Labels mit `Draw Detections` oder `Write Text On Image` für Bedieneranzeigen.
  * Speichern Sie Verifikationsframes mit `Image Logger` oder zeichnen Sie Sessions mit `Record Video` für Audits auf.
  * Konvertieren Sie strukturierte `Skeletons`-Daten mit `Data to JSON` oder exportieren Sie Zählwerte via `CSV Export`.
* Für höhere Sicherheit oder Analytik:
  * Nutzen Sie `Skeletons` (Personenpositionen) zusammen mit `Social Distance Detector` zur Abstandskontrolle (ggf. mit `Perspective Transform` kalibrieren).
  * Geben Sie Personen-Bounding-Boxen oder Zentren an Logik-Blöcke weiter, um Alarme oder externe Aktionen auszulösen (z. B. `Send Mail` oder `MQTT Publish`).

## 🛠️ Fehlersuche

* Wenige oder keine Erkennungen:
  * Erhöhen Sie `Detection Threshold` und/oder `Keypoint Threshold` schrittweise oder wählen Sie einen genaueren `Mode`.
  * Stellen Sie sicher, dass die Personen gut ausgeleuchtet und klar im `Image` sichtbar sind.
  * Probieren Sie `Image Resize` (hoch- oder runterskalieren), um die erwartete Subjektgröße anzupassen.
* Schlechte Performance oder Reaktionsfähigkeit:
  * Wählen Sie einen leichteren `Mode`, verringern Sie `Max Persons` oder skalieren Sie Bilder mit `Image Resize` kleiner.
* Rauschen oder Flackern über Frames hinweg:
  * Erwägen Sie zeitliche Glättung in nachgelagerter Logik oder protokollieren Sie nur konﬁdente Erkennungen (mittels Schwellenwerte).
* Modellinitialisierung oder Laufzeitfehler:
  * Prüfen Sie, ob notwendige Laufzeitkomponenten verfügbar sind (über die Modul-Tools der Anwendung installierbar) und starten Sie den Block anschließend neu.

## 🔗 Beispiel-Block-Flows

* Echtzeitüberwachung: `Camera USB` → `Image Resize` → `Skeleton Estimation` → `Draw Detections` → `Show Image`
* Protokollierte Prüfspur: `Camera IP (ONVIF)` → `Skeleton Estimation` → `Image Logger` + `Data to JSON`
* Sicherheitsüberwachung (Abstandsprüfung): `Camera USB` → `Skeleton Estimation` → (Personenzentren extrahieren) → `Social Distance Detector` → `Draw Result On Image`

Nutzen Sie diese Kombinationen, um zuverlässige und leistungsfähige Pose-Erkennungssysteme zu erstellen, ohne Implementierungsdetails bearbeiten zu müssen.
