Cuprins:

Recunoașterea feței Opencv: 4 pași
Recunoașterea feței Opencv: 4 pași

Video: Recunoașterea feței Opencv: 4 pași

Video: Recunoașterea feței Opencv: 4 pași
Video: Python - curs practic de recunoastere faciala. Sistem de prezenta bazat in recunoastere faciala 2024, Iulie
Anonim
Recunoașterea feței Opencv
Recunoașterea feței Opencv

Recunoașterea feței este un lucru destul de obișnuit acum câteva zile, în multe aplicații, cum ar fi telefoanele inteligente, multe gadget-uri electronice. Acest tip de tehnologie implică o mulțime de algoritmi și instrumente, etc. biblioteci precum OpenCV, acum puteți adăuga recunoașterea feței propriilor aplicații precum sistemele de securitate.

În acest proiect, vă voi spune cum să construiți o recunoaștere a feței utilizând un Raspberry Pi și am folosit arduino + Lcd pentru a afișa numele persoanei..

Pasul 1: Lucruri de care aveți nevoie

Lucruri de care ai nevoie
Lucruri de care ai nevoie

1. RASPBERRY PI

2. ARDUINO UNO / NANO

3.16x2 LCD DISPLAY

4. RASPI-CAMERA / WEBcam (prefer camera web pentru rezultate mai bune)

Pasul 2: Opencv-Intro și instalare

Opencv-Introducere și instalare
Opencv-Introducere și instalare

OpenCV (open source computer vision library) este o bibliotecă foarte utilă - oferă multe caracteristici utile, cum ar fi recunoașterea textului, recunoașterea feței, detectarea obiectelor, crearea hărților de adâncime și învățarea automată.

Acest articol vă va arăta cum să instalați Opencv și alte biblioteci pe Raspberry Pi, care vă vor fi la îndemână atunci când faceți detectarea obiectelor și alte proiecte. De acolo, vom învăța cum să efectuăm operații de imagine și video executând un proiect de recunoaștere a obiectelor și de învățare automată. Mai exact, vom scrie un cod simplu pentru a detecta fețele dintr-o imagine.

Ce este OpenCV?

OpenCV este o bibliotecă de software open source pentru viziune computerizată și învățare automată. OpenCV este lansat sub o licență BSD, făcându-l gratuit atât pentru uz academic, cât și comercial. Are interfețe C ++, Python și Java și acceptă Windows, Linux, Mac OS, iOS și Android. OpenCV a fost proiectat pentru eficiența computațională și un accent puternic pe aplicații în timp real.

Cum se instalează OpenCV pe un Raspberry Pi?

Pentru a instala OpenCV, trebuie să avem Python instalat. Deoarece Raspberry Pis este preîncărcat cu Python, putem instala OpenCV direct.

Tastați comenzile de mai jos pentru a vă asigura că Raspberry Pi este actualizat și pentru a actualiza pachetele instalate pe Raspberry Pi la cele mai recente versiuni.

sudo apt-get updatesudo apt-get upgrade

Tastați următoarele comenzi în terminal pentru a instala pachetele necesare pentru OpenCV pe 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

Tastați următoarea comandă pentru a instala OpenCV 3 pentru Python 3 pe Raspberry Pi, pip3 ne spune că OpenCV va fi instalat pentru Python 3.

sudo pip3 instalează opencv-contrib-python libwebp6

Acum ar trebui instalat OpenCV.

(dacă s-au produs erori: totuși o puteți face urmând linkul de mai jos

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

Acum nu vă grăbiți, trebuie să verificăm dacă a fost instalat corect sau nu

Testați-vă opența prin:

1. mergi la terminalul tău și typr "python"

2. apoi introduceți „import cv2”.

3. apoi introduceți „cv2._ versiunea_”.

apoi instalați aceste biblioteci

pip3 instalează python-numpy

pip3 instalează python-matplotlib

Cod de testare pentru a detecta fețele dintr-o imagine:

import cv2

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

image = cv2.imread („numele fișierului”) #example cv2.imread („home / pi / Desktop / filename-j.webp

veți obține ieșirea ca și cum s-au format cutii pătrate pe fețele oamenilor din imagine.

Pasul 3: detectarea și recunoașterea feței într-un videoclip în timp real

import cv2

import numpy ca np

import os

import serial

ser = serial. Serial ('/ dev / ttyACM0', 9600, timeout = 1) # / dev / ttyACM0 s-ar putea schimba în cazul dvs., depinde de arduino

cascadePath = "haarcascade_frontalface_default.xml"

faceCascade = cv2. CascadeClassifier (cascadePath)

recognizer = cv2.face.createLBPHFaceRecognizer ()

imagini =

etichete =

pentru numele fișierului în os.listdir („Dataset”):

im = cv2.imread ('Dataset /' + nume de fișier, 0)

images.append (im)

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

#print numele fișierului

names_file = open ('labels.txt')

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

recognizer.train (imagini, np.array (etichete))

tipărește „Antrenament finalizat”… '

font = cv2. FONT_

HERSHEY_SIMPLEXcap = cv2. VideoCapture (1) # dispozitivul dvs. video

lastRes = "count = 0

în timp ce (1):

_, cadru = cap.read ()

gri = cv2.cvtColor (cadru, cv2. COLOR_BGR2GRAY)

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

numără + + 1

pentru (x, y, w, h) în fețe:

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

dacă număr> 20: res = nume [recunoscător.predict (gri [y: y + h, x: x + w]) - 1]

dacă res! = lastRes:

lastRes = res

print lastRes

ser.write (lastRes)

număr = 0

pauză

cv2.imshow („cadru”, cadru)

k = 0xFF & cv2.waitKey (10)

dacă k == 27:

pauză

cap.release ()

ser.close ()

cv2.destroyAllWindows ()

Pasul 4: Rularea codului

Rularea codului
Rularea codului

1. Descărcați fișierele atașate la pasul anterior

2. copiați fotografiile dvs. gri (6 imagini / mostre …..) în folderul setului de date

1. Tom Cruise 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 (numărul de imagine al setului de date pentru mai multe dosare de date deschise)

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

la fel ca cele de mai sus, puteți adăuga etichete pentru persoanele respective,

deci dacă pi detectează o față între 1_1, 1_2, 1_3, 1_4, 1_5, 1_6, atunci a fost denumită Tom Cruise, așa că vă rugăm să fiți atenți la încărcarea fotografiilor …

și apoi conectați-vă arduino la raspberry Pi și efectuați modificări în main.py codeser = serial. Serial ('/ dev / ttyACM0', 9600, timeout = 1) 3. introduceți toate fișierele descărcate (main.py, folderul setului de date, haarcascade_frontalface_default.xml într-un singur folder.)

3. Acum deschideți terminalul Raspi, rulați codul prin „sudo python main.py”

Recomandat: