INHOUDSOPGAWE:

Opencv gesigherkenning: 4 stappe
Opencv gesigherkenning: 4 stappe

Video: Opencv gesigherkenning: 4 stappe

Video: Opencv gesigherkenning: 4 stappe
Video: How to Install Tkinter in Visual Studio Code - (Windows 10/11) 2024, November
Anonim
Opencv Gesigsherkenning
Opencv Gesigsherkenning

Gesigsherkenning is deesdae redelik algemeen, in baie toepassings soos slimfone, baie elektroniese toestelle. Hierdie soort tegnologie behels baie algoritmes en gereedskap, ens. biblioteke soos OpenCV, kan u nou gesigherkenning by u eie toepassings voeg, soos sekuriteitstelsels.

In hierdie projek sal ek u vertel hoe u 'n gesigsherkenning kan bou met 'n Raspberry Pi en ons het arduino+Lcd gebruik om die naam van die persoon te vertoon.

Stap 1: Dinge wat u nodig het

Dinge wat jy nodig het
Dinge wat jy nodig het

1. Raspberry PI

2. ARDUINO UNO / NANO

3.16x2 LCD -skerm

4. RASPI-CAMERA / WEBcam (ek verkies webcam vir beter resultate)

Stap 2: Opencv-bekendstelling en installasie

Opencv-bekendstelling en installasie
Opencv-bekendstelling en installasie

OpenCV (open source computer vision library) is 'n baie nuttige biblioteek - dit bied baie nuttige funksies soos teksherkenning, gesigherkenning, objekopsporing, die skep van dieptekaarte en masjienleer.

Hierdie artikel sal u wys hoe u Opencv en ander biblioteke op Raspberry Pi kan installeer wat handig sal wees by die opsporing van voorwerpe en ander projekte. Van daar af leer ons hoe om beeld- en video -bewerkings uit te voer deur 'n voorwerpherkenning- en masjienleerprojek uit te voer. Ons skryf spesifiek 'n eenvoudige kode om gesigte in 'n prent op te spoor.

Wat is OpenCV?

OpenCV is 'n open source rekenaarvisie en masjienleer sagteware biblioteek. OpenCV word vrygestel onder 'n BSD -lisensie, wat dit gratis maak vir akademiese en kommersiële gebruik. Dit het C ++, Python en Java -koppelvlakke en ondersteun Windows, Linux, Mac OS, iOS en Android. OpenCV is ontwerp vir rekenkundige doeltreffendheid en 'n sterk fokus op intydse toepassings.

Hoe om OpenCV op 'n Raspberry Pi te installeer?

Om OpenCV te installeer, moet Python geïnstalleer word. Aangesien Raspberry Pis vooraf met Python gelaai is, kan ons OpenCV direk installeer.

Tik die opdragte hieronder om seker te maak dat u Raspberry Pi op datum is en om die geïnstalleerde pakkette op u Raspberry Pi op te dateer na die nuutste weergawes.

sudo apt-get updates sudo apt-get upgrade

Tik die volgende opdragte in die terminale om die vereiste pakkette vir OpenCV op u Raspberry Pi te installeer.

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

Tik die volgende opdrag om OpenCV 3 vir Python 3 op u Raspberry Pi te installeer, pip3 vertel ons dat OpenCV vir Python 3 geïnstalleer sal word.

sudo pip3 installeer opencv-contrib-python libwebp6

Nou moet OpenCV geïnstalleer word.

(as daar foute was: u kan dit steeds doen deur die onderstaande skakel te volg

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

Moenie haastig wees nie; ons moet kyk of dit reg geïnstalleer is of nie

Toets u opencv deur:

1. gaan na u terminale en tik "python"

2. tik dan "invoer cv2".

3. tik dan "cv2._ version_".

installeer dan hierdie biblioteke

pip3 installeer python-numpy

pip3 installeer python-matplotlib

Toets kode om gesigte in 'n prent op te spoor:

voer cv2 in

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

image = cv2.imread ('u lêernaam') #voorbeeld cv2.imread ('home/pi/Desktop/lêernaam.jpg')

U kry die uitset soos 'n vierkantige boks op die gesigte van mense op die foto.

Stap 3: Ontdek en herken gesig in 'n real -time video

voer cv2 in

invoer numpy as np

invoer os

invoer reeks

ser = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1) #/dev/ttyACM0 kan in u geval verander, hang af van die arduino

cascadePath = "haarcascade_frontalface_default.xml"

faceCascade = cv2. CascadeClassifier (cascadePath)

herkener = cv2.face.createLBPHFaceRecognizer ()

beelde =

etikette =

vir lêernaam in os.listdir ('Dataset'):

im = cv2.imread ('Dataset/'+lêernaam, 0)

beelde. voeg by (im)

labels.append (int (lêernaam.split ('.') [0] [0]))

#print lêernaam

names_file = open ('labels.txt')

name = name_file.read (). split ('\ n')

herkenner.trein (beelde, np.array (etikette))

druk 'Opleiding gedoen… '

font = cv2. FONT_

HERSHEY_SIMPLEXcap = cv2. VideoCapture (1) # jou video -toestel

lastRes = '' count = 0

terwyl (1):

_, raam = cap.read ()

grys = cv2.cvtColor (raam, cv2. COLOR_BGR2GRAY)

gesigte = faceCascade.detectMultiScale (grys, 1.3, 5)

tel+= 1

vir (x, y, w, h) in gesigte:

cv2. reghoek (raam, (x, y), (x+w, y+h), (255, 0, 0), 2)

as telling> 20: res = name [herkener.voorspelling (grys [y: y+h, x: x+w])-1]

as res! = lastRes:

lastRes = res

druk laaste Res

ser.write (lastRes)

tel = 0

breek

cv2.imshow ('raam', raam)

k = 0xFF & cv2.waitKey (10)

as k == 27:

breek

cap.release ()

ser.close ()

cv2.destroyAllWindows ()

Stap 4: Gebruik die kode

Die bestuur van die kode
Die bestuur van die kode

1. Laai die lêers wat in die vorige stap aangeheg is, af

2. kopieer u grys foto's (6 beelde/ voorbeelde …..) na u gids met datastelle

1. Tom Cruise 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 (datastel -beeldnommer vir meer oop datastelgids)

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

soos bogenoemde kan u die etikette vir die onderskeie persone byvoeg,

so as die pi 'n gesig tussen 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 opspoor, word dit as Tom Cruise aangedui, dus wees versigtig as u die foto's oplaai …………

en koppel dan jou arduino aan jou framboos Pi en maak veranderinge in die main.py codeser = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1) 3. plaas al die afgelaaide lêers (main.py, dataset folder, haarcascade_frontalface_default.xml in een gids.)

3. Maak nou die Raspi-terminale oop, voer u kode uit met 'sudo python main.py'

Aanbeveel: