- Förutsättningar
- Hur ansiktsigenkänning fungerar med OpenCV
- Ansiktsavkänning med Cascade Classifiers i OpenCV
Ansiktsigenkänning blir alltmer populär och de flesta av oss använder det redan utan att ens inse det. Vare sig det är ett enkelt Facebook-taggförslag eller Snapchat-filter eller en avancerad säkerhetsövervakning på flygplatsen, ansiktsigenkänning har redan gjort sin magi i det. Kina har börjat använda ansiktsigenkänning i skolor för att övervaka elevernas närvaro och beteende. Butiker har börjat använda ansiktsigenkänning för att kategorisera sina kunder och isolera människor med bedrägerihistoria. Med mycket fler förändringar på gång råder det ingen tvekan om att denna teknik skulle ses överallt inom en snar framtid.
I denna handledning lär vi oss hur vi kan bygga vårt eget ansiktsigenkänningssystem med OpenCV-biblioteket på Raspberry Pi. Fördelen med att installera detta system på bärbar Raspberry Pi är att du kan installera det var som helst för att fungera som övervakningssystem. Liksom alla ansiktsigenkänningssystem kommer handboken att involvera två python-skript, det ena är ett tränarprogram som analyserar en uppsättning bilder av en viss person och skapar en dataset (YML-fil). Det andra programmet är Recognizer-programmetsom upptäcker ett ansikte och sedan använder den här YML-filen för att känna igen ansiktet och nämna personnamnet. Båda programmen som vi kommer att diskutera här är för Raspberry Pi (Linux), men fungerar också på Windows-datorer med mycket små förändringar. Vi har redan en serie handledning för nybörjare för att komma igång med OpenCV, du kan se alla OpenCV-självstudier här.
Förutsättningar
Som tidigare sagt kommer vi att använda OpenCV-biblioteket för att upptäcka och känna igen ansikten. Så se till att du installerar OpenCV Library på Pi innan du fortsätter med den här guiden. Driv också din Pi med en 2A-adapter och anslut den till en bildskärm via HDMI-kabel, eftersom vi inte kommer att kunna få videoutgången via SSH.
Jag kommer inte heller att förklara hur exakt OpenCV fungerar, om du är intresserad av att lära dig bildbearbetning, kolla in de här grunderna i OpenCV och avancerade handledning för bildbehandling. Du kan också lära dig mer om konturer, upptäckt av fläckar osv. I denna bildsegmenteringshandledning.
Hur ansiktsigenkänning fungerar med OpenCV
Innan vi börjar är det viktigt att förstå att ansiktsavkänning och ansiktsigenkänning är två olika saker. Vid ansiktsavkänning detekteras endast en persons ansikte programvaran har ingen idé vem den personen är. I ansiktsigenkänning kommer programvaran inte bara att upptäcka ansiktet utan kommer också att känna igen personen. Nu bör det vara klart att vi måste utföra ansiktsavkänning innan vi utför ansiktsigenkänning. Det skulle inte vara möjligt för mig att förklara hur exakt OpenCV upptäcker ett ansikte eller något annat föremål för den delen. Så om du är nyfiken på att veta att du kan följa den här självidentifieringshandledningen.
Ett videoflöde från en webbkamera är inget annat än en lång sekvens av stillbilder som uppdateras efter varandra. Och var och en av dessa bilder är bara en samling pixlar med olika värden som sammanställs i sin respektive position. Så hur kan ett program upptäcka ett ansikte från dessa pixlar och ytterligare känna igen personen i det? Det finns många algoritmer bakom det och att försöka förklara dem ligger utanför denna artikel, men eftersom vi använder OpenCV-biblioteket är det väldigt enkelt att utföra ansiktsigenkänning utan att gå djupare in i koncepten
Ansiktsavkänning med Cascade Classifiers i OpenCV
Endast om vi kan upptäcka ett ansikte kan vi känna igen det eller komma ihåg det. För att upptäcka ett objekt som ansikte använder OpenCV något som kallas klassificatorer. Dessa klassificerare är förutbildad uppsättning data (XML-fil) som kan användas för att upptäcka ett visst objekt i vårt fall ett ansikte. Du kan lära dig mer om ansiktsigenkänningsklassificatorer här. Förutom att detektera ansikte kan klassificerare upptäcka andra föremål som näsa, ögon, fordonslicensskylt, leende etc. Listan över fallsklassificeringsapparater kan laddas ner från ZIP-filen nedan
Klassificatorer för objektdetektering i Python
Alternativt låter OpenCV dig också skapa din egen klassificering som kan användas för att upptäcka alla andra objekt i en bild genom att träna din kaskadklasser. I denna handledning använder vi en klassificering som heter “haarcascade_frontalface_default.xml” som kommer att upptäcka ansiktet från frontposition. Vi får se