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

# Traffic Intersection Analysis

Esta función cuenta y registra los movimientos de vehículos a través de áreas definidas de una intersección. Convierte detecciones rastreadas y áreas poligonales en estadísticas de rutas (por ejemplo, "1-2" significa que un vehículo se movió del área 1 al área 2). Diseñada para integrarse fácilmente en un escenario de inspección, entrega datos de seguimiento resumidos listos para exportar o mostrar.

## 📥 Inputs (sockets)

* `Rectangle - ID List` — Proporciona detecciones rastreadas (rectángulos delimitadores con tracking IDs).
* `Polygon Areas` — Proporciona uno o más polígonos que definen las zonas de la intersección a monitorear.
* `Reset Tracking Log` — Entrada booleana para borrar todo el historial de seguimiento y los conteos almacenados.

## 📤 Outputs (sockets)

* `Tracking Data` — Conteos agregados por ruta (formato tipo JSON) que muestran cuántos vehículos de cada tipo pasaron entre pares de áreas (por ejemplo, `"1-2": {"car": 3, "bus": 1}`).

## 🕹️ Controls

* `Reset Tracking Log` — Activa esta entrada (por ejemplo con un interruptor manual) para reiniciar todos los contadores e historial interno.
* (Las áreas poligonales se proporcionan a través del socket `Polygon Areas`; usa un bloque de selección de polígonos para definirlas.)

## 🎯 Características clave

* Usa cajas delimitadoras rastreadas y tracking IDs para asociar detecciones entre fotogramas y detectar transiciones entre áreas.
* Mantiene un historial corto de posiciones recientes por cada objeto rastreado para estabilizar posiciones ruidosas antes de decidir en qué polígono se encuentra el objeto.
* Produce estadísticas basadas en rutas (transiciones área-a-área) agrupadas por tipo de vehículo.
* Soporta múltiples áreas poligonales (cada área puede tener muchos vértices).
* Opción de reset para borrar historial y contadores bajo demanda.

## ⚙️ Mecanismo de funcionamiento (alto nivel)

* El bloque acepta una lista de rectángulos rastreados con IDs y (opcionalmente) nombres/clases de vehículo.
* Para cada elemento rastreado calcula un punto representativo (centro inferior del rectángulo) y mantiene un historial corto de puntos recientes para ese ID.
* El punto representativo (promediado sobre posiciones recientes) se prueba contra cada área poligonal suministrada para determinar el área actual del vehículo.
* Cuando el área de un vehículo cambia (por ejemplo, de área 1 a área 2), la transición se registra y se incrementa el contador de ruta correspondiente para ese tipo de vehículo.
* Los conteos agregados por ruta se emiten como datos estructurados a través del socket `Tracking Data`.
* Activar la entrada `Reset Tracking Log` borra todos los historiales y contadores almacenados.

## 📝 Instrucciones de uso

1. Proporciona las detecciones rastreadas al input `Rectangle - ID List`. Usa un tracker que entregue rectángulos con IDs estables.
2. Define las regiones de la intersección con polígonos y conéctalas a `Polygon Areas`.
3. Para limpiar contadores e historial en cualquier momento, envía una señal TRUE al input `Reset Tracking Log`.
4. Lee las estadísticas de rutas en vivo desde la salida `Tracking Data` y úsalas para mostrar, registrar o exportar.

## 💡 Consejos y recomendaciones

* Usa `Object_Detection_Tracker` para generar la entrada `Rectangle - ID List`. Este bloque entrega rectángulos rastreados y IDs ideales para el análisis de rutas.
* Dibuja y guarda las áreas poligonales con `Image ROI Polygon Multi` y conecta su salida `Polygons` al input `Polygon Areas`. Ese bloque facilita definir zonas de intersección visualmente.
* Usa `Logic Input` para proporcionar un disparador manual a `Reset Tracking Log` si quieres reiniciar el conteo en intervalos conocidos (cambios de turno, pruebas, etc.).
* Para verificación visual, conecta las detecciones a `Draw Detections` para superponer rectángulos/IDs en el video, y luego envía la imagen resultante a `Show Image` para previsualizar en vivo.
* Exporta resultados resumidos para reportes con `Data to JSON` o `CSV Export` usando la salida `Tracking Data`.
* Si las detecciones son ruidosas, considera aplicar un preprocesado ligero antes del tracker (por ejemplo, filtros de reducción de ruido) para mantener la estabilidad de los IDs.

## 🛠️ Solución de problemas

* No se registran transiciones: verifica que `Rectangle - ID List` contenga IDs de tracking estables entre fotogramas (IDs inestables impiden detectar cambios de área).
* Asignación de área incorrecta: confirma que las coordenadas del polígono estén alineadas con la vista de la cámara; usa `Image ROI Polygon Multi` para redibujar polígonos sobre la imagen real.
* Los contadores no se borran: asegúrate de que la entrada `Reset Tracking Log` reciba una señal TRUE (por ejemplo desde `Logic Input` u otro bloque de control).
* Faltan etiquetas de tipo de vehículo: los conteos por ruta se agrupan por tipo de vehículo cuando esa metadata está disponible; verifica que tu tracker entregue la clase/tipo junto con los IDs.
