Innholdsfortegnelse:

Opencv ansiktsgjenkjenning: 4 trinn
Opencv ansiktsgjenkjenning: 4 trinn

Video: Opencv ansiktsgjenkjenning: 4 trinn

Video: Opencv ansiktsgjenkjenning: 4 trinn
Video: Face Detection with OpenCV in Python using a Raspberry Pi 4 8Gb RAM 2024, November
Anonim
Opencv ansiktsgjenkjenning
Opencv ansiktsgjenkjenning

Ansiktsgjenkjenning er ganske vanlig nå i dag, i mange applikasjoner som smarttelefoner, mange elektroniske gadgets. Denne typen teknologi involverer mange algoritmer og verktøy osv. Som bruker noen innebygde innebygde SOC -plattformer som Raspberry Pi og åpen kildekode datavisning biblioteker som OpenCV, kan du nå legge til ansiktsgjenkjenning til dine egne applikasjoner som, sikkerhetssystemer.

I dette prosjektet vil jeg fortelle deg hvordan du bygger en ansiktsgjenkjenning ved å bruke en Raspberry Pi, og vi har brukt arduino+Lcd for å vise navnet på personen.

Trinn 1: Ting du trenger

Ting du trenger
Ting du trenger

1. RASPBERRY PI

2. ARDUINO UNO / NANO

3.16x2 lCD DISPLAY

4. RASPI-CAMERA / WEBcam (jeg foretrekker webkamera for bedre resultater)

Trinn 2: Opencv-intro og installasjon

Opencv-introduksjon og installasjon
Opencv-introduksjon og installasjon

OpenCV (open source computer vision library) er et veldig nyttig bibliotek - det gir mange nyttige funksjoner som tekstgjenkjenning, ansiktsgjenkjenning, gjenkjenning av gjenstander, opprettelse av dybdekart og maskinlæring.

Denne artikkelen viser deg hvordan du installerer Opencv og andre biblioteker på Raspberry Pi som vil komme godt med når du gjør objektdeteksjon og andre prosjekter. Derfra vil vi lære å utføre bilde- og videooperasjoner ved å utføre et prosjekt for gjenkjenning og maskinlæring. Spesielt vil vi skrive en enkel kode for å oppdage ansikter i et bilde.

Hva er OpenCV?

OpenCV er et programvarebibliotek med åpen kildekode for datamaskin og maskinlæring. OpenCV er utgitt under en BSD -lisens, noe som gjør den gratis for både akademisk og kommersiell bruk. Den har C ++, Python og Java -grensesnitt og støtter Windows, Linux, Mac OS, iOS og Android. OpenCV ble designet for beregningseffektivitet og et sterkt fokus på sanntidsapplikasjoner.

Hvordan installere OpenCV på en Raspberry Pi?

For å installere OpenCV må vi ha Python installert. Siden Raspberry Pis er forhåndslastet med Python, kan vi installere OpenCV direkte.

Skriv inn kommandoene nedenfor for å sikre at Raspberry Pi er oppdatert og for å oppdatere de installerte pakkene på Raspberry Pi til de nyeste versjonene.

sudo apt-get oppdateringer sudo apt-get oppgradering

Skriv inn følgende kommandoer i terminalen for å installere de nødvendige pakkene for OpenCV på 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

Skriv inn følgende kommando for å installere OpenCV 3 for Python 3 på Raspberry Pi, pip3 forteller oss at OpenCV vil bli installert for Python 3.

sudo pip3 installer opencv-contrib-python libwebp6

Nå skal OpenCV installeres.

(hvis det oppstod noen feil: fremdeles kan du gjøre det ved å følge lenken nedenfor

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

Ikke ha det travelt, vi må sjekke om det er riktig installert eller ikke

Test opencv -en din ved å:

1. gå til terminalen din og skriv "python"

2. så skriver du "import cv2".

3. deretter skriver du "cv2._ versjon_".

installer deretter disse bibliotekene

pip3 installer python-numpy

pip3 installer python-matplotlib

Test kode for å oppdage ansikter i et bilde:

importer cv2

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

image = cv2.imread ('ditt filnavn') #eksempel cv2.imread ('home/pi/Desktop/filename.jpg')

du vil få utskriften som en firkantet bokser ble dannet på ansiktene til folk som er i bildet.

Trinn 3: Oppdage og gjenkjenne ansikt i en sanntidsvideo

importer cv2

importer numpy som np

import os

importer serie

ser = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1) #/dev/ttyACM0 kan endres i ditt tilfelle, avhenger av arduinoen

cascadePath = "haarcascade_frontalface_default.xml"

faceCascade = cv2. CascadeClassifier (cascadePath)

gjenkjenner = cv2.face.createLBPHFaceRecognizer ()

bilder =

etiketter =

for filnavn i os.listdir ('Datasett'):

im = cv2.imread ('Datasett/'+filnavn, 0)

images.append (im)

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

#print filnavn

names_file = open ('labels.txt')

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

anerkjenner.trening (bilder, np.array (etiketter))

print 'Trening ferdig… '

font = cv2. FONT_

HERSHEY_SIMPLEXcap = cv2. VideoCapture (1) # videoenheten din

lastRes = '' count = 0

mens (1):

_, ramme = cap.read ()

grå = cv2.cvtColor (ramme, cv2. COLOR_BGR2GRAY)

ansikter = faceCascade.detectMultiScale (grå, 1.3, 5)

telle+= 1

for (x, y, w, h) i ansikter:

cv2.rektangel (ramme, (x, y), (x+w, y+h), (255, 0, 0), 2)

hvis antall> 20: res = navn [gjenkjenner.predikt (grå [y: y+h, x: x+w])-1]

if res! = lastRes:

lastRes = res

print lastRes

ser.write (lastRes)

telle = 0

gå i stykker

cv2.imshow ('ramme', ramme)

k = 0xFF & cv2.waitKey (10)

hvis k == 27:

gå i stykker

cap.release ()

ser.close ()

cv2.destroyAllWindows ()

Trinn 4: Kjøre koden

Kjører koden
Kjører koden

1. Last ned filene som er vedlagt i forrige trinn

2. kopier de grå bildene dine (6 bilder/ prøver…..) til datasettmappen

1. Tom Cruise 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 (bildesett for datasett for mer åpen datasettmappe)

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

i likhet med ovenstående kan du legge til etikettene for de respektive personene,

Så hvis pi oppdager et ansikt blant 1_1, 1_2, 1_3, 1_4, 1_5, 1_6, så ble det merket som Tom Cruise, så vær forsiktig når du laster opp bildene ………………

og koble deretter arduinoen til bringebær Pi og gjør endringer i main.py codeser = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1) 3. legg inn alle de nedlastede filene (main.py, datasettmappen, haarcascade_frontalface_default.xml i en mappe.)

3. Åpne nå Raspi-terminalen, kjør koden din med "sudo python main.py"

Anbefalt: