Occupancy
YOLO11 + ByteTrack track people or vehicles inside multi-polygon tagged zones. Live sessions per zone, with occupancy-limit alerts after a configurable dwell.
Vision Edge is a distributed vision cluster on top of StreamHub. An edge node is just a box — GPU or CPU — that dials OUT to your master over a single WebSocket and gets handed camera streams to analyse. No public endpoint on the edge, no inbound ports, NAT-friendly by design. The master schedules the work; the edge pulls the video, runs the models and sends detections back as signed events.
The master holds one outbound WebSocket per edge node. That single connection carries everything both ways — so an edge node behind NAT, on a home LAN or in a cloud region needs no public address and no open inbound port.
Ingests your cameras to HLS, manages tags and polygon zones, schedules assignments across nodes and runs the watchdog + notifier fan-out.
Dials out over wss, receives its assignments, pulls each stream over HTTPS, runs the vision models and posts detections back.
On install the node opens one WebSocket to the master (cluster-token auth) and registers itself. No inbound port, no public endpoint — it works from behind any NAT.
The scheduler hands each (stream × model) to a node by round-robin or weighted policy, guarded by GPU memory capacity, with failover and failback.
The node pulls the stream over HTTPS and runs the assigned vision model against your polygon zones and per-stream settings.
Every detection returns to the master as a signed webhook, an MQTT message and a rotated per-app log line — with the stream tags attached.
No edge box yet? The exact same runtime runs co-located on the master, so a single-node install analyses its own streams with nothing else to deploy.
Realtime vision built on open models, each configured per stream over tagged polygon zones. Every detection carries its zone and tags and leaves as a signed event.
YOLO11 + ByteTrack track people or vehicles inside multi-polygon tagged zones. Live sessions per zone, with occupancy-limit alerts after a configurable dwell.
IN/OUT line-crossing at a fixed cadence — realtime, not a nightly batch. Multiple tagged lines per stream, with a running inside count against an optional capacity.
Sampled frames counted against a per-zone threshold over multiple cycles, so a busy moment raises an annotated alert only when the crowd actually persists.
InsightFace locally by default for age, gender and emotion. Optionally route snapshots to OpenAI or DeepSeek vision per config, with a monthly budget cap.
Declared event names on the vision app — every payload carries the app, room, node, model, tags and timestamp.
Add capacity by adding boxes. Each node is disposable, schedulable and watched — and it never needs to be reachable from the internet.
The edge holds one outbound WebSocket to the master. No inbound port, no public endpoint, no VPN — it runs from a home LAN, a store back office or a cloud region all the same.
Run a node on a GPU box for heavy multi-stream vision, or on plain CPU for lighter loads. The scheduler respects each node’s capabilities and VRAM capacity.
Balance assignments evenly, or give bigger nodes a larger share with a per-node weight. Rebalances on spread and reassigns on failure, with a graceful failback.
A cluster watchdog fires node.online / node.offline the moment a socket drops, fanned out to callback, MQTT, email, Discord and Telegram — with restart and reboot from the master.
Tag streams and rooms, then draw multi-polygon zones and counting lines over the live player. Settings resolve model defaults → tag config → per-stream overrides.
Every detection leaves as an HMAC-signed webhook, an MQTT message and a rotated per-app log line — plus its own vision.db history you can query per app.
Point a fresh box at your master with a cluster token. The installer joins the cluster, installs the edge runtime and starts dialing out — no ports to open on the node.
$ curl -fsSL https://www.streamhub.studio/install.sh | sudo bash -s -- \
--join --node-type edge --cluster-token <token> --origin-ip <ip>
Tell us what you need to see — occupancy, counting, crowds, demographics — and we will scope the nodes, wire the events into your systems and run it with you. The software is open source; the deployment and operation is what we do.