Table des matières:

Reconnaissance faciale Opencv : 4 étapes
Reconnaissance faciale Opencv : 4 étapes

Vidéo: Reconnaissance faciale Opencv : 4 étapes

Vidéo: Reconnaissance faciale Opencv : 4 étapes
Vidéo: Créer un système de RECONNAISSANCE FACIALE ? Opencv et Python 2024, Novembre
Anonim
Reconnaissance faciale Opencv
Reconnaissance faciale Opencv

La reconnaissance faciale est une chose assez courante de nos jours, dans de nombreuses applications comme les téléphones intelligents, de nombreux gadgets électroniques. Ce type de technologie implique de nombreux algorithmes et outils, etc. bibliothèques comme OpenCV, vous pouvez désormais ajouter la reconnaissance faciale à vos propres applications comme les systèmes de sécurité.

Dans ce projet, je vais vous expliquer comment créer une reconnaissance faciale en utilisant un Raspberry Pi et nous avons utilisé arduino+Lcd pour afficher le nom de la personne.

Étape 1: choses dont vous avez besoin

Choses dont tu as besoin
Choses dont tu as besoin

1. FRAMBOISE PI

2. ARDUINO UNO / NANO

AFFICHAGE LCD 3.16x2

4. RASPI-CAMERA / WEBcam (je préfère la webcam pour de meilleurs résultats)

Étape 2: Opencv-Intro et installation

Opencv-Intro et installation
Opencv-Intro et installation

OpenCV (bibliothèque de vision par ordinateur open source) est une bibliothèque très utile - elle fournit de nombreuses fonctionnalités utiles telles que la reconnaissance de texte, la reconnaissance faciale, la détection d'objets, la création de cartes de profondeur et l'apprentissage automatique.

Cet article vous montrera comment installer Opencv et d'autres bibliothèques sur Raspberry Pi qui vous seront utiles lors de la détection d'objets et d'autres projets. À partir de là, nous apprendrons à effectuer des opérations d'image et de vidéo en exécutant un projet de reconnaissance d'objets et d'apprentissage automatique. Plus précisément, nous écrirons un code simple pour détecter les visages dans une image.

Qu'est-ce qu'OpenCV ?

OpenCV est une bibliothèque de logiciels de vision par ordinateur et d'apprentissage automatique open source. OpenCV est publié sous une licence BSD, ce qui le rend gratuit pour un usage académique et commercial. Il possède des interfaces C++, Python et Java et prend en charge Windows, Linux, Mac OS, iOS et Android. OpenCV a été conçu pour une efficacité de calcul et une forte concentration sur les applications en temps réel.

Comment installer OpenCV sur un Raspberry Pi ?

Pour installer OpenCV, nous devons avoir Python installé. Étant donné que les Raspberry Pis sont préchargés avec Python, nous pouvons installer directement OpenCV.

Tapez les commandes ci-dessous pour vous assurer que votre Raspberry Pi est à jour et pour mettre à jour les packages installés sur votre Raspberry Pi vers les dernières versions.

sudo apt-get updatesudo apt-get upgrade

Tapez les commandes suivantes dans le terminal pour installer les packages requis pour OpenCV sur votre Raspberry Pi.

sudo apt install libatlas3-base libsz2 libharfbuzz0b libtiff5 libjasper1 libilmbase12 libopenexr22 libilmbase12 libgstreamer1.0-0 libavcodec57 libavformat57 libavutil55 libswscale4 libqtgui4 libqtcore4-test libqtcore4-test

Tapez la commande suivante pour installer OpenCV 3 pour Python 3 sur votre Raspberry Pi, pip3 nous dit qu'OpenCV sera installé pour Python 3.

sudo pip3 installer opencv-contrib-python libwebp6

Maintenant, OpenCV doit être installé.

