Todas las apps de Studio
Visión & CCTV Edge

Aforo

zonas · sesiones

Seguí cuántas personas o vehículos hay dentro de cada zona, cuánto permanecen, y alertá cuando una zona queda sobre su límite.

streamhub.studio/studio/occupancy

Vista previa de la interfaz próximamente

El problema

Contar un total sobre todo el cuadro esconde lo que en realidad importa: qué área está ocupada, por cuánto tiempo, y si está sobre su capacidad ahora. Aforo lo responde por zona — una sala de espera, una plaza de estacionamiento, una fila — con sesiones de permanencia en vivo y una alerta de límite, directo desde la cámara que ya tenés.

Casos de uso

Retail / Locales

Permanencia y capacidad por zona

Marcá una fila, un área de espera o una sección y mirá el aforo en vivo; una alerta se dispara cuando una zona queda sobre su límite más allá de una permanencia configurable, para que el personal abra otra caja o carril.

Parking / Logística

Ocupación de plazas

Cambiá una zona para detectar vehículos en vez de personas y ver qué plazas están ocupadas y cuánto dura cada estadía — sin sensores en el piso.

Oficina

Uso del espacio

El inicio/fin de sesión por zona arma una imagen honesta de cómo se usan realmente las salas de reunión, escritorios o áreas comunes a lo largo del día.

Cómo funciona

Entrada

HLS en vivo + zonas poligonales

Un worker muestrea el stream en vivo de la app por HLS con un sampler adaptativo. Dibujás zonas poligonales de varios puntos sobre un frame en vivo en el dashboard y etiquetás cada una; la geometría persiste por stream como puntos normalizados.

Detección

Sesiones YOLO11 + ByteTrack

La detección de personas o vehículos con tracking ByteTrack abre una sesión de permanencia cuando un track entra a una zona y la cierra cuando sale — con una alerta por conteo cuando una zona queda sobre su límite.

Callback firmado

session_started / ended / alert

occupancy.session_started, occupancy.session_ended y occupancy.alert fluyen por los callbacks firmados con HMAC de la app (webhook + MQTT), cada uno con la zona, su tag y el tipo contado.

Tu sistema

Resumen + tu flujo

Las sesiones en vivo y los eventos del día se ven en la pestaña de la app; cada sesión persiste en la base de datos propia de aforo de la app para tus reportes y escalados.

Eventos que emite

Declarados en el manifiesto del plugin y retransmitidos por los callbacks firmados con HMAC de la app (webhook + MQTT). Cualquier cosa que un worker intente emitir fuera de esta lista se rechaza — sin suplantar eventos del core.

occupancy.session_started occupancy.session_ended occupancy.alert

Alcance y límites

  • Cuenta presencia dentro de una zona — no identidad ni actividad. La geometría, los tags y los umbrales por stream resuelven como defaults del modelo → config del tag → override por stream.
  • La ubicación de la cámara define la precisión: una vista cenital o de ángulo alto de la zona cuenta con fiabilidad; vistas frontales, de ángulo bajo o muy ocluidas fallan.
  • Corre co-ubicada en el master o distribuida por stream en nodos edge — un worker por stream, agendado en el nodo que tenga capacidad.

Requisitos mínimos

  • Solo CPU alcanza para unos pocos streams: YOLO11 redimensiona a 640 px sin importar el origen, así que presupuestá ~0,5 núcleo por stream más margen para el decode HLS.
  • RAM: ~1,5 GB por worker (torch CPU + ultralytics + opencv). Los pesos yolo11n (~6 MB) se descargan solos en el primer arranque.
  • GPU opcional: cualquier GPU CUDA baja la inferencia a menos de 10 ms/frame — presupuestá ~200 MB de VRAM por stream cuando distribuís a un nodo edge con GPU.

Los números son mediciones honestas de los autores del plugin, no marketing. La GPU es opcional en cada plugin de visión salvo donde se indique.

Corre como una app completa

Cada app de Studio es una aplicación de primera clase, no un modal de configuración — y no tiene por qué vivir dentro de StreamHub.

Vista de página completa en el dashboard

Se abre como su propia página dentro de la app tenant — zonas, paneles en vivo, historial y ajustes en una sola superficie, no apretados en un diálogo.

Su propia base de datos

Guarda su estado en una base SQLite dedicada por app — lecturas, alertas, ocupación y filas de evidencia — que es tuya y podés consultar.

Bundle exportable

Descargá la app como un bundle autocontenido — worker, Dockerfile, compose y una plantilla de env — para hostearla en tu propia infra y extenderla, hablando de vuelta por la API REST y los webhooks firmados.

¿Tenés cámaras o streams para poner a trabajar?

Contanos qué estás monitoreando y definimos las apps correctas, las conectamos a tus sistemas y las operamos con vos. El software es open source — el despliegue y la operación es lo que hacemos.