I wanted to share a project I’ve been working on for a while that I’ve finally gotten to a place where I’m comfortable releasing into the wild.
It’s called Mnemos.
The Backstory
This all started when I realized Google knew who was at my front door better than I did. I wanted a self-hosted, local solution, but ran into a few roadblocks:
- Frigate is fantastic, but it requires continuous video streams. Running standard video streams on three battery-powered cameras drained them in under a week.
- Ollama image integrations is great for describing a photo but not who is in the photo.
- Double Take seemed like the ideal middle ground, but the project is abandoned.
So, I decided to build something specifically tailored for snapshot-based / low power setups.
What is Mnemos?
Mnemos is a lightweight, locally run application that operates via API endpoints. It is split into two main parts:
- Frontend: A clean interface where all user and person management takes place.
- Backend: Left free to handle all the heavy image processing and lifting.
Instead of requiring a 24/7 video stream, Home Assistant is in charge of sending snapshot images to its /identify endpoint. The endpoint will perform analysis and return a list of names & confidence. In the event the person is unknown. They are automatically added to the user interface for tagging later.
Inference & Hardware Acceleration
Mnemos relies on InsightFace’s Buffalo model suite across the board for consistent accuracy, but handles execution based on your available hardware:
Current
- CPU Inference: Uses standard
onnxruntimewith the Buffalo model pack out of the box.
Beta
- Rockchip NPU Support: Employs
librknnrtfrom rknn-toolkit2 alongside pre-converted RKNN Buffalo models to offload processing directly to Rockchip NPUs.
Planned
- GPU Support: Nvidia acceleration support will also use
onnxruntime-gputo support buffalo models.
Raspberry Pi Warning: Standard Raspberry Pis are likely too underpowered to handle this smoothly. You will want hardware with a dedicated NPU/GPU or a more capable CPU. Personally i use a rk3588
The entire stack is docker first to reduce end user headaches configuring the containers.
Home Assistant Integration
To make setting it up painless, I created a companion HACS integration: Mnemos-HA.
It includes state sensors and an action you can use directly in your Home Assistant automation’s to send snapshots from your cameras whenever motion is detected. The action will respond back with identites in standard JSON format allowing easy parsing within Home Assistant.
What’s Next
I am currently working towards V2 of Mnemos which will include both Rockchip NPU and Nvidea GPU support in stable.
I would love for the community to try it out, poke around, and share any feedback!
- Mnemos Repository: GitHub - vithurshanselvarajah/Mnemos: Decoupled, Python-native facial recognition system. Process snapshot images, identify known individuals, and manage unrecognized face crops using FastAPI, InsightFace, and pgvector. · GitHub
- Home Assistant Integration: GitHub - vithurshanselvarajah/Mnemos-HA: A HACS integration for connecting to Mnemos facial recognition service · GitHub
- Blog: Mnemos: Moving away from cloud dependence – Vit's Blog




