ardue
Posts: 15
Joined: Fri Jan 17, 2020 3:20 pm

Opencv4 raspberry 4 reconnaissance facial

Fri Jan 17, 2020 3:28 pm

Bonjour
Je suis actuellement sur un projet que je vais vous expliquer, j'ai installer opencv4 sur un Raspberry pi 4, et je voulais faire une reconnaissance facial en python 3, le but de cette reconnaissance et pour un projet d'école et mon projet est de capté un visage de le reconnaitre et de le nommé, j'ai fait certaine recherche et j'ai trouvé quelque programme à modifier, comme je débute dans le python il y'a certaine erreurs que je ne comprend pas, et comme il me semble que le python 2 et arrêté je doit les modifier pour qu'il s'adapte en python 3, bof plein de problèmes ou j'ai besoin d'aide.
Je vous mes certain liens ou j'ai trouvé des programmes.
https://github.com/vishwajeetsinghrana8 ... ecognition
https://github.com/anisayari/easy_facial_recognition
Merci pour votre futur aide

totoharibo
Posts: 4530
Joined: Thu Jan 24, 2013 8:43 am

Re: Opencv4 raspberry 4 reconnaissance facial

Sat Jan 18, 2020 8:32 am

quelles erreurs ?
ça peut aider de savoir.

Attention : il y a des problèmes de compatibilité python2 et python3.
J'ai utilisé openCV (ya longtemps) pour des fonctions simples hors temps réel donc ça devrait coller.
Un petit udate/upgrade des fois ?

ardue
Posts: 15
Joined: Fri Jan 17, 2020 3:20 pm

Re: Opencv4 raspberry 4 reconnaissance facial

Sat Jan 18, 2020 3:24 pm

J'ai cette erreur là
usage: test3.py [-h] -d DETECTOR -m EMBEDDING_MODEL -r RECOGNIZER -l LE
[-c CONFIDENCE]
test3.py: error: argument -d/--detector is required
Oui je savais qu'il y'a des problème de compatibilité entre le python 2 et 3, mais je pense aussi que il y'a dans le programme que j'ai modifié, j'ai pris comme modèle celui là: https://github.com/vishwajeetsinghrana8 ... n_Part3.py

totoharibo
Posts: 4530
Joined: Thu Jan 24, 2013 8:43 am

Re: Opencv4 raspberry 4 reconnaissance facial

Sun Jan 19, 2020 9:57 am

et le modèle fonctionne ?
en un mot c'est d'origine l'erreur ?

ardue
Posts: 15
Joined: Fri Jan 17, 2020 3:20 pm

Re: Opencv4 raspberry 4 reconnaissance facial

Sun Jan 19, 2020 12:17 pm

Non le modèle ne fonctionne pas ou c'est moi qui à mal modifié les choses le modèle je les eu avec un tuto sur youtube et il montre comment le modifier.https://www.youtube.com/watch?v=O4kI6kO1pmE

totoharibo
Posts: 4530
Joined: Thu Jan 24, 2013 8:43 am

Re: Opencv4 raspberry 4 reconnaissance facial

Sun Jan 19, 2020 2:39 pm

si l'original ne marche pas : mal barré :lol:
Je chercherais ailleurs.

CV2 est bien connu, il doit y avoir d'autres sites avec des softs "corrects".

ardue
Posts: 15
Joined: Fri Jan 17, 2020 3:20 pm

Re: Opencv4 raspberry 4 reconnaissance facial

Sun Jan 19, 2020 5:12 pm

ok merci j'ai peut être trouvé un autre tuto mes je ne pourrais pas le tester maintenant https://www.youtube.com/watch?v=PmZ29Vta7Vc comme il me semble que c'est du python 3

tqhien
Posts: 79
Joined: Thu Feb 02, 2012 10:07 am

Re: Opencv4 raspberry 4 reconnaissance facial

Mon Jan 20, 2020 11:05 am

Bonjour,

Une bonne source sur OpenCV et de la reconnaissance que j'utilise, c'est ici : https://www.pyimagesearch.com/2018/09/2 ... cognition/

Le problème, souvent, c'est la détection en temps réel. Il y a un post plus récent, avec l'utilisation d'un stick USB Intel contenant un processeur spécialisé, pour accélérer le traitement. : https://www.pyimagesearch.com/2020/01/0 ... cognition/

Bon courage et bonnes expérimentations.

ardue
Posts: 15
Joined: Fri Jan 17, 2020 3:20 pm

Re: Opencv4 raspberry 4 reconnaissance facial

Mon Jan 20, 2020 4:56 pm

Merci pour ta réponse, je connaisse déjà le coprocesseur Intel Movidius Neural Compute Stick , le problème c'est que je ne peut pas mettre 100 euros en plus, après je vais voir pour le tuto sans.

ardue
Posts: 15
Joined: Fri Jan 17, 2020 3:20 pm

