Cum funcționează VisionGuard
Două straturi: un agent Python care rulează local la tine (on-prem) și un panou de orchestrare în cloud. Frame-urile video nu părăsesc niciodată rețeaua locală.
┌────────────────────────────────────────────────────────────────┐
│ LOCAȚIA TA (rețea internă) │
│ │
│ ┌─────────────┐ RTSP ┌──────────────────────────┐ │
│ │ Camere IP │ ──────────▶ │ Agent on-prem (Python) │ │
│ │ ONVIF/RTSP │ sub-stream │ • Roboflow Inference │ │
│ │ x17 │ 640x360 │ • YOLO fall detection │ │
│ └─────────────┘ 20 fps │ • GPU local │ │
│ └────────────┬─────────────┘ │
│ │ HTTPS │
└─────────────────────────────────────────────┼─────────────────┘
│ POST /api/public/
│ ingest-fall-event
▼
┌────────────────────────────────────────────────────────────────┐
│ CLOUD (VisionGuard) │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌─────────────────┐ │
│ │ Server API │─▶│ Postgres │─▶│ Realtime push │ │
│ │ (TanStack) │ │ + RLS │ │ → Dashboard │ │
│ └──────┬───────┘ └──────────────┘ └─────────────────┘ │
│ │ async │
│ ▼ │
│ ┌──────────────┐ │
│ │ SMS Gateway │ ──▶ Asistente, medic-șef tură │
│ │ (Twilio) │ │
│ └──────────────┘ │
└────────────────────────────────────────────────────────────────┘
1. Camerele IP existente
Funcționează cu orice cameră IP compatibilă ONVIF/RTSP — indiferent de producător. Folosim sub-stream-ul (640x360 @ 20fps) pentru a reduce încărcarea agentului și a păstra main-stream-ul (1080p) nealterat pentru NVR-ul existent.
2. Agent on-prem (Python)
Container care rulează în rack-ul tău (spital, șantier, fabrică, depozit). Conectare directă la camere prin VLAN intern. Procesare frame-by-frame cu modele YOLO antrenate pentru detecția evenimentelor relevante. Confirmare 2 secunde consecutive anti-flicker. Trimite în cloud doar evenimentul cu snapshot static la momentul detectării — nu video.
3. Comunicare cu cloud-ul
Agentul autentifică fiecare request cu un API key unic (X-Agent-Api-Key), bcrypt-uit la stocare. Heartbeat la 30s pentru a actualiza statusul fiecărei camere (online/offline) în dashboard.
4. Cloud orchestration
Stocare doar metadata: timestamp, confidence, camera_id, snapshot path. Snapshot-urile stau în bucket privat — accesul se face doar prin signed URL temporar generat server-side, fiecare vizualizare scrisă în audit log.
5. Alertare SMS
Engine-ul de routing alege destinatarii pe baza secției camerei și a turei active (shift_start / shift_end pe fiecare destinatar). Mesajul include nume salon, oră, confidence și link direct în dashboard pentru confirmare cu un click.
6. Securitate & GDPR
RLS pe toate tabelele. Cheile RTSP nu sunt returnate către client după salvare (doar mascate). Audit log pentru: vizualizare snapshot, export CSV, ștergere eveniment, login, schimbare rol. Right-to-be-forgotten la cerere — purge events + snapshots dintr-un interval, by admin.