Indholdsfortegnelse:

Opencv ansigtsgenkendelse: 4 trin
Opencv ansigtsgenkendelse: 4 trin

Video: Opencv ansigtsgenkendelse: 4 trin

Video: Opencv ansigtsgenkendelse: 4 trin
Video: Python OPENCV Face-Recognition FisherFace ITALIA 2024, Juli
Anonim
Opencv ansigtsgenkendelse
Opencv ansigtsgenkendelse

Ansigtsgenkendelse er en ganske almindelig ting nu om dage, i mange applikationer som smartphones, mange elektroniske gadgets. Denne form for teknologi involverer masser af algoritmer og værktøjer osv., Som bruger nogle integrerede integrerede SOC -platforme som Raspberry Pi og open source computer vision biblioteker som OpenCV, kan du nu tilføje ansigtsgenkendelse til dine egne applikationer som f.eks. sikkerhedssystemer.

I dette projekt fortæller jeg dig, hvordan du opbygger en ansigtsgenkendelse ved hjælp af en Raspberry Pi, og vi har brugt arduino+Lcd til at vise personens navn.

Trin 1: Ting du har brug for

Ting du har brug for
Ting du har brug for

1. RASPBERRY PI

2. ARDUINO UNO / NANO

3.16x2 lCD DISPLAY

4. RASPI-CAMERA / WEBcam (jeg foretrækker webcam for bedre resultater)

Trin 2: Opencv-Intro og installation

Opencv-introduktion og installation
Opencv-introduktion og installation

OpenCV (open source computer vision library) er et meget nyttigt bibliotek - det giver mange nyttige funktioner såsom tekstgenkendelse, ansigtsgenkendelse, objektgenkendelse, oprettelse af dybdekort og maskinlæring.

Denne artikel viser dig, hvordan du installerer Opencv og andre biblioteker på Raspberry Pi, der vil være praktisk, når du udfører objektregistrering og andre projekter. Derfra lærer vi, hvordan man udfører billed- og videooperationer ved at udføre et objektgenkendelses- og maskinlæringsprojekt. Specifikt vil vi skrive en simpel kode til at registrere ansigter i et billede.

Hvad er OpenCV?

OpenCV er et open source -computervision og maskinlæringssoftwarebibliotek. OpenCV frigives under en BSD -licens, hvilket gør det gratis til både akademisk og kommerciel brug. Det har C ++, Python og Java -grænseflader og understøtter Windows, Linux, Mac OS, iOS og Android. OpenCV blev designet til beregningseffektivitet og et stærkt fokus på applikationer i realtid.

Sådan installeres OpenCV på en Raspberry Pi?

For at installere OpenCV skal vi have Python installeret. Da Raspberry Pis er forudindlæst med Python, kan vi installere OpenCV direkte.

Indtast kommandoerne herunder for at sikre, at din Raspberry Pi er opdateret og for at opdatere de installerede pakker på din Raspberry Pi til de nyeste versioner.

sudo apt-get opdateringer sudo apt-get upgrade

Indtast følgende kommandoer i terminalen for at installere de nødvendige pakker til OpenCV på din 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 følgende kommando for at installere OpenCV 3 til Python 3 på din Raspberry Pi, pip3 fortæller os, at OpenCV bliver installeret til Python 3.

sudo pip3 installer opencv-contrib-python libwebp6

Nu skal OpenCV installeres.

(hvis der er opstået fejl: stadig kan du gøre det ved at følge nedenstående link

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

Skynd dig nu ikke, vi skal kontrollere det, om det er installeret korrekt eller ej

Test din opencv ved:

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

2. skriv derefter "import cv2".

3. skriv derefter "cv2._ version_".

installer derefter disse biblioteker

pip3 installer python-numpy

pip3 installer python-matplotlib

Test kode for at registrere ansigter i et billede:

import cv2

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

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

du får output som en firkantede kasser blev dannet på ansigterne på mennesker, der er på billedet.

Trin 3: Registrering og genkendelse af ansigt i en video i realtid

import cv2

import numpy som np

import os

import seriel

ser = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1) #/dev/ttyACM0 kan ændre sig i dit tilfælde, afhænger af arduinoen

cascadePath = "haarcascade_frontalface_default.xml"

faceCascade = cv2. CascadeClassifier (cascadePath)

anerkender = cv2.face.createLBPHFaceRecognizer ()

billeder =

etiketter =

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

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

images.append (im)

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

#print filnavn

names_file = open ('labels.txt')

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

anerkender.træning (billeder, np.array (etiketter))

print 'Uddannelse udført… '

font = cv2. FONT_

HERSHEY_SIMPLEXcap = cv2. VideoCapture (1) # din videoenhed

lastRes = '' count = 0

mens (1):

_, ramme = cap.read ()

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

ansigter = faceCascade.detectMultiScale (grå, 1,3, 5)

tæl+= 1

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

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

hvis tæller> 20: res = navne [anerkender.forudsigelse (grå [y: y+h, x: x+w])-1]

hvis res! = lastRes:

lastRes = res

udskriv sidsteRes

ser.write (lastRes)

tæl = 0

pause

cv2.imshow ('ramme', ramme)

k = 0xFF & cv2.waitKey (10)

hvis k == 27:

pause

cap.release ()

ser.close ()

cv2.destroyAllWindows ()

Trin 4: Kørsel af koden

Kørsel af koden
Kørsel af koden

1. Download de vedhæftede filer i det foregående trin

2. kopier dine grå fotos (6 billeder/ prøver…..) til din datasætmappe

1. Tom Cruise 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 (datasæt billednummer for mere åben datasætmappe)

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

ligesom ovenstående kan du tilføje etiketterne til de respektive personer,

så hvis pi opdager et ansigt blandt 1_1, 1_2, 1_3, 1_4, 1_5, 1_6, så blev det mærket som Tom Cruise, så vær forsigtig, når du uploader billederne ……………

og slut derefter din arduino til din hindbær Pi og foretag ændringer i main.py codeser = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1) 3. sæt alle de downloadede filer (main.py, datasætmappe, haarcascade_frontalface_default.xml i en mappe.)

3. Åbn nu Raspi-terminal, kør din kode med "sudo python main.py"

Anbefalede: