Watch Your Six detects people around an LED totem installation and turns what they do into events for the visuals.
Every camera feed (a USB camera or a video file) goes through a YOLO11 pose model. People are tracked across frames, and the program estimates how close each one is to the camera.
A per-person state machine with hysteresis turns noisy detections into stable events:
- enter and exit, when someone crosses a calibrated boundary line, with a separate “dead zone” line on the way out so people standing on the line don’t flicker in and out;
- proximity of the closest person;
- arms raised, from the pose keypoints, with a cooldown per camera;
- counts per camera and in total.
The events are sent as OSC messages to Resolume, which drives the LED visuals.
A FastAPI web interface shows the live camera streams and an event log. Cameras are added and calibrated there: you drag the boundary and dead-zone lines straight on the preview. It also has a phone layout and finds the server on the network with mDNS. The test suite (93 tests) runs on synthetic data, without cameras.
Tech: Python 3.12, Ultralytics YOLO11, OpenCV, supervision, FastAPI, WebSockets, OSC, zeroconf. Production runs on Windows with CUDA.