Outils pour utilisateurs

Outils du site


diy:projets:motiondetection

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
diy:projets:motiondetection [2018/05/24 14:18] – [Motion Detection] ecaussediy:projets:motiondetection [2018/05/28 08:37] – [Seuillage] ecausse
Ligne 1: Ligne 1:
 ====== Motion Detection ====== ====== Motion Detection ======
 (En construction) (En construction)
-La détection de mouvement est utilisé en général dans la vidéo surveillance, elle sert à detecter les mouvement et capturer les évenements. La détection de mouvement est généralement un algorithme de surveillance qui, lorsqu'il détecte des mouvements, signale à la caméra de surveillance de commencer à capturer l'événement. Aussi appelé détection d'activité. Un système de surveillance avancé de détection de mouvement peut analyser le type de mouvement pour voir s'il justifie une alarme.+ 
 +La détection de mouvement est utilisé en général dans la vidéo surveillance, elle sert à détecter les mouvements et capturer les événements. La détection de mouvement est généralement un algorithme de surveillance qui, lorsqu'il détecte des mouvements, signale à la caméra de surveillance de commencer à capturer l'événement. Aussi appelé détection d'activité. Un système de surveillance avancé de détection de mouvement peut analyser le type de mouvement pour voir s'il justifie une alarme.
  
 Le programme présenté ici est bien plus basique. Ce dernier capture la vidéo et encadre les objets en mouvement. Le programme présenté ici est bien plus basique. Ce dernier capture la vidéo et encadre les objets en mouvement.
Ligne 17: Ligne 18:
 prevFrame = None prevFrame = None
 </code> </code>
-Dans un premier temps, on capture la vidéo du device. Puis on créé une variable //prevFrame// qu'on initialise à None, celle ci va nous servir plus tard a faire la différence entre l'image actuelle et l'image précédente, pour voir si il y a eu du mouvement.+Dans un premier temps, on capture la vidéo du device. Puis on crée une variable //prevFrame// qu'on initialise à None, celle ci va nous servir plus tard a faire la différence entre l'image actuelle et l'image précédente, pour voir si il y a eu du mouvement.
  
 Nous arrivons ensuite dans l'essentielle du code, la boucle While, ici nous lisons chaque image une par une, si l'image n'est pas lu correctement dans le buffer, alors on quitte la boucle. Cela nous donne : Nous arrivons ensuite dans l'essentielle du code, la boucle While, ici nous lisons chaque image une par une, si l'image n'est pas lu correctement dans le buffer, alors on quitte la boucle. Cela nous donne :
Ligne 29: Ligne 30:
  
 ==== Flou Gaussien ==== ==== Flou Gaussien ====
-On récupère l'image en cour qu'on transforme en niveau de gris puis on lui applique un flou gaussien pour atténuer le bruit, sans se flou on repérerez par la suite tout les bruits comme étant du mouvement. Appliquer un flou gaussien est donc indispensable pour la suite du programme.+On récupère l'image en cour qu'on transforme en niveau de gris puis on lui applique un flou gaussien pour atténuer le bruit, sans ce flou on repérerait par la suite tout les bruits comme étant du mouvement. Appliquer un flou gaussien est donc indispensable pour la suite du programme.
  
-Cela ce fait grace au code suivant et on obtient l'image ci dessous:+Cela ce fait grâce au code suivant et on obtient l'image ci dessous:
 <code python> <code python>
 gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY) gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
Ligne 43: Ligne 44:
 </code> </code>
 ==== Seuillage ==== ==== Seuillage ====
-Après avoir obtenu l'image avec le flou gaussien, on fait la différence absolue entre l'image en cours et l'image précédente, cela nous permet de voir les pixels uniquement en mouvement. Ensuite on fait un seuillage binaire sur cette nouvelle image et tout les pixels qui on un certain niveau de gris sont placé à 255. Ici on choisi 7 pour pouvoir repérer même les petit mouvement. Puis on dilate cette image pour avoir bien tout l'objet si possible en mouvement (des fois c'est un échec...); et à l'aide du code suivant on obtient l'image ci dessous:+Après avoir obtenu l'image avec le flou gaussien, on fait la différence absolue entre l'image en cours et l'image précédente, cela nous permets de voir les pixels uniquement en mouvement. Ensuite on fait un seuillage binaire sur cette nouvelle image et tout les pixels qui on un certain niveau de gris sont placés à 255. Ici on choisi 7 pour pouvoir repérer même les petits mouvements. Puis on dilate cette image pour avoir bien tout l'objet si possible en mouvement (des fois c'est un échec...); et à l'aide du code suivant on obtient l'image ci dessous:
 <code python> <code python>
 frameDelta = cv2.absdiff(prevFrame,gray) frameDelta = cv2.absdiff(prevFrame,gray)
diy/projets/motiondetection.txt · Dernière modification : 2018/05/28 08:44 de ecausse