> 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/spanish/function-blocks/blocks-reference/ai-blocks/object-detection-tracker.md).

# 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`.
