Vision Intelligence
CitadelMesh Vision Intelligence fuses real‑time CCTV analytics with building context and safety guardrails. It turns camera streams into actionable CloudEvents (face recognition, license plate reads, tailgating, loitering, intrusion, crowd density) and stitches them to zones, assets, doors, and policy outcomes.
Why this matters: Many vision platforms stop at a dashboard. CitadelMesh feeds detections through the same knowledge graph, policy engine, and agent mesh used for physical security so the response is explainable and auditable end to end.
Why this matters:
- Real‑time awareness: Track persons/vehicles across cameras with privacy controls.
- Closed‑loop actions: Link detections to access control, intercoms, and operator playbooks.
- Safety‑first: All actions flow through OPA policies and approval workflows.
Core building blocks
- Edge adapters: Vendor adapters (e.g., Avigilon ACC/Unity 8) translate analytics and events into normalized CloudEvents.
- Vision services: Lightweight modules for FR, LPR, object/zone analytics and re‑identification; pluggable model backends (GPU/TPU/edge NPU).
- Event bus: NATS subjects
citadel.vision.*for low‑latency publish/subscribe and fan‑out to UI, agents, and storage. - Safety guardrails: OPA policies constrain what the system can do (e.g., “open door only if dual‑factor match within time and zone envelope”).
- Orchestration: Multi‑agent coordination to reconcile intent vs. policy and request approvals when needed.
- Twin context: Camera → zone/door mapping for spatial overlays, dwell time, path reconstruction.
Reference flow
- Camera emits analytics or adapter fetches via vendor APIs.
- Adapter normalizes to CloudEvents
citadel.vision.*with rich context (camera_id, zone, bbox, embeddings, confidence). - Safety agent evaluates policy; orchestrator coordinates actions; approvals requested as needed.
- UI renders overlays, timelines, and incident bundles; digital twin highlights zones and paths.
Privacy and governance
- Data minimization: Prefer on‑edge inference; store hashes/embeddings, not raw images, when possible.
- Purpose binding: FR/LPR events carry
purposeand retention metadata for auditability. - Transparent controls: UI visualizes which policies approved/blocked actions and why.
Event taxonomy (high‑level)
citadel.vision.face.match— subject/person match with confidence, factors, and policy purpose.citadel.vision.lpr.read— license plate read with camera, lane, plate text, region, confidence.citadel.vision.object.detected— generic object detection with type, bbox, track_id.citadel.vision.tailgating— suspect multi‑person single‑auth passage near doors/turnstiles.citadel.vision.loitering— dwell time beyond threshold in sensitive zones.citadel.vision.intrusion— perimeter or after‑hours entry.
Performance targets
- Sub‑200ms publish→render for overlays under moderate load.
- 1k+ events/sec sustained on NATS with backpressure and sampling.
- Graceful degradation: shed non‑critical analytics under load; always enforce policy.
Next steps
- Wire Avigilon Unity/ACC adapter (poll or webhook) to emit CloudEvents.
- Add FR/LPR modules with configurable model backends and privacy flags.
- Expand UI overlay tools with camera tiles, timeline scrubbing, and incident bundles.
- Vision Command Center hologram renders cameras and alerts in a rotating 3D scene for spatial awareness.
- Run the Avigilon Unity bridge (
src/adapters/avigilon-control-center/event_bridge.py) against production ACC endpoints to stream live analytics.