# Object\_Detection\_Tracker

Esta función realiza el seguimiento de objetos a través de fotogramas usando los resultados de detección que le proporciones. Asigna IDs consistentes a los objetos en movimiento, mantiene un historial corto por cada pista (incluyendo una etiqueta de clase más estable cuando esté disponible) y produce una imagen anotada además de listas que puedes usar para conteo, registro o análisis de nivel superior.

## 📥 Entradas

* `Input Image`\
  El fotograma de imagen actual usado para visualización y como contexto de seguimiento.
* `Detected Rectangles`\
  Lista de rectángulos detectados (bounding boxes). Proporciona aquí las detecciones generadas por un bloque de detección de objetos.
* `Detected Classes`\
  Lista de nombres de clase correspondientes a las detecciones. Se usa para construir una etiqueta de clase estable para cada pista.

Nota: Estos son conectores de entrada. Conecta aquí las salidas de un bloque de detección de objetos.

## 📤 Salidas

* `Result Image`\
  Imagen anotada con rectángulos, IDs y etiquetas de clase para cada pista activa.
* `Position - ID List`\
  Lista de posiciones (centros) de los objetos seguidos con sus IDs asignados y el nombre de clase estable.
* `Rectangle - ID List`\
  Lista de rectángulos emparejados con sus IDs asignados y nombres de clase estables.

Nota: Estos son conectores de salida. Úsalos para visualizar, contar o enviar los datos de seguimiento a otros bloques.

## 🕹️ Controles

Este bloque no tiene controles visibles para el usuario en el propio bloque. Su comportamiento depende de las detecciones que le suministres y de cómo los bloques aguas arriba configuren la sensibilidad y la frecuencia de detección.

## ⚙️ Mecanismo de funcionamiento

* El bloque recibe por fotograma las detecciones (rectángulos y clases) junto con la imagen del fotograma actual.
* Asocia nuevas detecciones con pistas existentes para mantener identidades consistentes entre fotogramas.
* Para cada pista, mantiene un historial corto de clases detectadas para estabilizar la etiqueta mostrada (evita cambios rápidos de etiqueta por fallos momentáneos).
* El bloque tolera fallos cortos (fotogramas temporales sin detección) para que las pistas no desaparezcan de inmediato, y elimina pistas que permanezcan inactivas demasiado tiempo.
* Las salidas incluyen una imagen anotada para visualización y listas estructuradas (posiciones y rectángulos emparejados con IDs y nombres de clase) para procesamiento posterior.

Este comportamiento es automático; la calidad del seguimiento la controlas principalmente mediante la calidad y la frecuencia de las detecciones entrantes.

## 🎯 Características clave

* Asignación de IDs estables entre fotogramas para cada objeto detectado.
* Estabilización de la clase por pista para que las etiquetas mostradas sean consistentes en el tiempo.
* Produce resultados visuales y listas estructuradas para análisis o registro.
* Robusto frente a breves caídas de detección (detecciones perdidas temporalmente).
* Crea nuevas pistas para detecciones no emparejadas y retira automáticamente pistas obsoletas.

## 📝 Instrucciones de uso

1. Conecta una fuente de imagen al conector `Input Image` (ej.: cámara USB, cámara IP, stream o fotogramas precargados).
2. Conecta un bloque de detección para proporcionar rectángulos y nombres de clase a `Detected Rectangles` y `Detected Classes`.
3. Usa `Result Image` para previsualizar el resultado del seguimiento.
4. Usa `Position - ID List` y `Rectangle - ID List` para alimentar bloques posteriores para conteo, registro o análisis.

## 💡 Consejos y trucos

* Para mejores resultados, alimenta este bloque con detecciones confiables desde un bloque de detección como `Object Detection`, `Object Detection - Custom` o `Object Detection (D-FINE)`.
* Para visualizar antes/después del seguimiento, conecta `Result Image` a un bloque `Show Image` o `Draw Detections`.
* Para grabar resultados visuales, envía `Result Image` a `Image Logger` o `Record Video`.
* Si quieres centrar el seguimiento en un área específica, recorta la entrada primero con `Image ROI`, `Image ROI Select` o `Image ROI Polygon` antes de enviar las detecciones.
* Para filtrar detecciones falsas o contar solo objetos dentro de una región, combina `Rectangle - ID List` con `Rectangles in Rectangle` o `Check Area (Polygon)`.
* Usa la salida `Rectangle - ID List` para alimentar aplicaciones de más alto nivel como `Traffic Intersection Analysis` (conteo de tráfico o eventos de cruce de área).
* Si las detecciones son ruidosas, prueba añadir preprocesamiento upstream como `Blur`, `Image Threshold` o `HSV Filter` para mejorar la calidad de las detecciones antes del seguimiento.

## 🛠️ Solución de problemas

* No aparecen pistas: Verifica que `Detected Rectangles` y `Detected Classes` reciban datos de detección válidos desde un bloque de detección de objetos.
* Los IDs cambian rápidamente o las etiquetas cambian con frecuencia: Mejora la estabilidad de las detecciones (mejor detector, preprocesamiento) o reduce el ruido en las detecciones para que el bloque pueda construir un historial de clase estable.
* Las pistas desaparecen muy rápido: Asegúrate de que se proporcionen detecciones en fotogramas consecutivos; si tienes detecciones intermitentes, considera suavizar o aumentar la frecuencia de detección en bloques anteriores.
* Muchas pistas de corta duración: Filtra detecciones pequeñas o de baja confianza antes de enviarlas, o usa recorte de región (por ejemplo, `Image ROI Select`) para reducir falsos positivos.

Ejemplo rápido de configuración: `Camera USB` -> un bloque de detección (por ejemplo `Object Detection (D-FINE)`) -> `Object_Detection_Tracker` -> `Show Image` / `Image Logger` / `Traffic Intersection Analysis`.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.augelab.com/spanish/bloques-de-funcion/ai-blocks/object-detection-tracker.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
