- Edellytykset
- Kuinka kasvojentunnistus toimii OpenCV: n kanssa
- Kasvojentunnistus Cascade-luokittelijoilla OpenCV: ssä
Kasvojentunnistus on tulossa yhä suositummaksi, ja useimmat meistä käyttävät sitä jo huomaamatta. Olipa kyseessä yksinkertainen Facebook-tunnusehdotus tai Snapchat-suodatin tai edistynyt lentokentän turvavalvonta, kasvojentunnistus on jo toiminut siinä. Kiina on alkanut käyttää kasvojentunnistusta kouluissa opiskelijoiden läsnäolon ja käyttäytymisen seurantaan. Vähittäiskaupat ovat alkaneet käyttää kasvojentunnistusta asiakkaiden luokittelemiseen ja eristämään ihmisiä, joilla on ollut petoksia. Kun muutoksia on paljon enemmän, ei ole epäilystäkään siitä, että tämä tekniikka näkyisi kaikkialla lähitulevaisuudessa.
Tässä opetusohjelmassa opimme, kuinka voimme rakentaa oman kasvojentunnistusjärjestelmän käyttämällä Raspberry Pi: n OpenCV-kirjastoa. Tämän järjestelmän asentamisen kannettavaan Raspberry Pi: n etuna on, että voit asentaa sen mihin tahansa ja käyttää sitä valvontajärjestelmänä. Kuten kaikki kasvojentunnistusjärjestelmät, opetusohjelma sisältää kaksi python-komentosarjaa, joista toinen on Trainer-ohjelma, joka analysoi joukon valokuvia tietystä henkilöstä ja luo tietojoukon (YML-tiedosto). Toinen ohjelma on Recognizer-ohjelmajoka tunnistaa kasvot ja käyttää tätä YML-tiedostoa kasvojen tunnistamiseen ja henkilön nimen mainitsemiseen. Molemmat tässä käsiteltävät ohjelmat ovat Raspberry Pi (Linux) -käyttöjärjestelmälle, mutta ne toimivat myös Windows-tietokoneissa hyvin pienin muutoksin. Meillä on jo sarja oppaita aloittelijoille OpenCV: n käytön aloittamiseksi. Voit tarkistaa kaikki OpenCV-oppaat täältä.
Edellytykset
Kuten aiemmin kerrottiin, käytämme OpenCV-kirjastoa kasvojen havaitsemiseen ja tunnistamiseen. Joten varmista, että asennat OpenCV-kirjaston Piin ennen tämän opetusohjelman jatkamista. Käynnistä Pi myös 2A-sovittimella ja liitä se näyttöön HDMI-kaapelilla, koska emme voi saada videolähtöä SSH: n kautta.
En myöskään aio selittää kuinka tarkalleen OpenCV toimii, jos olet kiinnostunut kuvankäsittelyn oppimisesta, tutustu tämän OpenCV: n perusteisiin ja edistyneisiin kuvankäsittelyoppaisiin. Voit myös oppia ääriviivoista, Blob Detectionista jne.
Kuinka kasvojentunnistus toimii OpenCV: n kanssa
Ennen kuin aloitamme, on tärkeää ymmärtää, että kasvojentunnistus ja kasvojentunnistus ovat kaksi erilaista asiaa. Vuonna Kasvontunnistus vain henkilön kasvot havaitaan ohjelmisto ei ole aavistustakaan kuka tämä henkilö on. Vuonna kasvojentunnistus ohjelmisto ei ainoastaan tunnista kasvoja, vaan myös tunnistaa henkilön. Nyt pitäisi olla selvää, että meidän on suoritettava kasvojentunnistus ennen kasvojentunnistuksen suorittamista. Minun ei olisi mahdollista selittää, kuinka OpenCV havaitsee tarkalleen kasvot tai minkä tahansa muun kohteen. Joten, jos olet utelias tietämään, että voit seurata tätä objektitunnistusopasta.
Verkkokameran videosyöttö ei ole muuta kuin pitkä sarja pysäytyskuvia, jotka päivitetään yksi toisensa jälkeen. Ja jokainen näistä kuvista on vain kokoelma eri arvoisia pikseleitä, jotka on koottu omaan sijaintiinsa. Joten miten ohjelma voi tunnistaa kasvot näistä pikseleistä ja tunnistaa edelleen siinä olevan henkilön? Sen takana on paljon algoritmeja, joiden yrittäminen selittää on tämän artikkelin ulkopuolella, mutta koska käytämme OpenCV-kirjastoa, kasvojentunnistuksen suorittaminen on erittäin helppoa käsittelemättä
Kasvojentunnistus Cascade-luokittelijoilla OpenCV: ssä
Vain jos pystymme havaitsemaan kasvot, voimme tunnistaa sen tai muistaa sen. Objektin, kuten kasvojen, havaitsemiseksi OpenCV käyttää jotakin luokitusta. Nämä luokittelijat ovat ennalta koulutettuja tietojoukkoja (XML-tiedosto), joita voidaan käyttää tietyn objektin tunnistamiseen meidän tapauksessamme kasvot. Voit oppia lisää kasvojentunnistimista täältä. Kasvojen tunnistamisen lisäksi luokittelijat voivat tunnistaa muita esineitä, kuten nenän, silmät, ajoneuvon rekisterikilven, hymyn jne. Luettelo tapauksen luokittelijoista voidaan ladata alla olevasta ZIP-tiedostosta
Luokittelijat kohteiden havaitsemiseen Pythonissa
Vaihtoehtoisesti OpenCV: n avulla voit myös luoda oman luokittelijan, jota voidaan käyttää minkä tahansa muun objektin tunnistamiseen kuvasta kouluttamalla Cascade-luokitinta. Tässä opetusohjelmassa käytämme luokittelua nimeltä “haarcascade_frontalface_default.xml”, joka tunnistaa kasvot edestä. Nähdään