Dans l’article précédent de cette série Caméra de surveillance et Raspberry Pi, j’indiquais que motion crée beaucoup d’images et vidéos qui ne correspondent pas à de véritables mouvements devant la caméra.
motion permet de nombreux réglages. Je l’ai choisi pour ça. En particulier, il semble efficace pour éliminer les mouvements liés au vent.
Pour comprendre les différents réglages, il faut lire attentivement cette aide (en anglais) sur les réglages de la détection de mouvement avec motion.
La situation initiale
Dans /etc/motion/motion.conf , j’ai entre autres les réglages suivants :
# Je ne comprends pas comment ça fonctionne. Valeur par défaut = EedDl despeckle_filter EedDl # Ignore les changements soudains de lumière - de 0 (arrêt) à 100%. lightswitch 0 # Smartmask est un masque auto-apprenant qui va bloquer la détection dans les endroits de l'image où il y a des mouvements fréquents, comme des branches qui bougent à cause du vent. 0 (off) à 10 rapide. smart_mask_speed 0 # nombre minimum de photos avec du mouvement avant détection : defaut 1 : tous mouvements détectés. minimum_motion_frames 1 # base pour déclarer un mouvement. C'est le nombre de pixels changés après le filtrage du bruit, le masque et le "despeckle". threshold 1500 # réglage automatique du threshold - ne fonctionne pas threshold_tune off # niveau de "bruit" pour distinguer le bruit de la caméra d'un mouvement noise_level 32 # si on, ajustement automatique du bruit noise_tune off
Avec ce réglage, j’obtiens (sur une journée avec du vent) beaucoup trop de faux positifs.
Les faux positifs contiennent du « bruit » la nuit, l’éclairage de la lampe à côté de la caméra, et des mouvements liés au vent :
Réglages du 1er juillet – soir
J’ai modifié le niveau de lumière qui déclenche un mouvement, le nombre d’images modifiées avant la détection de mouvement, le ‘theshold’ et le niveau de bruit.
despeckle_filter EedDl lightswitch 25 smart_mask_speed 5 minimum_motion_frames 3 threshold 3000 noise_level 100 noise_tune off
Nota : après chaque réglage de motion.conf, il faut redémarrer le service motion avec :
service motion restart
Le 2 juillet, de 0h à 14h (heure du réglage suivant, il n’y a eu que 24 fichiers créés ( 1 Mo) et 24 fichiers correspondent à un mouvement effectif (ma voiture qui part puis qui revient).
Mais la caméra ne détecte pas une personne qui se déplace à pied.
Réglages du 2 juillet – 11h45
Je n’ai corrigé que le « threshold ».
despeckle_filter EedDl lightswitch 25 smart_mask_speed 5 minimum_motion_frames 3 threshold 1500 noise_level 100 noise_tune off
Pendant la journée tout va bien : pas de fausse détection (mais le système ne détecte toujours pas une personne à pied) mais la nuit, il y a eu plein de faux positifs. Dès que le jour s’est levé, il n’y a plus de souci.
Réglages du 3 juillet – détecter une personne à pied
Pour détecter une personne à pied, j’ai modifié les paramètres suivants successivement jusqu’à ce que je déclenche une détection de mouvement :
minimum_motion_frames 1 noise_level 32 smart_mask_speed 10
Ce n’est qu’au dernier changement que j’ai détecté le mouvement d’une personne.
Ces paramètres détectent aussi bien une voiture qu’une personne (12h20 = OK) :
despeckle_filter EedDl lightswitch 25 smart_mask_speed 10 minimum_motion_frames 3 threshold 1500 noise_level 32 noise_tune off
Je laisse les paramètres suivants en l’état :
despeckle_filter EedDl lightswitch 25 smart_mask_speed 10 minimum_motion_frames 3 noise_tune off
et j’étudie l’impact de changements sur threshold ou noise_level :
Threshold | Noise_level | Détecte ? |
1500 | 100 | 12h42 ne me détecte pas et fait un faux positif |
3000 | 32 | 12h26 ME détecte = OK |
3000 | 100 | 12h34 NON, ne me détecte pas |
Les réglages suivants sont donc satisfaisants :
despeckle_filter EedDl lightswitch 25 smart_mask_speed 10 minimum_motion_frames 3 threshold 3000 noise_level 32 noise_tune off
Maintenant reste à faire un bilan sur environ 24h (depuis 13h le 3 juillet) :
- détection d’une personne : Oui
- détection d’une voiture : oui
- faux positifs : 2 en une nuit.
Je considère donc que ces réglages sont corrects.
Autres notes :
On peut mettre motion en mode deboguage pour voir comment se passe la détection : voir cette page sur le wiki de motion.
Bonjour,
Je tenais à vous dire un grand merci 🙂
Grace à vos explications, j’ai pu paramétrer mes webcams afin de ne plus avoir de faux positifs (reflet de la télé dans l’aquarium, les chats qui sautent sur le canapé, ou les changements brusques de luminosité générés par le soleil), mais bien les déplacements de personnes.
Après plusieurs recherches, les exemples et explications que je trouvais n’étaient pas aussi bien expliqué, et surtout pas de manière aussi simples et claires.
Encore merci et bonne continuation.