The problem
Security teams had hours of gate footage and no practical way to answer simple questions: who entered more than once, who left late, how many different people came in today.
What we did
- Footage is uploaded to storage and queued. A GPU worker finds and tracks faces in each clip.
- Faces are stored as numbers (embeddings) and matched against the enrolled directory.
- Reports show repeat entries, delayed exits and unique faces for the director.
- The GPU machine starts when there is work and stops when there is none, with a budget alert and an emergency stop.
Footage to report
- Gate footageUploaded clips
- QueueSQS
- GPU workerFinds and tracks faces
- Budget guardAuto stop when idle
- Face vectorspgvector search
- Enrolled directoryKnown persons
- ReportsRepeats, late exits
What changed
A working review system that runs the expensive GPU only when needed.
1Directory of enrolled persons
0GPU hours when idle
3Standard reports
111Commits to date
Built with
FastifyGraphQLLambda arm64VizhiThedalpgvectorSQSCloudFormation