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


---

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