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

# Social Distance Detector

Ce bloc fonctionnel analyse un flux d'images pour détecter des personnes et vérifier le respect des distances physiques selon un seuil donné. Il visualise les personnes détectées et met en évidence les paires qui enfreignent la distance spécifiée.

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

`Image Any` Fournissez l'image ou la trame vidéo à analyser.

`Perspective Matrix` Matrice de transformation optionnelle pour convertir les coordonnées image vers un plan réel afin d'obtenir des mesures de distance plus précises.

`Distance Threshold` Distance minimale autorisée entre personnes (les unités dépendent de la calibration de la perspective).

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

`Image Any` Image annotée avec les personnes détectées, les lignes de connexion et les mises en évidence des infractions.

`Person Count` Nombre de personnes détectées dans la trame.

`Violation Count` Nombre de paires en infraction (paires plus proches que le seuil).

`Is Violated ?` Booléen indiquant s'il existe au moins une infraction.

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

`Confidence Ratio` Curseur qui ajuste la sensibilité de confiance de la détection. Des valeurs plus élevées nécessitent une confiance plus forte pour qu'un élément soit considéré comme personne.

## 🎨 Features <a href="#features" id="features"></a>

* Détection de personnes en temps réel et visualisation sur les images entrantes.
* Mesure des distances paire-à-paire entre personnes détectées.
* Correction de perspective optionnelle via la `Perspective Matrix` fournie pour des contrôles de distance en valeurs réelles plus précis.
* Sorties claires pour la surveillance et le traitement en aval : image, comptages et indicateur d'infraction.

## 📊 Mécanisme d'exécution <a href="#running-mechanism" id="running-mechanism"></a>

Lorsque le bloc est actif, il reçoit l'entrée `Image Any`, détecte les positions des personnes dans la trame, optionnellement mappe ces positions à l'aide de la `Perspective Matrix` fournie, calcule les distances paire-à-paire et les compare au `Distance Threshold`. Le bloc renvoie une image annotée ainsi que des sorties numériques/booléennes décrivant l'état des détections et des infractions.

## 📝 How to use <a href="#usage" id="usage"></a>

1. Fournissez une source d'image à `Image Any` (flux caméra ou image chargée).
2. Si vous avez besoin de distances réelles, fournissez une `Perspective Matrix` calibrée. Sans elle, les vérifications de distance utilisent des unités du plan image (pixels).
3. Définissez le `Distance Threshold` souhaité selon votre calibration ou une estimation en pixels.
4. Ajustez le `Confidence Ratio` pour équilibrer détections manquées et faux positifs.
5. Lisez les sorties pour déclencher alertes, journaux ou traitements supplémentaires lorsqu'une infraction est détectée.

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

* Pour une entrée caméra, combinez ce bloc avec une source d'image comme `Camera USB`, `Camera IP (ONVIF)`, `Stream Reader` ou `Load Image`.
* Pour prévisualiser les résultats en grand, ajoutez `Show Image` après ce bloc.
* Si la détection est bruyante, essayez de redimensionner ou de débruiter l'image en amont avec `Image Resizer` ou `Denoising` pour améliorer la stabilité.
* Pour une détection de personnes plus robuste ou des classes personnalisées, pensez à combiner en amont avec `Object Detection` ou `Object Detection - Custom` et à fournir les centres détectés à ce bloc pour le contrôle de distance.
* Utilisez `Perspective Transform` pour produire une `Perspective Matrix` fiable lorsque vous avez besoin de distances en unités réelles.
* Limitez la zone d'analyse avec `Image ROI` ou `Image ROI Select` pour réduire les fausses détections et accélérer le traitement.
* Pour un suivi entre trames, placez `Object_Detection_Tracker` en aval pour obtenir des IDs persistants et de meilleures analyses.

## 🛠️ Troubleshooting <a href="#troubleshooting" id="troubleshooting"></a>

* Aucune personne détectée : augmentez légèrement le `Confidence Ratio` ou fournissez une entrée en plus haute résolution. Vérifiez l'éclairage de la scène pour obtenir des contours de personnes nets.
* Trop de faux positifs : essayez d'augmenter le `Confidence Ratio`, appliquez un prétraitement (`Blur`, `Image Threshold`) ou restreignez la zone avec `Image ROI`.
* Mesures de distance incorrectes : vérifiez la calibration et fournissez une `Perspective Matrix` correcte via `Perspective Transform`. Sans correction de perspective, les distances sont en pixels et peuvent ne pas refléter les valeurs réelles.
* Charge CPU/GPU élevée : réduisez la résolution d'entrée avec `Image Resizer` ou exécutez la détection moins fréquemment.
