> 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/object-detection-tracker.md).

# Object\_Detection\_Tracker

Ce bloc fonctionnel suit des objets à travers les images (frames) en utilisant les résultats de détection que vous lui fournissez. Il attribue des IDs cohérents aux objets en mouvement, conserve un historique court pour chaque piste (incluant un label de classe stable si disponible) et fournit une image annotée ainsi que des listes utilisables pour le comptage, la journalisation ou des analyses de niveau supérieur.

## 📥 Entrées

* `Input Image`\
  L'image actuelle (frame) utilisée pour la visualisation et comme contexte de suivi.
* `Detected Rectangles`\
  Une liste des boîtes englobantes détectées. Fournissez ici les rectangles générés par un bloc de détection d'objets.
* `Detected Classes`\
  Une liste de noms de classes correspondant aux détections fournies. Utilisée pour construire un label de classe stable par piste suivie.

Remarque : ce sont des sockets d'entrée. Alimentez-les avec les sorties d'un bloc de détection d'objets.

## 📤 Sorties

* `Result Image`\
  Une image annotée avec les boîtes englobantes, les IDs et les labels de classe pour chaque piste active.
* `Position - ID List`\
  Une liste des positions centrales des objets suivis, avec leur ID assigné et le nom de classe stable.
* `Rectangle - ID List`\
  Une liste des rectangles englobants associée aux IDs et aux noms de classe stables.

Remarque : ce sont des sockets de sortie. Utilisez-les pour visualiser, compter ou transmettre les données de suivi à d'autres blocs.

## 🕹️ Contrôles

Ce bloc ne dispose pas de contrôles visibles directement sur le bloc. Son comportement dépend des détections que vous lui fournissez et de la configuration (sensibilité / fréquence) des blocs en amont.

## ⚙️ Mécanisme de fonctionnement

* Le bloc reçoit, pour chaque frame, les détections (rectangles et classes) ainsi que l'image courante.
* Il associe les nouvelles détections aux pistes existantes afin de conserver des identités cohérentes entre les frames.
* Pour chaque piste, le bloc conserve un court historique des classes détectées afin de stabiliser le label affiché (éviter les changements rapides dus à de courtes erreurs de classification).
* Le bloc tolère des manques temporaires (frames sans détection) pour éviter la disparition immédiate des pistes, et supprime les pistes restées inactives trop longtemps.
* Les sorties comprennent une image annotée pour la visualisation et des listes structurées (positions et rectangles couplés aux IDs et classes) pour un traitement en aval.

Ce comportement est automatique ; la qualité du suivi dépend principalement de la qualité et de la fréquence des détections entrantes.

## 🎯 Fonctionnalités clés

* Attribution d'IDs stables d'une frame à l'autre pour chaque objet détecté.
* Stabilisation du label de classe par piste pour garantir des étiquettes cohérentes au fil du temps.
* Sorties visuelles et listes structurées pour l'analyse ou la journalisation.
* Robuste face aux pertes de détection temporaires.
* Création automatique de nouvelles pistes pour les détections non appariées et suppression automatique des pistes obsolètes.

## 📝 Instructions d'utilisation

1. Connectez une source d'image au socket `Input Image` (ex. : Camera USB, IP camera, stream ou frames préchargées).
2. Connectez un bloc de détection pour fournir les rectangles et les noms de classes aux sockets `Detected Rectangles` et `Detected Classes`.
3. Utilisez `Result Image` pour prévisualiser le résultat du suivi.
4. Utilisez `Position - ID List` et `Rectangle - ID List` pour alimenter d'autres blocs destinés au comptage, à la journalisation ou à l'analyse.

## 💡 Conseils pratiques

* Pour de meilleurs résultats, alimentez ce bloc avec des détections fiables provenant d'un bloc comme `Object Detection`, `Object Detection - Custom` ou `Object Detection (D-FINE)`.
* Pour visualiser les détections avant ou après le suivi, connectez `Result Image` à `Show Image` ou `Draw Detections`.
* Pour enregistrer les résultats visuels, envoyez `Result Image` vers `Image Logger` ou `Record Video`.
* Pour concentrer le suivi sur une zone spécifique, recadrez l'entrée avec `Image ROI`, `Image ROI Select` ou `Image ROI Polygon` avant d'envoyer les détections.
* Pour filtrer les fausses détections ou ne compter que les objets dans une zone, combinez `Rectangle - ID List` avec `Rectangles in Rectangle` ou `Check Area (Polygon)`.
* Utilisez la sortie `Rectangle - ID List` pour des applications plus avancées (ex. : `Traffic Intersection Analysis` pour le comptage ou la détection de franchissement de zones).
* Si les détections sont bruitées, ajoutez un prétraitement en amont (par ex. `Blur`, `Image Threshold`, `HSV Filter`) pour améliorer la qualité des détections avant le suivi.

## 🛠️ Dépannage

* Pas de pistes visibles : Vérifiez que les sockets `Detected Rectangles` et `Detected Classes` reçoivent des données valides d'un bloc de détection d'objets.
* Les IDs changent trop vite ou les labels basculent souvent : Améliorez la stabilité des détections (meilleur détecteur, prétraitement) pour permettre au bloc de constituer un historique de classes fiable.
* Les pistes disparaissent trop rapidement : Assurez-vous que des détections sont fournies sur des frames consécutives ; en cas de détections intermittentes, augmentez la fréquence des détections en amont ou appliquez un lissage.
* Beaucoup de pistes de courte durée : Filtrez les petites détections ou celles à faible confiance avant de les envoyer, ou réduisez la zone d'intérêt pour limiter les faux positifs (par ex. `Image ROI Select`).

Exemple rapide d'une configuration : Camera USB (`Camera USB`) -> bloc de détection (par ex. `Object Detection (D-FINE)`) -> `Object_Detection_Tracker` -> `Show Image` / `Image Logger` / `Traffic Intersection Analysis`.
