Vem är i kaffebryggaren? Ansiktsigenkänning med Raspberry Pi, OpenCV och Sigfox (4 / 7 steg)
Steg 4: Känna igen ansikten med OpenCV
Vad är openCV?
OpenCV innebär öppen källkod datorseende. Det är detta bibliotek som gör att användningen att upptäcka ansikten och då känna igen personen.
I det här steget kommer vi att köra tre skript:
- Den första scriptet kan fånga bilder med Raspberry Pi-kamera och spara den med rätt färger och mått
- Den andra skriften kommer att träna OpenCV algoritmen använder metoden EigenFaces
- Den tredje scriptet kan vi testa resultaten och så småningom anpassa olika parametrar
Jag anpassade under opencv / mapp vissa delar av Tony DiCola kod från hans skattkista tutorial: https://learn.adafruit.com/raspberry-pi-face-recog...
Installera OpenCV
Vi kommer att använda OpenCV python librarie. Först, jag försökte kompilera det själv men jag kunde inte riktigt göra det. Jag tillbringade timmar med att försöka olika tutorials men utan framgång.
Slutligen hittade jag att OpenCV kan installeras med hjälp av apt-get. Jag läste att några funktioner saknas men det är åtminstone tillräckligt för vad vi vill göra!
(https://www.raspberrypi.org/forums/viewtopic.php?f...)
Öppna din terminal igen och köra:
$ sudo lämplig-få installera python-dev
$ sudo lämplig-få installera python-opencv
$ sudo lämplig-få installera libopencv-dev
$ sudo pip installera imutils
$ sudo pip installera numpy
Men om du vill kompilera det själv, Välkommen att ta en titt på pyimag
Det kan vara lite länge dock.
Testa installationen
I din terminalen köra:
PI $ python
Python 2.7.9 (standard, Mar 8 2015, 00:52:26) [GCC 4.9.2] på linux2 typ "hjälp", "upphovsrätt", "krediter" eller "licens" för mer information.
>>> importerar cv2
>>>
Om du inte ser några fel, installerats OpenCV korrekt.
Tryck sedan ctrl + d för att avsluta
Fånga bilder att kunna känna igen
Första, plugg Raspberry Pi kameran i RPI.
Gå till opencv / katalogen.
Sedan öppna capture_positive.py filen och ersätta POSITIVE_FILE_PREFIX = 'username_' av ditt namn.
Spara filen.
Kör skriptet: $ python capture_postive.py
Fixa kameran och tryck på "c" och "Enter" för att fånga en bild. Om ditt ansikte upptäcks och är den enda som upptäckts i bilden, kommer att skriptet konvertera den med rätt format (beskuren i gråskala + bra dimension) i mappen utbildning/positiva.
Försök att ta ca 10 bilder för varje person. Du kanske vill ta det vid olika tidpunkter under dagen att ta hänsyn till ljusstyrka utvecklingen och ta olika vinklar av ansiktet.
Tryck "ctrl + c" för att avsluta skriptet om du vill ändra namnet på person.
Observera att om skriptet har svårt att upptäcka ditt ansikte kan du ändra värdet för HAAR_SCALE_FACTOR i config.py
Förbereda utbildning
Nu öppna config.py filen och ersätta den medföljande USERNAME_LABEL av namnen du använde för att ta bilder.
Kör skriptet utbildning
Öppna train.py skriptet i den huvudsakliga funktionen ersätta if(path='username'): av ditt namn som din skrev det i filen capture_positive.py och config. USERNAME_LABEL av som du skrev i filen config.py.
Göra det för varje människor, spara filen och sedan köra den:
$ python train.py
Beroende på hur många människor du vill träna, kan skriptet ta lite tid att köra.
När den är klar, bör du se filen training.xml, positiva eigenface bilden, den negativa eigenface bilden och medelvärdet en.
Testa ansiktsigenkänning
Gå tillbaka till projektets rotmapp och springa test.py
LCD-displayen ska skriva "Hej [ditt namn]". Beroende på bilderna tog du fel kanske inträffar. Du kan sätta ett lägre förtroende för att få bättre resultat.