
Frigate is the best open-source NVR because it is honest about what it does: object detection for people, cars, and packages, at high FPS on modest hardware. It deliberately does not do face recognition, because faces are a different model and a different privacy conversation. If you want your doorbell notification to say “Sarah is at the door” instead of “person detected,” you need to add a face recognition layer that plugs into Frigate.
The seven best apps for Frigate face recognition below run as extra Docker containers on the same NAS or homelab box, ingest Frigate’s snapshots via MQTT or a REST hook, and return a named identity that Home Assistant then routes to a notification, a lock unlock, or a light scene. Everything is self-hosted and runs on Linux. Nothing sends face data to a third party.
What to look for
- Local-only inference. No frames leave the box.
- A Frigate-friendly integration path, usually MQTT plus a snapshot REST call.
- Trainable identities with a handful of enrolment photos per person.
- A confidence score you can threshold in automations.
- CPU or optional GPU modes, because most home labs do not have a spare A100.
- A Home Assistant integration that surfaces the named person as an entity.
Quick comparison table
| App | Best for | Platforms | Free plan | Starting price/mo | Rating |
|---|---|---|---|---|---|
| Double Take | Orchestrator for Frigate + face providers | Docker | Fully free (OSS) | Free | The connecting glue |
| CompreFace | Highly accurate face recognition | Docker | Fully free (OSS) | Free | Best accuracy in tests |
| DeepStack | Long-running detection with face mode | Docker | Free | Paid model add-ons | Older but stable |
| Facebox | Machine-Box’s face API | Docker | Free (limited) | Paid support | Historical mainstay |
| Home Assistant | Automation front-end for the pipeline | Docker | Fully free (OSS) | Free | The hub |
| Frigate+ | Frigate’s own paid model service | Docker | Frigate is free | $50/year | Improves object detection |
| Immich Face Search | Face DB from your photo library | Docker | Fully free (OSS) | Free | Free training data source |
The apps
1. Double Take – best orchestrator
Double Take is the connector between Frigate and one or more face recognition backends. It subscribes to Frigate’s MQTT events, pulls the snapshot for each detected person, sends it to CompreFace or DeepStack for identification, and republishes an MQTT message with the person’s name and confidence. Home Assistant then does whatever you want with that.
Where it falls short: Single point of failure in the pipeline. If Double Take crashes, face recognition stops (Frigate keeps detecting people). Config is YAML and matters.
Pricing:
- Free (MIT).
Platforms: Docker.
Download: skrashevich Double Take
Bottom line: Every self-hosted Frigate face setup uses Double Take. Start here.
2. CompreFace – best accuracy
CompreFace from Exadel is the accuracy leader among free, self-hosted face recognition backends. Enrol 8-15 photos per person, verify recognition rates, and iterate. Ships REST and gRPC APIs; Double Take talks to it out of the box.
Where it falls short: Docker Compose stack has several services (API, database, workers). Runs comfortably on 8 GB RAM; smaller boxes struggle. GPU inference needs the CUDA-enabled image.
Pricing:
- Free (Apache 2.0).
Platforms: Docker.
Download: CompreFace GitHub
Bottom line: CompreFace is what to point Double Take at first.
3. DeepStack – best long-running detection engine
DeepStack predates most of this list and still runs well. Face mode enrols identities via API, returns confidence scores, and holds up under continuous polling. Docker image is small; runs on ARM64 too (older Synology, Raspberry Pi 5).
Where it falls short: Development slowed after the original team moved on. Newer alternatives (CompreFace, InsightFace) beat it on accuracy for lookalikes.
Pricing:
- Free tier.
- Paid: pretrained model licences and hosted API tiers.
Platforms: Docker (x86 and ARM).
Download: DeepStack docs
Bottom line: DeepStack is the pick if you need a light backend on ARM hardware.
4. Facebox – historical mainstay
Facebox from Machine-Box is a REST-based face recognition container that Double Take has supported since day one. Enrol identities via API, POST snapshots, get names back. Simple, stable, and still supported after Veritone’s acquisition.
Where it falls short: Newer projects have overtaken it on accuracy for edge cases (siblings, twins). Free tier limits identities.
Pricing:
- Free with limits.
- Paid: enterprise licensing.
Platforms: Docker.
Download: Machine-Box Facebox
Bottom line: Facebox is the “it just works” fallback if CompreFace fights your setup.
5. Home Assistant – best automation front-end
Home Assistant is where the named-person MQTT message from Double Take turns into “unlock the porch door for Sarah, dim the hallway lights, ping Slack with a snapshot.” Frigate integration installs from HACS. MQTT integration is built in.
Where it falls short: Setting up templates for the announcement takes a first evening. HA breaks less than it used to, but a major release occasionally shifts an automation syntax.
Pricing:
- Free (Apache 2.0). Optional cloud subscription for remote access.
Platforms: Docker, Home Assistant OS, bare metal.
Download: Home-Assistant.io
Bottom line: Home Assistant is the layer that makes face recognition useful instead of decorative.
6. Frigate+ – best for improving object detection first
Frigate+ is Blake Blackshear’s paid service that trains a custom model on your camera streams to reduce false positives before face recognition ever runs. It does not do face recognition itself, but a Frigate with fewer “person” false positives means Double Take asks CompreFace about real people, saving CPU.
Where it falls short: $50/year is not free (though it does support the project). Not a face solution on its own.
Pricing:
- Paid: $50/year.
Platforms: Docker.
Download: Frigate.video/plus
Bottom line: Frigate+ is the “reduce noise upstream” pick before you tune the face pipeline.
7. Immich Face Search – best free training data source
Immich (your self-hosted Google Photos replacement) already runs face clustering across your family photo library and groups faces by identity. Export a folder of high-quality reference images per person to seed CompreFace or DeepStack. Saves an hour of pointing your phone at family members.
Where it falls short: Immich’s face model differs from the recognition backends, so exported clusters need a manual cull. Not a real-time recognition engine.
Pricing:
- Free (AGPL).
Platforms: Docker.
Download: Immich.app
Bottom line: Immich cuts enrolment from an evening to a coffee break.
How to pick the right one
- Everyone needs Double Take as the glue.
- Pair it with CompreFace as the recognition backend on x86 hardware.
- On ARM boxes (Synology J-series, Raspberry Pi 5), DeepStack may run better than CompreFace.
- Home Assistant turns the recognition into automations.
- Optional: Frigate+ for cleaner Frigate input, Immich Face Search for faster enrolment.
Do not enable face recognition on a public-facing camera without thinking about who might walk past. In many jurisdictions that turns your Frigate box into a data controller under privacy law.
FAQ
Does Frigate have built-in face recognition?
Not natively. Frigate detects objects (person, car, dog, package). Face recognition is a separate pipeline via Double Take plus a backend such as CompreFace or DeepStack.
Can face recognition run on a Raspberry Pi?
DeepStack runs on a Raspberry Pi 5 with acceptable latency for a doorbell use case. CompreFace works too but is heavier; expect a few seconds per detection on Pi hardware. On an Intel N100 mini PC or a Synology Plus-series NAS, both run comfortably in real time.
How many enrolment photos does a face need?
CompreFace and DeepStack both improve up to about 15 photos per person, taken in different lighting and angles. Beyond that returns diminish. Fewer than 5 photos usually produces low-confidence matches.
Is a Coral TPU needed for face recognition with Frigate?
The Coral TPU accelerates Frigate’s object detection, not face recognition. Face recognition uses different models. A GPU (or a modest CPU) is enough for CompreFace and DeepStack.
Can I run Double Take and Frigate on the same Docker host?
Yes; that is the standard deployment. Give each its own MQTT topic prefix, mount the same clips folder to both if you want Double Take to read Frigate snapshots directly, and put both behind the same reverse proxy.