Vision Edge

Visión por computadora en tiempo real, en el borde

Vision Edge es un clúster de visión distribuido sobre StreamHub. Un nodo edge es simplemente un equipo — GPU o CPU — que se conecta HACIA tu master por un único WebSocket y recibe cámaras para analizar. Sin endpoint público en el edge, sin puertos entrantes, amigable con NAT por diseño. El master reparte el trabajo; el edge baja el video, corre los modelos y devuelve las detecciones como eventos firmados.

  • Se conecta hacia afuera — amigable con NAT
  • Nodos GPU o CPU
  • Round-robin / ponderado
  • Eventos firmados + MQTT
Cómo funciona

El edge se conecta hacia vos

El master mantiene un único WebSocket saliente por cada nodo edge. Esa sola conexión lleva todo en ambos sentidos — así un nodo edge detrás de NAT, en una LAN hogareña o en una región cloud no necesita ninguna dirección pública ni puerto entrante abierto.

Master

core de StreamHub

Ingesta tus cámaras a HLS, gestiona tags y zonas poligonales, reparte asignaciones entre nodos y corre el watchdog + el fan-out de notificaciones.

Asignaciones · comandos · config
Telemetría · detecciones · logs

Nodo edge

GPU o CPU

Se conecta por wss, recibe sus asignaciones, baja cada stream por HTTPS, corre los modelos de visión y devuelve las detecciones.

01

El edge se conecta hacia afuera

Al instalarse, el nodo abre un WebSocket hacia el master (auth por token de clúster) y se registra. Sin puerto entrante, sin endpoint público — funciona detrás de cualquier NAT.

02

El master asigna el trabajo

El scheduler reparte cada (stream × modelo) a un nodo por política round-robin o ponderada, con guarda por memoria de GPU, failover y failback.

03

El edge corre los modelos

El nodo baja el stream por HTTPS y corre el modelo asignado sobre tus zonas poligonales y la configuración por stream.

04

Las detecciones vuelven

Cada detección vuelve al master como webhook firmado, mensaje MQTT y línea de log rotado por app — con los tags del stream adjuntos.

¿Todavía sin equipo edge? El mismo runtime corre co-ubicado en el master, así una instalación de un solo nodo analiza sus propios streams sin nada más que desplegar.

Modelos de visión

Cuatro modelos, abiertos y en tiempo real

Visión en tiempo real sobre modelos abiertos, cada uno configurado por stream sobre zonas poligonales con tags. Cada detección lleva su zona y sus tags y sale como evento firmado.

Aforo

zonas · sesiones

YOLO11 + ByteTrack siguen personas o vehículos dentro de zonas poligonales con tags. Sesiones en vivo por zona, con alertas de límite de aforo tras una permanencia configurable.

occupancy.session_started occupancy.session_ended occupancy.alert

Conteo de personas

cruce de línea · tiempo real

Cruce de línea IN/OUT a cadencia fija — en tiempo real, no un batch nocturno. Varias líneas con tags por stream, con un conteo interno vivo contra una capacidad opcional.

count.in count.out count.occupancy

Multitud

densidad · umbral

Frames muestreados contados contra un umbral por zona durante varios ciclos, así un pico levanta una alerta anotada solo cuando la multitud realmente persiste.

crowd.count crowd.threshold

Demografía

edad · género · emoción

InsightFace local por defecto para edad, género y emoción. Opcionalmente enviás snapshots a la visión de OpenAI o DeepSeek por config, con un tope de presupuesto mensual.

demography.face

Detecciones emitidas

Nombres de eventos declarados en la app de visión — cada payload lleva la app, la sala, el nodo, el modelo, los tags y el timestamp.

Por qué nodos edge

Cómputo donde tiene sentido

Sumás capacidad sumando equipos. Cada nodo es descartable, asignable y vigilado — y nunca necesita ser accesible desde internet.

Amigable con NAT por diseño

El edge mantiene un único WebSocket saliente hacia el master. Sin puerto entrante, sin endpoint público, sin VPN — corre igual desde una LAN hogareña, la trastienda de un local o una región cloud.

Nodos GPU o CPU

Corré un nodo en un equipo con GPU para visión pesada multi-stream, o en CPU pura para cargas más livianas. El scheduler respeta las capacidades y la VRAM de cada nodo.

Round-robin o ponderado

Balanceá las asignaciones en partes iguales, o dale a los nodos más grandes una porción mayor con un peso por nodo. Rebalancea según la dispersión y reasigna ante una falla, con un failback gradual.

Watchdog + notificaciones

Un watchdog de clúster dispara node.online / node.offline apenas cae un socket, con fan-out a callback, MQTT, email, Discord y Telegram — con restart y reboot desde el master.

Tags + zonas poligonales

Etiquetás streams y salas, y después dibujás zonas poligonales y líneas de conteo sobre el player en vivo. La config resuelve defaults del modelo → config del tag → overrides por stream.

Detecciones a tu manera

Cada detección sale como webhook firmado con HMAC, mensaje MQTT y línea de log rotado por app — más su propio historial en vision.db que podés consultar por app.

Quickstart

Sumá un nodo edge en un comando

Apuntá un equipo nuevo a tu master con un token de clúster. El instalador se une al clúster, instala el runtime edge y empieza a conectarse hacia afuera — sin puertos que abrir en el nodo.

Unirse al clúster como nodo Vision Edge
$ curl -fsSL https://www.streamhub.studio/install.sh | sudo bash -s -- \ --join --node-type edge --cluster-token <token> --origin-ip <ip>
  • Solo saliente — nada que exponer en el edge
  • GPU autodetectada; cae a CPU
  • Idempotente: re-ejecutá para actualizar, los secretos se preservan
  • El mismo runtime co-ubicado en una instalación de un solo nodo

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

Contanos qué necesitás ver — aforo, conteo, multitudes, demografía — y dimensionamos los nodos, cableamos los eventos a tus sistemas y lo operamos con vos. El software es open source; el despliegue y la operación es lo que hacemos.