Re: Opencv4 raspberry 4 reconnaissance facial

Mon Jan 20, 2020 6:23 pm

J'ai un autre soucis sur le dernier commentaire je fait le tuto et j’obtiens cette erreur.
https://www.pyimagesearch.com/2018/09/2 ... cognition/
python recognize_video.py --detector face_detection_model --embedding-model openface_nn4.small2.v1.t7 --recognizer output/recognizer.pickle --le output/le.pickle
[INFO] loading face detector...
[INFO] loading face recognizer...
Traceback (most recent call last):
File "recognize_video.py", line 44, in <module>
recognizer = pickle.loads(open(args["recognizer"], "rb").read())
File "/usr/lib/python2.7/pickle.py", line 1388, in loads
return Unpickler(file).load()
File "/usr/lib/python2.7/pickle.py", line 864, in load
dispatch[key](self)
File "/usr/lib/python2.7/pickle.py", line 892, in load_proto
raise ValueError, "unsupported pickle protocol: %d" % proto
ValueError: unsupported pickle protocol: 3

tqhien
Posts: 79
Joined: Thu Feb 02, 2012 10:07 am

Re: Opencv4 raspberry 4 reconnaissance facial

Wed Jan 22, 2020 9:51 am

Je vois que tu essaies de faire une détection sur une vidéo, mais les étapes précédentes fonctionnent-elles ? En particulier la partie "entrainement du modèle" avec le script "train_model.py" qui génère le modèle SVM.

ardue
Posts: 15
Joined: Fri Jan 17, 2020 3:20 pm

Re: Opencv4 raspberry 4 reconnaissance facial

Wed Jan 22, 2020 5:49 pm

J'ai essayé de le lancer le programme "sudo python train_model.py", j'ai eu
Traceback (most recent call last):
File "train_model.py", line 6, in <module>
from sklearn.preprocessing import LabelEncoder
ImportError: No module named sklearn.preprocessing
Donc j'ai installé le paquet pip install scikit-learn, ce qui me donne une erreur
ERROR: Failed building wheel for scipy
Failed to build scipy
ERROR: Could not build wheels for scipy which use PEP 517 and cannot be installed directly
Avec plein de texte avant

ardue
Posts: 15
Joined: Fri Jan 17, 2020 3:20 pm

Re: Opencv4 raspberry 4 reconnaissance facial

Thu Jan 23, 2020 10:37 am

J'ai réussis à installer une version de Scikit Learn antérieur, car la dernière version ne s'installe pas (error pep 517) je me suis renseigner et pour l'instant on ne peut pas l'installer, le problème c'est que j'ai installé une autre version mais la version et en 3.4 de python et j'ai la version 3.7 ce qui me fait une erreur quand j’essaye de lancer le programme:
Traceback (most recent call last):
File "train_model.py", line 6, in <module>
from sklearn.preprocessing import LabelEncoder
File "/home/pi/miniconda/lib/python3.4/site-packages/sklearn/__init__.py", line 64, in <module>
from .base import clone
File "/home/pi/miniconda/lib/python3.4/site-packages/sklearn/base.py", line 11, in <module>
import numpy as np
File "/home/pi/miniconda/lib/python3.4/site-packages/numpy/__init__.py", line 150, in <module>
from . import random
File "/home/pi/miniconda/lib/python3.4/site-packages/numpy/random/__init__.py", line 143, in <module>
from .mtrand import *
ImportError: /home/pi/miniconda/lib/python3.4/site-packages/numpy/random/mtrand.cpython-34m.so: undefined symbol: PyFPE_jbuf


Et je demande si c'est a cause de python 3.7

Comment fait-on pour rétrogradé python 3.7 ?

tqhien
Posts: 79
Joined: Thu Feb 02, 2012 10:07 am

Re: Opencv4 raspberry 4 reconnaissance facial

Fri Jan 24, 2020 9:05 am

Pour installer une version spécifique de python (par exemple la 3.4) :

Code: Select all

sudo apt-get install python=3.4\*
Ensuite pour installer les modules pour cette version de python, il faut suffixer par la version :

Code: Select all

python3.4 -m pip install <nom du module>
Si tu veux installer une version particulière d'un module :

Code: Select all

python3.4 -m pip install -Iv <nom du module>==<version>

ardue
Posts: 15
Joined: Fri Jan 17, 2020 3:20 pm

Re: Opencv4 raspberry 4 reconnaissance facial

Mon Jan 27, 2020 5:55 pm

Bonsoir
J'ai un problème avec un code python (indentation-errors), j'ai mis la ligne ou il y'a une erreur avec ERROR je pense qu'il y'a d'autres erreur.

Code: Select all

import cv2
import numpy as np
import os 
from PIL import Image 

face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
recognizer = cv2.createLBPHFaceRecognizer()

Face_Images = os.path.join(os.getcwd(), "Face_Images")

