How it works: three YOLOv8 models (a COCO context model + an ensemble of two
guns/knife detectors) run entirely in your browser via ONNX Runtime Web — no video
ever leaves your device. Weapon detections are cross-checked between the ensemble
models and against the COCO model (size, person overlap, everyday-object veto) and
must persist across several frames before alerting. Motion analysis flags possible
altercations and suspicious carried objects.
Threat rules: loitering ≥ 15 s →
LOW · lingering near a vehicle ≥ 8 s,
restricted zone, or suspicious object →
MEDIUM · weapon or possible
altercation →
HIGH · weapon persisting ≥ 5 s →
CRITICAL. Alert history
is stored locally in your browser. Full edition (RTSP cameras, FastAPI backend,
SQLite event log) runs locally — see the
GitHub repo.