ATLAS

Explainable AI-assisted lifeguard surveillance

00:00min
Session
0
Tracked
0
Alerts
—
Confirm rate
OFFLINE
Research question Which combination of behavioral cues provides the earliest reliable indication of drowning risk while minimizing false alarms in AI-assisted pool surveillance?

Vision Agent

— fps
On-device processing Nothing leaves this browser tab. Pose data is computed locally — only alert snapshots are kept, in this session, until you close the tab.
Thresholds — GREEN <40 · YELLOW 40–69 · RED 70+
Max swimmers
Baseline calibration: waiting for swimmers · Longest stillness observed: 0.0s

Zone Map

1 camera · schematic

Risk + Explanation Agent

highest risk
No sustained signal yet.
Breakdown appears once someone is tracked for a few seconds.

Tracking Agent

0 in frame
No one in frame.

Alert Agent

0 entries
Alerts require a sustained pattern above threshold — not a single frame — before they're logged here. Tag each one to calibrate sensitivity for this deployment.

How the score is built: each tracked person gets a short personal baseline (their own normal movement, not a fixed global threshold). Risk is then scored against two distinct signatures, and the higher one wins: passive/instinctive — sustained stillness, in-place vertical bobbing, arms not breaking the surface — and active struggle — vigorous movement that isn't going anywhere (high motion, low net displacement), an upright rather than streamlined body position, and erratic arm agitation. An alert only fires after either pattern holds for ~1.5 seconds at high confidence, and every alert ships with the exact signal weights that triggered it.

A real limitation, stated plainly: the pose model (BlazePose/MediaPipe) was trained overwhelmingly on above-water, dry-land human imagery. Underwater footage — refraction at the surface, bubbles, partial submersion — is a genuine domain gap, and pose keypoints degrade on that kind of footage. Distinguishing genuine panic-driven struggle from vigorous but normal strokes (like butterfly) is also still an open problem here — the path-efficiency signal helps, but a production system would need a model fine-tuned on labeled real and simulated distress footage, which is exactly what the pilot-data feedback loop above (Confirm real / False positive) is for.