Innehållsförteckning:

Opencv ansiktsigenkänning: 4 steg
Opencv ansiktsigenkänning: 4 steg

Video: Opencv ansiktsigenkänning: 4 steg

Video: Opencv ansiktsigenkänning: 4 steg
Video: Face Detection with OpenCV in Python using a Raspberry Pi 4 8Gb RAM 2024, November
Anonim
Opencv ansiktsigenkänning
Opencv ansiktsigenkänning

Ansiktsigenkänning är ganska vanligt nu för tiden, i många applikationer som smarta telefoner, många elektroniska prylar. Denna typ av teknik involverar många algoritmer och verktyg osv. Som använder några inbäddade inbyggda SOC -plattformar som Raspberry Pi och open source -datorsyn bibliotek som OpenCV, kan du nu lägga till ansiktsigenkänning till dina egna applikationer som, säkerhetssystem.

I det här projektet kommer jag att berätta hur du bygger ett ansiktsigenkänning med en Raspberry Pi och vi har använt arduino+Lcd för att visa namnet på personen.

Steg 1: Saker du behöver

Saker du behöver
Saker du behöver

1. RASPBERRY PI

2. ARDUINO UNO / NANO

3.16x2 lCD DISPLAY

4. RASPI-CAMERA / WEBcam (jag föredrar webbkamera för bättre resultat)

Steg 2: Opencv-introduktion och installation

Opencv-introduktion och installation
Opencv-introduktion och installation

OpenCV (open source computer vision library) är ett mycket användbart bibliotek - det ger många användbara funktioner som textigenkänning, ansiktsigenkänning, objektidentifiering, skapande av djupkartor och maskininlärning.

Den här artikeln visar dig hur du installerar Opencv och andra bibliotek på Raspberry Pi som kommer att vara till nytta när du gör objektidentifiering och andra projekt. Därifrån lär vi oss hur man utför bild- och videooperationer genom att utföra ett objektigenkänning och maskininlärningsprojekt. Specifikt kommer vi att skriva en enkel kod för att upptäcka ansikten i en bild.

Vad är OpenCV?

OpenCV är ett bibliotek med öppen källkod för datorsyn och maskininlärning. OpenCV släpps under en BSD -licens vilket gör det gratis för både akademiskt och kommersiellt bruk. Den har C ++, Python och Java -gränssnitt och stöder Windows, Linux, Mac OS, iOS och Android. OpenCV har utformats för beräkningseffektivitet och ett starkt fokus på applikationer i realtid.

Hur installerar jag OpenCV på en Raspberry Pi?

För att installera OpenCV måste vi ha Python installerat. Eftersom Raspberry Pis är förinstallerade med Python kan vi installera OpenCV direkt.

Skriv kommandona nedan för att se till att din Raspberry Pi är uppdaterad och för att uppdatera de installerade paketen på din Raspberry Pi till de senaste versionerna.

sudo apt-get updatesudo apt-get uppgradering

Skriv följande kommandon i terminalen för att installera de nödvändiga paketen för OpenCV på din Raspberry Pi.

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

Skriv följande kommando för att installera OpenCV 3 för Python 3 på din Raspberry Pi, pip3 berättar att OpenCV kommer att installeras för Python 3.

sudo pip3 installera opencv-contrib-python libwebp6

Nu ska OpenCV installeras.

(om det uppstod några fel: ändå kan du göra det genom att följa länken nedan

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

Skynda dig inte nu, vi måste kontrollera om det är korrekt installerat eller inte

Testa din opencv genom att:

1. gå till din terminal och skriv "python"

2. skriv sedan "import cv2".

3. skriv sedan "cv2._ version_".

installera sedan dessa bibliotek

pip3 installera python-numpy

pip3 installera python-matplotlib

Testkod för att upptäcka ansikten i en bild:

importera cv2

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

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

du får utgången som en fyrkantig låda bildades på ansiktena på människor som är på bilden.

Steg 3: Upptäcka och känna igen ansikte i en video i realtid

importera cv2

importera numpy som np

importera os

importera serie

ser = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1) #/dev/ttyACM0 kan ändras i ditt fall, beror på arduino

cascadePath = "haarcascade_frontalface_default.xml"

faceCascade = cv2. CascadeClassifier (cascadePath)

identifierare = cv2.face.createLBPHFaceRecognizer ()

bilder =

etiketter =

för filnamn i os.listdir ('Dataset'):

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

images.append (im)

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

#print filnamn

names_file = open ('labels.txt')

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

identifierare.train (bilder, np.array (etiketter))

print 'Träning klar… '

font = cv2. FONT_

HERSHEY_SIMPLEXcap = cv2. VideoCapture (1) # din videoenhet

lastRes = '' count = 0

medan (1):

_, ram = cap.read ()

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

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

räkna+= 1

för (x, y, w, h) i ansikten:

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

om antal> 20: res = namn [identifierare.predikt (grå [y: y+h, x: x+w])-1]

if res! = lastRes:

lastRes = res

skriv ut lastRes

ser.write (lastRes)

räkna = 0

ha sönder

cv2.imshow ('ram', ram)

k = 0xFF & cv2.waitKey (10)

om k == 27:

ha sönder

cap.release ()

ser.close ()

cv2.destroyAllWindows ()

Steg 4: Kör koden

Kör koden
Kör koden

1. Ladda ner filerna som bifogades i föregående steg

2. kopiera dina gråfoton (6 bilder/ prover…..) till din dataset -mapp

1. Tom Cruise 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 (datauppsättning bildnummer för mer öppen datamapp)

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

som ovan kan du lägga till etiketterna för respektive person,

så om pi upptäcker något ansikte bland 1_1, 1_2, 1_3, 1_4, 1_5, 1_6, så märktes det som Tom Cruise, så var försiktig när du laddar upp foton ……………….

och anslut sedan din arduino till din hallon Pi och gör ändringar i main.py codeser = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1) 3. mata in alla nedladdade filer (main.py, dataset -mapp, haarcascade_frontalface_default.xml i en mapp.)

3. Öppna nu Raspi-terminalen och kör din kod med "sudo python main.py"

Rekommenderad: