- Forutsetninger
- Hvordan ansiktsgjenkjenning fungerer med OpenCV
- Ansiktsgjenkjenning ved hjelp av Cascade Classifiers i OpenCV
Ansiktsgjenkjenning blir stadig mer populær, og de fleste av oss bruker den allerede uten å innse det. Det være seg et enkelt Facebook Tag-forslag eller Snapchat-filter eller en avansert sikkerhetsovervåking på flyplassen, ansiktsgjenkjenning har allerede brukt sin magi i det. Kina har begynt å bruke ansiktsgjenkjenning på skolene for å overvåke studentens oppmøte og atferd. Butikker har begynt å bruke ansiktsgjenkjenning for å kategorisere kundene sine og isolere personer med svindelhistorie. Med mange flere endringer på gang, er det ingen tvil om at denne teknologien vil bli sett overalt i nær fremtid.
I denne opplæringen lærer vi hvordan vi kan bygge vårt eget ansiktsgjenkjenningssystem ved hjelp av OpenCV-biblioteket på Raspberry Pi. Fordelen med å installere dette systemet på bærbar Raspberry Pi er at du kan installere det hvor som helst for å fungere som overvåkingssystem. Som alle ansiktsgjenkjenningssystemer, vil opplæringen involvere to python-skript, det ene er et trenerprogram som analyserer et sett med bilder av en bestemt person og oppretter et datasett (YML-fil). Det andre programmet er Recognizer-programmetsom oppdager et ansikt og deretter bruker denne YML-filen til å gjenkjenne ansiktet og nevne personnavnet. Begge programmene vi skal diskutere her er for Raspberry Pi (Linux), men vil også fungere på Windows Computers med svært små endringer. Vi har allerede en serie opplæringsprogrammer for nybegynnere for å komme i gang med OpenCV, du kan sjekke alle OpenCV-opplæringene her.
Forutsetninger
Som tidligere fortalt vil vi bruke OpenCV-biblioteket til å oppdage og gjenkjenne ansikter. Så sørg for at du installerer OpenCV-biblioteket på Pi før du fortsetter med denne opplæringen. Strøm også Pi-en din med en 2A-adapter og koble den til en skjermmonitor via HDMI-kabel, siden vi ikke vil kunne få videoutgangen gjennom SSH.
Jeg kommer heller ikke til å forklare hvordan akkurat OpenCV fungerer, hvis du er interessert i å lære bildebehandling, så sjekk ut dette grunnleggende om OpenCV og avanserte opplæringsprogrammer for bildebehandling. Du kan også lære om konturer, oppdagelse av klatter osv. I denne bildesegmenteringsveiledningen.
Hvordan ansiktsgjenkjenning fungerer med OpenCV
Før vi begynner, er det viktig å forstå at ansiktsgjenkjenning og ansiktsgjenkjenning er to forskjellige ting. I ansiktsgjenkjenning oppdages bare ansiktet til en person, programvaren har ingen ide om hvem personen er. I ansiktsgjenkjenning vil programvaren ikke bare oppdage ansiktet, men vil også gjenkjenne personen. Nå skal det være klart at vi må utføre ansiktsgjenkjenning før vi utfører ansiktsgjenkjenning. Det ville ikke være mulig for meg å forklare hvordan OpenCV oppdager et ansikt eller andre gjenstander for den saks skyld. Så hvis du er nysgjerrig på å vite at du kan følge denne veiledningen for objektgjenkjenning.
En videofeed fra et webkamera er ikke annet enn en lang sekvens med stillbilder som oppdateres etter hverandre. Og hvert av disse bildene er bare en samling piksler med forskjellige verdier satt sammen i sin respektive posisjon. Så hvordan kan et program oppdage et ansikt fra disse pikslene og ytterligere gjenkjenne personen i det? Det er mange algoritmer som ligger bak det, og det å prøve å forklare dem ligger utenfor omfanget av denne artikkelen, men siden vi bruker OpenCV-biblioteket, er det veldig enkelt å utføre ansiktsgjenkjenning uten å komme dypere inn i konseptene.
Ansiktsgjenkjenning ved hjelp av Cascade Classifiers i OpenCV
Bare hvis vi klarer å oppdage et ansikt, vil vi kunne gjenkjenne det eller huske det. For å oppdage et objekt som ansikt, bruker OpenCV noe som heter Classifiers. Disse klassifikatorene er forhåndstrente datasett (XML-fil) som kan brukes til å oppdage et bestemt objekt i vårt tilfelle et ansikt. Du kan lære mer om ansiktsgjenkjenningsklassifikatorer her. Bortsett fra å oppdage ansikt, kan klassifiserere oppdage andre objekter som nese, øyne, kjøretøyskilt, smil osv. Listen over saksklassifikatorer kan lastes ned fra ZIP-filen nedenfor
Klassifikatorer for gjenkjenning av objekter i Python
Alternativt lar OpenCV deg også lage din egen klassifikator som kan brukes til å oppdage ethvert annet objekt i et bilde ved å trene kaskadeklassifisereren. I denne opplæringen vil vi bruke en klassifikator kalt “haarcascade_frontalface_default.xml” som vil oppdage ansiktet fra frontposisjon. Vi får se