Salutation, voici la partie, elle va se baser sur la configuration de Double Take et l’ajout de CORAL en USB sur le Raspberry Pi 5
Apprentissage des visages
Lorsque tu arrives sur Double Take tu es directement sur l’onglet Matches, il y a une liste déroulante où tu peux ajouter une nouvelle personne
Ensuite il faut aller dans l’onglet Train, dans la liste déroulante tu sélectionnes la personne que tu viens de créer et tu clics sur Upload
Il ne te reste plus qu’à sélectionner des photos où cette personne apparait, seule et sous différents angles.
Recommence l’opération pour chaque personne que tu veux pouvoir identifier
L’icone Sync sert à relancer l’entrainement sur toutes les photos de la personne, je pense que ça peut être interessant à faire lorsqu’on a ajouter pas mal de photo.
Si tu es un petit fouineur tu as du remarquer que dans CompreFace tu retrouves les photos que tu as envoyé depuis Double Take
Double Take est donc bien là comme chef d’orchestre, c’est CompreFace qui se charge de la reconnaissance !
Sensor dans Home Assistant
Maintenant que tout est prêt on va voir comment récupérer tout ça dans Home Assistant, via MQTT
En allant dans Paramètres -> Appareils et services puis dans Entités, fais une recherche sur Double, tu vas voir que des sensors ont été créé.
Le nom des personnes apparaissent seulement si elles ont été détecté au moin une fois à plus de 80% par Double Take et seulement si la Box de détection est assez grande.
Grace à mon NAS qui récupère les enregistrements, snapshot et clip de Frigate (via un simple montage de lecteur dans Raspberry OS) je peux me créer une automatisation qui va m’envoyer une notification avec une image !
Je pense que le sensor le plus interessant est le double_take_unknown qui va me permettre d’envoyer une notification si personne n’est reconnu.
Voila il reste encore pas mal de chose à découvrir je pense, surtout avoir des idées d’automatisation comme par exemple désactiver l’alarme automatiquement si il reconnait un visage de la famille.
Booster la détection de personne avec un CORAL USB
Avec une caméra le raspberry pi 5 suffit par contre l’ajout d’une seconde caméra m’a fait passer le temps de détection à 5 minutes, je n’ai que 2 caméras pour le moment je n’ai donc pas testé plus.
J’ai voulu essayé le CORAL USB et effectivement ça fonctionne pas mal, je suis passé à 15secs pour la détection d’une personne.
Voici la marche à suivre pour ajouter le CORAL sur un raspberry pi 5, la doc officielle est là :
Dans un premier temps il faut installer un runtime, dans le terminal du Pi5 on ajoute le repositury :
echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" | sudo tee /etc/apt/sources.list.d/coral-edgetpu.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
sudo apt-get update
Ensuite on installe le runtime
sudo apt-get install libedgetpu1-std
Si le CORAL était déjà branché il faut le débrancher et le rebrancher.
Il reste à modifier notre Docker Frigate pour le laisser communiquer avec le port USB, pour ça il faut modifier le Docker-compose en ajoutant ces lignes :
devices:
- /dev/bus/usb:/dev/bus/usb # Passes the USB Coral, needs to be modified for other versions
Donc on ouvre Portainer et on va dans Stack, modifier le stack Frigate
Clic sur Frigate et ensuite Editor
C’est là qu’il faut ajouter les lignes, voici le code complet à mettre :
version: "3.9"
services:
frigate:
container_name: frigate
privileged: true # this may not be necessary for all setups
restart: unless-stopped
image: ghcr.io/blakeblackshear/frigate:stable
shm_size: "64mb" # update for your cameras based on calculation above
devices:
- /dev/bus/usb:/dev/bus/usb # Passes the USB Coral, needs to be modified for other versions
volumes:
- /etc/localtime:/etc/localtime:ro
- /opt/data/frigate/config.yaml:/config/config.yaml
- /mnt/nfs-backup:/media/frigate
- type: tmpfs # Optional: 1GB of memory, reduces SSD/SD Card wear
target: /tmp/cache
tmpfs:
size: 1000000000
ports:
- "5000:5000"
- "8554:8554" # RTSP feeds
- "8555:8555/tcp" # WebRTC over tcp
- "8555:8555/udp" # WebRTC over udp
environment:
FRIGATE_RTSP_PASSWORD: "P@ssw0rd"
Ensuite tu clics sur Update the stack
Dans la nouvelle fenêtre il faut activer Re-pull image and redeploy et clic sur Update
Il faut attendre un peu que tout se relance et normalement c’est bon, aucune perte de donnée.
Dernière étape, modifier la conf de Frigate :
Modifier le config.yaml en ajoutant les lignes
detectors:
coral:
type: edgetpu
device: usb
se qui donne pour le fichier total :
mqtt:
enabled: true
host: 192.168.1.zzz # adresse IP de HA avec Mosquitto
port: 1883
user: mqtt_user
password: P@ssW0rdMqtt
detectors:
coral:
type: edgetpu
device: usb
cameras:
garage: #ma caméra qui s'appelle garage
ffmpeg:
inputs:
- path: rtsp://login:P@ssW0rd@192.168.1.xxx:yy/videoSub # flux vidéo de la camera, avec l'IP et le port
roles:
- detect
onvif: # permet de diriger la camera si elle est compatible
host: 192.168.1.xxx
port: 888
user: login
password: P@ssW0rd
objects:
track: # se que l'on souhaite détecter
- person
- cat
snapshots:
enabled: True
record:
enabled: True
retain: # par défaut je n'enregistre pas
days: 0
mode: all
events: # si il y a un évènement je garde la vidéo 14 jours
retain:
default: 14
mode: motion
Une petite sauvegarde + reboot et on est bon !
Pour vérifier que Frigate utilise bien le CORAL tu peux aller voir dans les logs:
2024-05-16 20:49:21.227823141 [2024-05-16 20:49:21] detector.coral INFO : Starting detection process: 311
Ou aller sur une camera et cliquer sur Event, il est indiqué le temps qu’il a fallu pour faire la détection
Voila, l’installation est terminée, si jamais je trouve le moyen d’optimiser tout ça je ne manquerai pas de mettre à jour.
Si tu as une meilleur config, n’hésite pas à laisser un commentaire et je mettrai l’article à jour .
Laisser un commentaire