Taula de continguts:

Reconeixement facial Opencv: 4 passos
Reconeixement facial Opencv: 4 passos

Vídeo: Reconeixement facial Opencv: 4 passos

Vídeo: Reconeixement facial Opencv: 4 passos
Vídeo: 😲 OPENCV FACE DETECTION IN GOOGLE COLAB - LESS THAN 1 MINUTE TUTORIAL 😲 2024, Desembre
Anonim
Reconeixement facial Opencv
Reconeixement facial Opencv

El reconeixement facial és una cosa força comuna ara, en moltes aplicacions com els telèfons intel·ligents, molts aparells electrònics. Aquest tipus de tecnologia implica molts algorismes i eines, etc. que utilitza algunes plataformes de SOC incrustades incrustades com el Raspberry Pi i la visió per ordinador de codi obert biblioteques com OpenCV, ara podeu afegir reconeixement facial a les vostres pròpies aplicacions, com ara sistemes de seguretat.

En aquest projecte, us explicaré com crear un reconeixement facial mitjançant un Raspberry Pi i hem utilitzat arduino + Lcd per mostrar el nom de la persona.

Pas 1: coses que necessiteu

Coses que necessiteu
Coses que necessiteu

1. PI FRASSA

2. ARDUINO UNO / NANO

VISUALITZACIÓ LCD de 3,16x2

4. RASPI-CAMERA / WEBcam (prefereixo la càmera web per obtenir millors resultats)

Pas 2: Opencv-Introducció i instal·lació

Opencv-Introducció i instal·lació
Opencv-Introducció i instal·lació

OpenCV (biblioteca de visió per ordinador de codi obert) és una biblioteca molt útil: proporciona moltes funcions útils com ara reconeixement de text, reconeixement de cares, detecció d’objectes, creació de mapes de profunditat i aprenentatge automàtic.

Aquest article us mostrarà com instal·lar Opencv i altres biblioteques a Raspberry Pi que us resultaran útils quan feu la detecció d’objectes i altres projectes. A partir d’aquí, aprendrem a realitzar operacions d’imatge i vídeo executant un projecte de reconeixement d’objectes i d’aprenentatge automàtic. Concretament, escriurem un codi senzill per detectar cares en una imatge.

Què és OpenCV?

OpenCV és una biblioteca de programari de codi obert de visió per computador i aprenentatge automàtic. OpenCV s’allibera sota una llicència BSD, de manera que és gratuït per a ús acadèmic i comercial. Té interfícies C ++, Python i Java i és compatible amb Windows, Linux, Mac OS, iOS i Android. OpenCV va ser dissenyat per a l'eficiència computacional i un gran enfocament en aplicacions en temps real.

Com instal·lar OpenCV en un Raspberry Pi?

Per instal·lar OpenCV, hem de tenir instal·lat Python. Com que Raspberry Pis està precarregat amb Python, podem instal·lar OpenCV directament.

Escriviu les ordres següents per assegurar-vos que el vostre Raspberry Pi estigui actualitzat i per actualitzar els paquets instal·lats al vostre Raspberry Pi a les darreres versions.

sudo apt-get updates sudo apt-get upgrade

Escriviu les ordres següents al terminal per instal·lar els paquets necessaris per a OpenCV al vostre Raspberry Pi.

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

Escriviu l'ordre següent per instal·lar OpenCV 3 per a Python 3 al vostre Raspberry Pi, pip3 ens indica que OpenCV s'instal·larà per a Python 3.

sudo pip3 instal·la opencv-contrib-python libwebp6

Ara s’hauria d’instal·lar OpenCV.

(si es van produir errors: encara podeu fer-ho seguint l'enllaç següent

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

Ara no tingueu pressa, hem de comprovar si s'ha instal·lat correctament o no

Proveu el vostre opencv mitjançant:

1. aneu al vostre terminal i typr "python"

2. llavors escriviu "importar cv2".

3. llavors escriviu "cv2._ versió_".

després instal·leu aquestes biblioteques

pip3 instal·la python-numpy

pip3 instal·la python-matplotlib

Codi de prova per detectar cares en una imatge:

importar cv2

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

image = cv2.imread ('el vostre nom de fitxer') #example cv2.imread ('home / pi / Desktop / filename.jpg')

obtindreu la sortida com si es formessin quadres quadrats a les cares de les persones que apareixen a la imatge.

Pas 3: detectar i reconèixer la cara en un vídeo en temps real

importar cv2

importar numpy com a np

import os

importació de sèries

ser = serial. Serial ('/ dev / ttyACM0', 9600, timeout = 1) # / dev / ttyACM0 pot canviar en el vostre cas, depèn de l'arduino

cascadePath = "haarcascade_frontalface_default.xml"

faceCascade = cv2. CascadeClassifier (cascadePath)

recognizer = cv2.face.createLBPHFaceRecognizer ()

imatges =

etiquetes =

per al nom de fitxer a os.listdir ('Conjunt de dades'):

im = cv2.imread ('Conjunt de dades /' + nom de fitxer, 0)

images.append (im)

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

#print nom de fitxer

fitxer_noms = obert ('labels.txt')

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

recognizer.train (imatges, np.array (etiquetes))

imprimir 'Formació feta… '

font = cv2. FONT_

HERSHEY_SIMPLEXcap = cv2. VideoCapture (1) # el vostre dispositiu de vídeo

lastRes = "count = 0

mentre (1):

_, frame = cap.read ()

gris = cv2.cvtColor (marc, cv2. COLOR_BGR2GRAY)

faces = faceCascade.detectMultiScale (gris, 1,3, 5)

compta + = 1

per a (x, y, w, h) en cares:

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

if count> 20: res = names [recognizer.predict (gris [y: y + h, x: x + w]) - 1]

si res! = lastRes:

lastRes = res

imprimir lastRes

ser.write (lastRes)

compte = 0

trencar

cv2.imshow ('marc', marc)

k = 0xFF & cv2.waitKey (10)

si k == 27:

trencar

cap.release ()

ser.close ()

cv2.destroyAllWindows ()

Pas 4: execució del codi

Execució del codi
Execució del codi

1. Baixeu els fitxers adjunts al pas anterior

2. copieu les vostres fotos grises (6 imatges / mostres …) a la carpeta del vostre conjunt de dades

1. Tom Cruise 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 (número de la imatge del conjunt de dades per a la carpeta de dades més oberta)

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

3. Leo-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

com l'anterior, podeu afegir les etiquetes per a les persones respectives,

per tant, si el pi detecta alguna cara entre 1_1, 1_2, 1_3, 1_4, 1_5, 1_6, aleshores es va anomenar Tom Cruise, així que tingueu precaució mentre pengeu les fotos ………………

i després connecteu el vostre arduino al vostre raspberry Pi i feu canvis al main.py codeser = serial. Serial ('/ dev / ttyACM0', 9600, timeout = 1) 3. introduïu tots els fitxers descarregats (main.py, carpeta de conjunt de dades, haarcascade_frontalface_default.xml en una carpeta.)

3. Ara obriu el terminal Raspi, executeu el vostre codi mitjançant "sudo python main.py"

Recomanat: