Facial recognition & room presence using Double Take & Frigate

I usually get this error after first starting up the double take docker container. After waiting for a couple of minutes you can try clearing your cache and reloading the page, it should load with a login screen.

I was able to login, and create service
But when I want to add pictures, that’s when I get the error message.

Ah ok that’s a different error from mine then. If you want to try using a version of CompreFace with significantly lower CPU/RAM requirements, you could try using this docker compose yaml to build their custom mobilenet build (it works well for me). It does require an x86 CPU that supports AVX2 instructions though.

For more info see here: https://github.com/exadel-inc/CompreFace/blob/d6d1b8117ac3e84e302d1b03f48a268c4355ebf5/docs/Custom-builds.md

Thanks, may I ask how to install the custom ones since it’s not simply using docker-compose up command line? I’m getting errors when I tried that

That’s strange. Are your errors related to duplicated container names? Maybe you can try deleting or renaming your existing docker containers for CompreFace. Or you could rename the containers in the mobilenet yml to something else (e.g. “compare-face-db-mobilenet”, “compreface-admin-mobilenet” etc.)

I created gist here with my portainer docker compose that has the latest postgres, CompreFace and Double Take.

1 Like

Hi all… I have a strange issue…
When editing a automation and pressing save causes automations for deepstack to run.
As i’ve set up 4 cams for deepstack to use i’ve get the latest 4 images processed by deepstack.

This is how my automation looks like… Am i’m missing something?

alias: Frigate Telegram FaceMatch (D-LINK)
description: ''
trigger:
  - platform: mqtt
    topic: double-take/cameras/frigate_dlink
condition: []
action:
  - service: telegram_bot.send_photo
    data:
      url: >-
        http://192.168.1.97:3333/api/storage/matches/{{trigger.payload_json["matches"][0]["filename"]}}
      caption: >-
        {{trigger.payload_json["matches"][0]["name"]}}
        ({{trigger.payload_json["matches"][0]["confidence"]}}%)
      target: 'xxx'
      timeout: 1000
  - delay:
      hours: 0
      minutes: 0
      seconds: 5
      milliseconds: 0
mode: single
max: 2

I’m keen to jump into this but have a couple of questions which I’m hoping the community can answer first?

  1. Can this integrate directly with Frigate without any other add-ons or do I also need one of the face detection service too?

  2. Is there an add-on for HACS?

  3. If I use docker on my Synology NAS instead, can someone help me with the path for storage? All of my other containers use volume1/docker/<containername> but not sure how to translate that in the current compose file.

No addon yet…unless I missed it. The request for one was made a while back and the author was going to look into it.
From what I understand you need docker running somewhere on you network to get this going.

Hey @xbmcnut,

Thanks for checking this project out…

  1. Currently you need to use one of the three open source detectors to perform the facial recognition. Frigate isn’t a requirement, but it’s a nice easy integration.

I’ve considered pulling in other Frigate objects, but beyond just displaying them on the Double Take UI, there wouldn’t be much right now I could do with them, and they are already displayed on Frigate at that point too, though I do like my UI a bit more, so maybe I’ll add that in in a future release.

  1. There isn’t an official addon at the moment, but I would like to create one at some point if it’s simple. Someone did create a third party one, I haven’t tested it myself though.

  2. I haven’t used Synology, but are you able to use a docker-compose file with a named volume? Something like this?

version: '3.7'

volumes:
  double-take:

services:
  double-take:
    container_name: double-take
    image: jakowenko/double-take
    restart: unless-stopped
    volumes:
      - double-take:/.storage
    ports:
      - 3000:3000

Thanks for the prompt reply! Much appreciated. So on 1, I would need an additional face detection system running in docker for this to work? I can’t just use the snapshots from Frigate?

Thanks for the tip on 2. I might look at testing that.

In regards 3, I already using docker-compose on my Synology but was unsure about the mapping for the persistent storage. Here are my other examples if that will help with the correct syntax for DT on Synology.

- /volume1/docker/mosquitto/data:/mosquitto/data/
- /volume1/docker/homepanel:/data
- /volume1/docker/tasmoadmin:/data
- /volume1/docker/unifi6/:/unifi

Correct, for #1 you need to use CompreFace, DeepStack, or Facebox. Is there a use case you have where you’d like to run it without face detection? I’d be happy to build it in if it makes sense.

For #3, I’m guessing this is what you’d need based on your examples.

- /volume1/docker/double-take:/.storage

and if that doesn’t work, maybe this?

- /volume1/docker/double-take:/double-take/.storage

Thanks so much. I’ll give that a try now.

Hi! Im struggling to setup notifications on match, ia have put together home assistant with frigate + double take, compreface to work, but im not understanding how to make a automation that notify the match event with the photo.
Plz help!

Hi @zil0g

What doorbell have you got and does it work with HA?

Strange problem that I haven’t been able to work out.

I’ve noticed sometimes not all people detection in Frigate is being picked up in Double Take. This has been happening for months so across multiple versions of both Frigate and Double Take. It happens often enough that I’ve needed to change my automation to be triggered by Frigate instead of Double Take as it’s missing events. It’s much more frequent during night-time (when it’s dark outside).

As an example, I had a delivery late last night, Frigate had captured 2 clips (two camera’s picking up 1 clip each), yet Double Take didn’t have any record of it. On testing this morning when walking past both camera’s Frigate first detected me, Double Take was then triggered, passed the events to both Compare Face and Deepstack without issue.

Anyone else noticed this and any idea what could be causing it? There isn’t a disable during night-time switch I’m not aware of? :slight_smile:

Trying to determine what kind of hardware something like this would need. I read where you mentioned adding a coral USB to a PI running HAS, but what do you use to offload deep stack? Is the PI with 4GB of ram and a coral usb enough to run HAS, Frigate, and double take using deep stack. Trying to find hardware suggestions for all 3 on one device as this is going to be the most exciting thing I could do with home automation.

1 Like

How does the resolution requirement work when Frigate is best with lower resolution to keep the resource usage low but you’re trying to recognize faces? It seems like high resolution would be needed or that at least the lower resolution would comparatively? Does face recognition require higher resolution or is there a high resolution image grabbed separately and sent off?

I’ve got the Dahua one mentioned here The video doorbell that does Home Assistant + NVR - Intermittent Technology

I’ve not actually bothered integrating the actual doorbell into HA yet, although it is possible!
The video stream works perfectly with Frigate though (and by extension, Double Take)

1 Like

@BrunoBarroso, have you tried the automation I have on the readme? This automation only fires when a different camera picks up the person. So if you want a notification every time, try removing the condition block.

@Eoin, that is strange. Have you tried passing some of these night images from Friagte to the Double Take API directly to see what comes back or directly to CompreFace? It’s proably due to the detectors not finding any faces in the images if I had to guess. If you want to jump over to Discord I’d be happy to help you debug it more.

I run Frigate on an Intel NUC with 16GB of RAM and two USB coral’s. I haven’t tried running it on a Pi yet though. Double Take itself is pretty light weight though and isn’t resource intensive, so that should run fine anywhere. CompreFace/DeepStack I run on a 2013 Macbook Pro with mediocre specs. Not sure what the ideal hardware is for those projects though and I guess it all depends on your price range.

Having a higher resolution will definitely help. If your cameras supports some sort of JPG URL of a higher stream, you could continue to use a lower stream within Frigate then have Double Take process a URL for the better resolution image.