> 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/social-distance-detector.md).

# Social Distance Detector

Dieser Funktionsblock analysiert einen Bild-Stream, erkennt Personen und überprüft den körperlichen Abstand anhand eines eingestellten Schwellenwerts. Er visualisiert erkannte Personen und hebt Paare hervor, die den angegebenen Abstand verletzen.

## 📥 Eingänge

* `Image Any`\
  Bild- oder Videoframe, das/der analysiert werden soll.
* `Perspective Matrix`\
  Optionale Transformationsmatrix, um Bildkoordinaten in eine reale Ebene zu überführen und genauere Abstandsmessungen zu ermöglichen.
* `Distance Threshold`\
  Minimaler erlaubter Abstand zwischen Personen (Einheit hängt von der Kalibrierung/Perspektive ab).

## 📤 Ausgänge

* `Image Any`\
  Annotiertes Bild mit erkannten Personen, Verbindungs-Linien und Hervorhebungen bei Verstößen.
* `Person Count`\
  Anzahl der im Frame erkannten Personen.
* `Violation Count`\
  Anzahl der Paarverletzungen (Paare, die näher als der Schwellenwert sind).
* `Is Violated ?`\
  Boolean, der anzeigt, ob mindestens ein Verstoß vorliegt.

## 🕹️ Steuerungen

* `Confidence Ratio`\
  Schieberegler zur Anpassung der Empfindlichkeit der Erkennung. Höhere Werte erfordern stärkere Erkennungswahrscheinlichkeit, damit eine Person gezählt wird.

## 🎨 Funktionen

* Echtzeit-Erkennung und Visualisierung von Personen in eingehenden Bildern.
* Paarweise Abstandsmessung zwischen erkannten Personen.
* Optionale Perspektivkorrektur über `Perspective Matrix` für realitätsnahe Abstände.
* Klare Ausgänge zur Überwachung und Weiterverarbeitung: Bild, Zählwerte und Violation-Flag.

## 📊 Funktionsweise

Wenn der Block aktiv ist, nimmt er das Eingangssignal `Image Any`, erkennt Personenpositionen im Frame, kann diese optional mit der übergebenen `Perspective Matrix` in reale Koordinaten abbilden, berechnet paarweise Abstände und vergleicht diese mit dem `Distance Threshold`. Als Ergebnis liefert der Block ein annotiertes Bild sowie numerische und boolesche Ausgaben zur Erkennungs- und Verstoßlage.

## 📝 Verwendung / How to use

1. Verbinden Sie eine Bildquelle mit `Image Any` (Kamera-Stream oder geladenes Bild).
2. Falls reale Entfernungen benötigt werden, geben Sie eine kalibrierte `Perspective Matrix` an. Ohne diese erfolgt die Abstandskontrolle in Bildpixeln.
3. Stellen Sie den gewünschten `Distance Threshold` entsprechend der Kalibrierung oder als ungefähre Pixelangabe ein.
4. Justieren Sie `Confidence Ratio`, um das Verhältnis von verpassten Erkennungen zu Fehlalarmen auszugleichen.
5. Verwenden Sie die Ausgänge (`Person Count`, `Violation Count`, `Is Violated ?`, `Image Any`), um Alarme, Protokolle oder nachgelagerte Verarbeitung zu triggern.

## 💡 Tipps und Tricks

* Für Kamerainput kombinieren Sie diesen Block mit Bildquellen wie `Camera USB`, `Camera IP (ONVIF)`, `Stream Reader` oder `Load Image`.
* Zur größeren Vorschau Ergebnisse nach diesem Block mit `Show Image` anzeigen.
* Bei verrauschten Erkennungen vorverarbeiten (z. B. `Image Resizer` oder `Denoising`), um Stabilität zu verbessern.
* Für robustere Personenerkennung oder zusätzliche Klassen können Sie upstream `Object Detection` oder `Object Detection - Custom` nutzen und erkannte Zentren an diesen Block weitergeben.
* Verwenden Sie `Perspective Transform`, um eine verlässliche `Perspective Matrix` zu erzeugen, wenn Sie reale Distanzen brauchen.
* Begrenzen Sie den Analysebereich mit `Image ROI` oder `Image ROI Select`, um Fehlalarme zu reduzieren und die Verarbeitung zu beschleunigen.
* Bei Frame-übergreifender Verfolgung nutzen Sie `Object_Detection_Tracker` downstream für persistente IDs und bessere Analysen.

## 🛠️ Fehlersuche

* Keine Personen erkannt: Erhöhen Sie `Confidence Ratio` leicht oder verwenden Sie höher aufgelöstes Input. Achten Sie auf gute Beleuchtung und klare Personenumrisse.
* Viele Fehlalarme: Erhöhen Sie `Confidence Ratio`, wenden Sie Vorverarbeitung wie `Blur` oder `Image Threshold` an oder schränken Sie den Bereich mit `Image ROI` ein.
* Ungenaue Abstandsmessungen: Prüfen Sie die Kalibrierung und liefern Sie eine korrekte `Perspective Matrix` (z. B. erzeugt mit `Perspective Transform`). Ohne Perspektivkorrektur sind Abstände in Bildpixeln und entsprechen nicht zwangsläufig realen Distanzen.
* Hohe CPU/GPU-Auslastung: Reduzieren Sie die Eingangsauflösung mit `Image Resizer` oder führen Sie die Erkennung seltener durch.
