Security Agent
Cameras that remember who they’ve seen.
A security camera system that spots people and vehicles on a tiny edge computer, recognizes them across cameras and across days, and answers questions about them in plain English.
What the demo shows Camera 1 left, camera 2 right, chat in the middle
- A man crosses camera 2, then camera 1. Each camera picks him up and tracks him.
- In chat: “have you seen anybody in the last couple of minutes?” The answer describes the two people seen, with what they wore, where and when.
- An alert is set for one of them: “tell me when the man with a black cap comes back.”
- He comes back on camera 1 and the alert fires. He then crosses camera 2, and it fires again from there.
Results
-
94%
Recall re-identifying people across cameras that don’t overlap, with no false matches.
-
95%
Recall re-identifying vehicles across days, with no false matches in 2,300 pairs.
-
< 10 s
From a person first appearing on camera to the alert arriving in chat.
-
2 fps
Detection and tracking on a Raspberry Pi Zero 2. 512 MB of memory, no GPU, no fan.
-
5%
of frames ever reach the cloud. Only genuine movement gets sent.
-
Capped
AI cost per event. A fixed frame budget, whether someone walks past or lingers.
Three parts, one system
-
On the camera
Finds people and vehicles, follows each one from frame to frame, and keeps only the moments where something really moves.
-
In the cloud
A vision-language model describes what happened. Appearance signatures link the same person or vehicle across cameras and days, into one searchable history.
-
In your chat
Ask questions and set alerts in plain English. Alerts arrive the moment they fire.
It only pays for AI when something happens.
Sending every frame from every camera to an AI model in the cloud would cost a fortune. So the camera decides first: only the moments when something is really moving go up, about 5% of all frames.
Changed pixels alone aren’t enough to go on. A parked car, a passing shadow or headlights sweeping across the yard all change the picture while nothing happens. The camera tracks each object and estimates how fast it actually moves through the scene, from a single uncalibrated lens.
It knows who it has seen before.
Every person and vehicle gets an appearance signature. When the same one walks into another camera’s view, or comes back next week, the system connects the sightings.
Recurring visitors surface on their own, without anyone labeling them.
It recognizes the same car at every gate.
A family house on a corner, with a camera on each way in: the driveway, the side gate, the back gate. Each one watches the house’s own ground, and none of their views overlap.
When the same car turns up at the back gate, then the side gate, then the driveway, its appearance signature ties the sightings together. You get one car and where it went, not three unrelated alerts.
Ask it what happened.
No more scrolling through hours of video. Ask in chat, in your own words, and get the answer in plain English. Behind it, the AI writes its own search of the event history, checks the results and fixes the search if needed. Searches are read-only, so a question can never change the data.
Alerts work the same way: describe what you want to know about, and every new event is checked against it.
You
/ask have you seen anybody in the last couple of minutes?
Security Agent
… a man wearing a black cap, a dark t-shirt and shorts. He was first seen at camera 2 at 12:51:23 and last seen passing camera 1 at 12:51:39.
You
/alert add tell me when the man with a black cap comes back
Security Agent
Alert #1 added.
A minute later
Security Agent
Alert #1, camera 1. The man wearing a black cap is walking along the street, coming back.
Built with
- Python
- OpenCV
- LiteRT
- Raspberry Pi
- Gemini
- FastAPI
- Google Cloud Run
- PostgreSQL + pgvector
- Discord