for root, dirs, files in os.walk(Face_Images): 
    for file in files: #check every directory in it

if file.endswith("jpeg") or file.endswith("jpg") or file.endswith("png"): #for image files ending with jpeg,jpg or png      ERROR
path = os.path.join(root, file)
person_name = os.path.basename(root)

if pev_person_name!=person_name: #Check if the name of person has changed
Face_ID=Face_ID+1 #If yes increment the ID count
pev_person_name = person_name

Gery_Image = Image.open(path).convert("L") # convert the image to greysclae using Pillow
Crop_Image = Gery_Image.resize( (550,550) , Image.ANTIALIAS) #Crop the Grey Image to 550*550 (Make sure your face is in the center in all image)
Final_Image = np.array(Crop_Image, "uint8")
faces = face_cascade.detectMultiScale(Final_Image, scaleFactor=1.5, minNeighbors=5) #Detect The face in all sample image

for (x,y,w,h) in faces:
roi = Final_Image[y:y+h, x:x+w] 
x_train.append(roi)
y_ID.append(Face_ID)

recognizer.train(x_train, np.array(y_ID)) 
recognizer.save("face-trainner.yml")

tqhien
Posts: 79
Joined: Thu Feb 02, 2012 10:07 am

Re: Opencv4 raspberry 4 reconnaissance facial

Tue Jan 28, 2020 10:25 am

indentations-errors signifie que les instructions d'un même bloc ne sont pas alignés :
Tu devrais normalement avoir :

Code: Select all

for .... # Niveau 1
  for ... #niveau 2
    if ... #niveau 3
      instruction n4
      instructions n4
    instruction n3
  instruction n2
instruction n1

ardue
Posts: 15
Joined: Fri Jan 17, 2020 3:20 pm

Re: Opencv4 raspberry 4 reconnaissance facial

Tue Jan 28, 2020 1:12 pm

Merci pour ta réponse, mes j'ai encore une erreur que je ne comprend pas

Traceback (most recent call last):
File "/home/pi/project/Face_Trainer.py", line 7, in <module>
Recognizer = cv2.createLBPHFaceRecognizer('')
AttributeError: module 'cv2.cv2' has no attribute 'createLBPHFaceRecognizer'

Je vous mais le tuto que je suis:
https://circuitdigest.com/microcontroll ... ion-system

tqhien
Posts: 79
Joined: Thu Feb 02, 2012 10:07 am

Re: Opencv4 raspberry 4 reconnaissance facial

Wed Jan 29, 2020 10:17 am

As-tu bien suivi les tutos ? Car certains installent openCV3, d'autres la version 4. Il faut aussi s'assurer que les librairies complémentaires sont été installée (opencv-contrib).

ardue
Posts: 15
Joined: Fri Jan 17, 2020 3:20 pm

Re: Opencv4 raspberry 4 reconnaissance facial

Wed Jan 29, 2020 11:06 am

Je vais refaire l'installation est je vous dit

ardue
Posts: 15
Joined: Fri Jan 17, 2020 3:20 pm

Re: Opencv4 raspberry 4 reconnaissance facial

Wed Jan 29, 2020 3:59 pm

J'ai tous réinstallée est c'est pareille
File "Face_Recog.py", line 11, in <module>
recognizer = cv2.createLBPHFaceRecognizer()
AttributeError: 'module' object has no attribute 'createLBPHFaceRecognizer'

ardue
Posts: 15
Joined: Fri Jan 17, 2020 3:20 pm

Re: Opencv4 raspberry 4 reconnaissance facial

Wed Jan 29, 2020 5:10 pm

C'est bon sa fonctionne, j'ai remplacer la ligne de commande recognizer = cv2.createLBPHFaceRecognizer()
par recognizer = cv2.face.createLBPHFaceRecognizer()

Adriana1966
Posts: 5
Joined: Wed Jan 15, 2020 2:35 am

Re: Opencv4 raspberry 4 reconnaissance facial

Thu Jan 30, 2020 8:07 am

C'est vraiment intéressant comme projet, cela ne te dérange pas si je te pique un peu l'idée et que je l'améliore ?

ardue
Posts: 15
Joined: Fri Jan 17, 2020 3:20 pm

Re: Opencv4 raspberry 4 reconnaissance facial

Thu Jan 30, 2020 3:06 pm

Non après perso je vais encore l'amélioré pour que le système ouvre une porte

ardue
Posts: 15
Joined: Fri Jan 17, 2020 3:20 pm

Re: Opencv4 raspberry 4 reconnaissance facial

Sat Feb 01, 2020 7:39 pm

Si vous trouvée un meilleur code c'est mieux car le miens que j 'ai trouvé il fonctionne mais mal après j'ai pas fait tous les test mais il donne mon identité à une photo qui n'est pas moi et quand c'est moi il galère à savoir que c'est moi X(

Return to “Français”