My current experiment: turning an Arduino UNO Q and a plain USB camera into a small face-recognition sensor that runs entirely on the board and reports to Home Assistant. No cloud service ever sees the video.
Why the UNO Q
The UNO Q is an unusual Arduino. Alongside the familiar microcontroller, the same board carries a small Linux computer with enough headroom to run compact AI models. Arduino ships ready-made building blocks for it, including face detection on a live camera feed.
Detection only answers one question, though: is there a face in view? I want the board to answer a more useful one: whose face is it?
How it works
- The camera feeds frames to a small detection model, which finds any faces in the picture.
- Each face goes through a second, recognition model that turns it into a compact numeric signature.
- That signature is compared against a handful of enrolled people. A close match gets a name; anything else is reported as unknown.
- Only the result leaves the board, over MQTT, and shows up in Home Assistant as ordinary sensors.
What Home Assistant does with it
Known people are logged quietly: who was seen, and when. An unknown face is different; it sends a push notification to my phone with a snapshot attached. Because the results are plain Home Assistant entities, they can drive any other automation later without touching the board.
Private by design
Everything happens locally. The video stream never leaves the board, and what it sends out is a name or the word unknown, plus a single snapshot when a stranger appears. The board stores no photos of the people it knows, only a numeric signature for each one, and nobody is enrolled without agreeing to it.
What’s next
It is early days. The open questions are the practical ones: how well recognition holds up in changing light, and how many frames per second the board can sustain. I will write a follow-up once it has been running for a while, and I may share the source code once it settles.