> 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/traffic-intersection-analysis.md).

# Traffic Intersection Analysis

Ce bloc de fonction vous aide à compter et enregistrer les déplacements de véhicules à travers des zones définies d’un carrefour. Il convertit les détections suivies et les zones polygonales en statistiques de trajectoire (par exemple, "1-2" signifie qu’un véhicule est passé de la zone 1 à la zone 2). Conçu pour une intégration facile dans un scénario d’inspection, il fournit en sortie des données de suivi résumées prêtes à être exportées ou affichées.

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

* `Rectangle - ID List` — Fournissez les détections suivies (rectangles englobants avec IDs de tracking).
* `Polygon Areas` — Fournissez une ou plusieurs zones polygonales qui définissent les secteurs du carrefour à surveiller.
* `Reset Tracking Log` — Entrée booléenne pour effacer tout l’historique de suivi et les compteurs stockés.

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

* `Tracking Data` — Comptages agrégés par itinéraire (format type JSON) montrant combien de véhicules de chaque type sont passés entre des paires de zones (par ex. `"1-2": {"car": 3, "bus": 1}`).

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

* `Reset Tracking Log` — Déclenchez cette entrée (par exemple avec un interrupteur manuel) pour réinitialiser tous les compteurs et l’historique interne.
* (Les zones polygonales sont fournies via la socket `Polygon Areas` ; utilisez un bloc de sélection polygonale pour les définir.)

## 🎯 Principales fonctionnalités <a href="#features" id="features"></a>

* Utilise les boîtes englobantes suivies et les IDs de tracking pour associer les détections à travers les images et détecter les transitions entre zones.
* Conserve un court historique de positions récentes pour chaque objet suivi afin de stabiliser les positions bruitées avant de décider quelle zone polygonale contient l’objet.
* Produit des statistiques basées sur les itinéraires (transitions zone-à-zone) groupées par type de véhicule.
* Supporte plusieurs zones polygonales (chaque zone peut avoir de nombreux points d’angle).
* Option de réinitialisation pour effacer l’historique et les compteurs à la demande.

## ⚙️ Mode de fonctionnement (vue d’ensemble) <a href="#how-it-works" id="how-it-works"></a>

* Le bloc accepte une liste de rectangles suivis avec IDs et, éventuellement, des noms de classes de véhicules.
* Pour chaque élément suivi, il calcule un point représentatif (généralement le bas-centre du rectangle englobant) et maintient un court historique des points récents pour cet ID.
* Le point représentatif (moyenné sur les positions récentes) est testé contre chaque zone polygonale fournie pour déterminer la zone courante du véhicule.
* Lorsqu’un véhicule change de zone (par ex. de la zone 1 à la zone 2), la transition est enregistrée et le compteur d’itinéraire correspondant pour ce type de véhicule est incrémenté.
* Les comptages d’itinéraires agrégés sont fournis en sortie sous forme de données structurées via la socket `Tracking Data`.
* L’activation de l’entrée `Reset Tracking Log` efface tous les historiques et compteurs stockés.

## 📝 Instructions d'utilisation <a href="#usage" id="usage"></a>

1. Fournissez les détections suivies à l’entrée `Rectangle - ID List`. Utilisez un tracker qui délivre des rectangles avec des IDs stables.
2. Définissez les régions du carrefour avec des polygones et connectez-les à l’entrée `Polygon Areas`.
3. Pour effacer les compteurs et l’historique à tout moment, envoyez un signal TRUE à l’entrée `Reset Tracking Log`.
4. Lisez les statistiques d’itinéraires en temps réel depuis la sortie `Tracking Data` et utilisez-les pour l’affichage, la journalisation ou l’export.

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

* Utilisez `Object_Detection_Tracker` pour produire l’entrée `Rectangle - ID List`. Ce bloc fournit des rectangles suivis et des IDs adaptés à l’analyse d’itinéraires.
* Tracez et sauvegardez les zones polygonales avec `Image ROI Polygon Multi` et connectez sa sortie `Polygons` à l’entrée `Polygon Areas` du bloc. Ce bloc facilite la définition visuelle de plusieurs zones de carrefour.
* Utilisez `Logic Input` pour fournir un déclencheur manuel à `Reset Tracking Log` lorsque vous voulez redémarrer le comptage à des intervalles connus (changements de poste, essais, etc.).
* Pour vérification visuelle, connectez les détections à `Draw Detections` pour superposer rectangles/IDs sur la vidéo, puis envoyez l’image résultante à `Show Image` pour un aperçu en direct.
* Exportez les résultats résumés pour les rapports avec `Data to JSON` ou `CSV Export` en utilisant la sortie `Tracking Data`.
* Si les détections sont bruyantes, envisagez d’ajouter une courte pipeline de lissage avant le tracking (par ex. prétraiter l’image d’entrée du tracker avec des filtres de débruitage légers) afin que les IDs suivis restent stables.

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

* Pas de transitions enregistrées : vérifiez que la `Rectangle - ID List` contient des IDs de tracking stables à travers les images (des IDs instables empêchent la détection des changements de zone).
* Attribution incorrecte de zone : confirmez que les coordonnées polygonales s’alignent avec la vue de la caméra ; utilisez `Image ROI Polygon Multi` pour redessiner les polygones sur l’image réelle.
* Compteurs qui ne se réinitialisent pas : assurez-vous que l’entrée `Reset Tracking Log` reçoit un signal TRUE (par ex. depuis un `Logic Input` ou un autre bloc de contrôle).
* Étiquettes de type de véhicule manquantes : les comptages d’itinéraires sont groupés par type de véhicule lorsque ces métadonnées sont fournies ; assurez-vous que votre tracker fournit la classe/type avec les IDs.
