- Preduvjeti
- Kako prepoznavanje lica funkcionira s OpenCV-om
- Otkrivanje lica pomoću kaskadnih klasifikatora u OpenCV-u
Prepoznavanje lica postaje sve popularnije i većina nas već ga koristi, a da ni ne sluti. Bilo da se radi o jednostavnom prijedlogu Facebook oznaka ili Snapchat filtru ili naprednom sigurnosnom nadzoru zračne luke, prepoznavanje lica već je učinilo svoju čaroliju. Kina je u školama počela koristiti prepoznavanje lica za praćenje pohađanja i ponašanja učenika. Maloprodajne prodavaonice počele su prepoznavanjem lica kategorizirati svoje kupce i izolirati ljude s poviješću prijevara. S puno više promjena koje su u tijeku, nema sumnje da će se ova tehnologija u skoroj budućnosti vidjeti svugdje.
U ovom uputstvu naučit ćemo kako možemo izgraditi vlastiti sustav prepoznavanja lica pomoću OpenCV knjižnice na Raspberry Pi. Prednost instaliranja ovog sustava na prijenosni Raspberry Pi je ta što ga možete instalirati bilo gdje da bi radio kao nadzorni sustav. Kao i svi sustavi za prepoznavanje lica, udžbenik će uključivati dvije python skripte, jedna je program Trainer koji će analizirati skup fotografija određene osobe i stvoriti skup podataka (YML datoteka). Drugi program je program Recognizerkoja otkriva lice, a zatim koristi ovu YML datoteku za prepoznavanje lica i spominjanje imena osobe. Oba programa o kojima ćemo ovdje razgovarati su za Raspberry Pi (Linux), ali također će raditi i na Windows računalima s vrlo malim promjenama. Već imamo seriju vodiča za početnike za početak rada s OpenCV-om, sve vodiče za OpenCV možete provjeriti ovdje.
Preduvjeti
Kao što je ranije rečeno, koristit ćemo knjižnicu OpenCV za otkrivanje i prepoznavanje lica. Stoga obavezno instalirajte OpenCV Library na Pi prije nego nastavite s ovim vodičem. Također napajajte svoj Pi 2A adapterom i povežite ga s monitorom zaslona putem HDMI kabela jer nećemo moći dobiti video izlaz putem SSH-a.
Također neću objašnjavati kako točno radi OpenCV, ako ste zainteresirani za učenje obrade slika, pogledajte ove osnove OpenCV-a i napredne vodiče za obradu slika. Također možete naučiti o konturama, otkrivanju mrlja itd. U ovom vodiču za segmentaciju slika.
Kako prepoznavanje lica funkcionira s OpenCV-om
Prije nego što započnemo, važno je shvatiti da su prepoznavanje lica i prepoznavanje lica dvije različite stvari. U prepoznavanju lica otkriva se samo lice osobe, softver neće imati ideju tko je ta osoba. U prepoznavanju lica softver neće prepoznati samo lice već će prepoznati i osobu. Sada bi trebalo biti jasno da moramo izvršiti prepoznavanje lica prije izvođenja prepoznavanja lica. Ne bih mogao objasniti kako OpenCV točno otkriva lice ili bilo koji drugi objekt. Dakle, ako ste znatiželjni da možete slijediti ovaj vodič za otkrivanje predmeta.
Video feed s web kamere nije ništa drugo nego dugačak niz fotografija koje se ažuriraju jedna za drugom. Svaka od tih slika je samo zbirka piksela različitih vrijednosti sastavljenih na svom položaju. Pa kako program može prepoznati lice iz tih piksela i dalje prepoznati osobu u njemu? Iza njega stoji mnogo algoritama i pokušaj objašnjenja izvan je dosega ovog članka, ali budući da koristimo biblioteku OpenCV vrlo je jednostavno izvršiti prepoznavanje lica bez dubljeg ulaska u koncepte
Otkrivanje lica pomoću kaskadnih klasifikatora u OpenCV-u
Samo ako uspijemo otkriti lice, moći ćemo ga prepoznati ili zapamtiti. Za otkrivanje objekta poput lica OpenCV koristi nešto što se naziva Klasifikatori. Ovi su klasifikatori unaprijed obučeni skup podataka (XML datoteka) koji se mogu koristiti za otkrivanje određenog objekta u našem slučaju lica. Ovdje možete saznati više o klasifikatorima prepoznavanja lica. Osim otkrivanja lica, klasifikatori mogu otkriti i druge predmete poput nosa, očiju, registarske tablice vozila, osmijeha itd. Popis klasifikatora slučajeva možete preuzeti iz ZIP datoteke u nastavku
Klasifikatori za otkrivanje objekata u Pythonu
OpenCV vam također omogućuje stvaranje vlastitog klasifikatora koji se može koristiti za otkrivanje bilo kojeg drugog objekta na slici treniranjem vašeg kaskadnog klasifikatora. U ovom uputstvu koristit ćemo klasifikator nazvan "haarcascade_frontalface_default.xml" koji će otkriti lice s prednjeg položaja. Vidjet ćemo
