← All Case Studies

GuardianNet AI

Real-Time Urban Hazard & Safety Vector Tracking

1. Core Problem & Scope

Video-based danger tracking routinely trips on false positives and struggles with processing multiple multi-stream video setups concurrently. Built during the EWU Hackathon, the scope was a real-time hazard-detection dashboard capable of tracking objects across overlapping camera frames and triggering a tiered alert response, rather than a single-frame detector with no memory of what it saw a moment ago.

2. Comparative System Research

  • Frame-by-frame detection with no tracking — simplest to implement, but produces noisy, flickering alerts since it has no concept of object identity across frames, and false positives aren't distinguishable from persistent real hazards.
  • Simple centroid-distance tracking — cheap to compute, but breaks down under occlusion and with overlapping camera fields of view, both of which are common in multi-stream urban monitoring setups.
  • YOLOv8 + ByteTrack (chosen) — ByteTrack's association strategy specifically handles low-confidence detections (rather than discarding them), which improves trajectory persistence through partial occlusion — directly addressing the false-positive and multi-stream tracking problems in scope.

3. Architectural Pipeline Layouts

Multi-Stream Video Ingest → YOLOv8 Detection → ByteTrack Trajectory Persistence → Three-Tier Alert Framework → WebSocket Broadcast

Each camera stream is read on its own thread and passed through YOLOv8 for per-frame detection. ByteTrack associates detections across frames into persistent trajectories, including low-confidence detections that would otherwise be dropped, which is what keeps a track alive through brief occlusion instead of being registered as a new object. Trajectories exceeding hazard-relevant thresholds are escalated through a three-tier alert framework and broadcast to administrative command centers over low-latency WebSockets.

4. Trade-off Engineering Logs

Why ByteTrack over DeepSORT: DeepSORT's appearance-embedding re-identification step adds computational overhead that competes with running multiple concurrent camera streams in real time on hackathon-available hardware. ByteTrack's motion-based association achieves comparable persistence for this use case at meaningfully lower per-frame cost, which mattered directly for the multi-stream concurrency requirement in scope.

Three-tier alerting instead of binary alert/no-alert: A binary alert model either under-reacts to genuine emerging hazards or over-alerts on borderline detections. Tiering the response (log-only, dashboard flag, immediate dispatch) let the system surface uncertain detections without either suppressing them entirely or triggering a full dispatch response on unconfirmed signals.

5. Scaling & Production Failures

Running detection and tracking synchronously in a single thread per stream capped concurrent stream count well below the multi-stream target. Restructuring to a producer-consumer pattern — dedicated capture threads feeding a shared detection queue — let the GPU-bound detection step batch across streams instead of serializing per-stream, substantially raising the number of concurrent streams the system could sustain within the hackathon's demo constraints.