(si des erreurs se sont produites: vous pouvez toujours le faire en suivant le lien ci-dessous

https://www.instructables.com/id/Raspberry-Pi-Hand…)

Maintenant, ne vous pressez pas, nous devons vérifier s'il a été correctement installé ou non

Testez votre opencv en:

1. allez sur votre terminal et tapez "python"

2. Ensuite, tapez "importer cv2".

3.puis tapez " cv2._version_".

puis installez ces bibliothèques

pip3 installer python-numpy

pip3 installer python-matplotlib

Code de test pour détecter les visages dans une image:

importer cv2

faceCascade = cv2. CascadeClassifier("haarcascade_frontalface_default.xml");

image = cv2.imread('votre nom de fichier') #exemple cv2.imread('home/pi/Desktop/filename.jpg')

vous obtiendrez le résultat comme si des cases carrées se formaient sur les visages des personnes présentes sur la photo.

Étape 3: Détecter et reconnaître le visage dans une vidéo en temps réel

importer cv2

importer numpy en tant que np

importer le système d'exploitation

importer la série

ser = serial. Serial('/dev/ttyACM0', 9600, timeout=1) # /dev/ttyACM0 peut changer dans votre cas, dépend de l'arduino

cascadePath = "haarcascade_frontalface_default.xml"

faceCascade = cv2. CascadeClassifier(cascadePath)

reconnaître=cv2.face.createLBPHFaceRecognizer()

images=

étiquettes=

pour le nom de fichier dans os.listdir('Dataset'):

im=cv2.imread('Ensemble de données/'+nom de fichier, 0)

images.append(im)

labels.append(int(filename.split('.')[0][0]))

#imprimer le nom du fichier

names_file=open('labels.txt')

names=names_file.read().split('\n')

reconnaître.train(images, np.array(étiquettes))

print 'Formation terminée… '

police = cv2. FONT_

HERSHEY_SIMPLEXcap=cv2. VideoCapture(1) # votre périphérique vidéo

lastRes=''count=0

tandis que(1):

_, frame=cap.read()

gray=cv2.cvtColor(cadre, cv2. COLOR_BGR2GRAY)

faces = faceCascade.detectMultiScale(gris, 1.3, 5)

compte+=1

pour (x, y, w, h) dans les faces:

cv2.rectangle(cadre, (x, y), (x+w, y+h), (255, 0, 0), 2)

si nombre>20: res=noms[recognizer.predict(gray[y:y+h, x:x+w])-1]

if res!=lastRes:

lastRes=res

imprimer lastRes

ser.write(lastRes)

compte=0

Pause

cv2.imshow('cadre', cadre)

k = 0xFF & cv2.waitKey(10)

si k == 27:

Pause

cap.release()

ser.close()

cv2.destroyAllWindows()

Étape 4: Exécuter le code

Exécuter le code
Exécuter le code

1. Téléchargez les fichiers joints à l'étape précédente

2. copiez vos photos grises (6 images/échantillons…..) dans votre dossier de jeu de données

1. Tom Cruise 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 (numéro d'image de jeu de données pour un dossier de jeu de données plus ouvert)

2. Brad Pitt-2_1, 2_2, 2_3, 2_4, 2_5, 2_6

3. Lion-3_1, 3_2, 3_3, 3_4, 3_5, 3_6

4. Ironman4_1, 4_2, 4_3, 4_4, 4_5, 4_6

comme ci-dessus, vous pouvez ajouter les étiquettes pour les personnes respectives,

donc si le pi détecte un visage parmi 1_1, 1_2, 1_3, 1_4, 1_5, 1_6, alors il a été étiqueté comme Tom Cruise, alors soyez prudent lors du téléchargement des photos………………

puis connectez votre arduino à votre raspberry Pi et apportez des modifications dans le codeur main.py = serial. Serial('/dev/ttyACM0', 9600, timeout=1) 3.mettez tous les fichiers téléchargés (main.py, dossier dataset, haarcascade_frontalface_default.xml dans un dossier.)

3. Maintenant, ouvrez Raspi-terminal, exécutez votre code par "sudo python main.py"

Conseillé: