Sadržaj:

Prepoznavanje lica i identifikacija - Arduino Face ID pomoću OpenCV Pythona i Arduina .: 6 koraka
Prepoznavanje lica i identifikacija - Arduino Face ID pomoću OpenCV Pythona i Arduina .: 6 koraka

Video: Prepoznavanje lica i identifikacija - Arduino Face ID pomoću OpenCV Pythona i Arduina .: 6 koraka

Video: Prepoznavanje lica i identifikacija - Arduino Face ID pomoću OpenCV Pythona i Arduina .: 6 koraka
Video: Face Recognition Using Python, Keras, OpenCV & Tensorflow| Recognize Face in Real-time Video Streams 2024, Novembar
Anonim
Image
Image

Prepoznavanje lica AKA Face ID jedna je od najvažnijih karakteristika mobilnih telefona u današnje vrijeme.

Dakle, imao sam pitanje "mogu li imati face ID za svoj Arduino projekt" i odgovor je da …

Moje putovanje je počelo ovako:

Korak 1: Pristup web kameri

korak 2: Identifikacija lica.

korak 3: Prikupljanje podataka

Korak 4: Obuka

korak 5: Prepoznavanje lica

korak 6: Programiranje Arduina

Objasniću sve korake u nastavku. Nadam se da će vam ovo pomoći.

Korak 1: Pristup web kameri

Pristup web kameri
Pristup web kameri

Prvi korak za prepoznavanje lica bio je pristup kameri ili računarskom vidu. Budući da je Indija u karantinu, najjeftinije rješenje koje sam pronašao bilo je korištenje web kamere mojih računara kojoj sam imao pristup s programom python koristeći openCV modul.

Možda mislite da je OpenCV, zar ne?

OpenCV (Open Source Computer Vision Library) je biblioteka softvera za računarsku viziju i mašinsko učenje otvorenog koda. OpenCV je izgrađen da pruži zajedničku infrastrukturu za aplikacije računarskog vida i da ubrza upotrebu percepcije mašina u komercijalnim proizvodima.

Ako je Opencv instaliran na vašem računaru, onda ste spremni. Ako ne, slijedite ovaj korak.

otvorite naredbeni redak i upišite "pip install opencv".

Upozorenje: Možda ćete dobiti grešku jer "'pip' nije prepoznat kao interna ili eksterna naredba". za koje trebate dodati putanju vaše pip instalacije u vašu sistemsku varijablu PATH. Prođite kroz ovaj post, moglo bi vam pomoći.

stackoverflow.com/questions/23708898/pip-i…

Nakon što je OpenCV instaliran, dobro je da krenemo … Da provjerite je li pravilno instaliran, otvorite Python interpreter i uvezite biblioteku. Pogledajte gornju sliku koja bi trebala biti vaš izlaz.

Preuzmite python datoteku "AccessTo_webcam.py" i pokrenite je. Tamo sam dao sve potrebne komentare.

Eto, sad imate pristup web kameri. Dobro urađeno. pređimo na korak 2.

Korak 2: Identifikacija lica

Identifikacija lica
Identifikacija lica

uz pomoć istog OpenCV modula moramo identificirati postoji li lice na video streamu ili ne.

OpenCV nudi metodu obuke ili unaprijed obučene modele koji se nazivaju Cascade Classifier. Unaprijed obučeni modeli nalaze se u mapi podataka u instalaciji OpenCV. Dajem tu datoteku, samo je preuzmite i postavite u fasciklu vašeg projekta. Fascikla u kojoj je pohranjena datoteka "AccessTo_webcam.py". Ako to niste napravili, učinite to.

Preuzmite "haarcascade_frontalface_default" i postavite ga u glavnu fasciklu projekta.

Preuzmite "Face_identification.py" i postavite ga u glavnu fasciklu projekta. Sva objašnjenja su navedena u njemu.

Sada možete prepoznati lica u video streamu. Pa pređimo na korak 3.

Korak 3: Prikupljanje podataka

Prikupljanje podataka
Prikupljanje podataka

Da bismo prepoznali lica, moramo trenirati naš python program. Za šta su nam potrebni neki podaci.

Prikupljanje podataka je najlakši korak u ovom projektu. stvorite mapu pod nazivom "image_data" u vašoj glavnoj mapi projekta. Unutar mape "image_data" stvorite neke dodatne mape s imenom osobe u koje ćemo pohraniti podatke. na primjer:

U mapi "image_data" stvorio sam još dvije mape pod nazivom "HRK" i "Yahiya". kako je prikazano na gornjoj slici.

Sada nastavite sa stvaranjem vlastitih mapa i dajte im ime.

Nakon što se mape stvore, počnite prikupljati slike te određene osobe. Preporučujem da prikupite gotovo 20 slika po osobi. Također možete dodati još slika, ali pazite da podaci prikupljeni za sve osobe sadrže isti broj slika. Pomaže u postizanju tačnosti.

to je to sad idemo na korak 4.

Korak 4: Obuka

Ukratko, proći ćemo kroz sve mape i slike koje se nalaze u mapi "image_data" i stvorit ćemo rječnik koji će sadržavati ID oznake i odgovarajući naziv. Istovremeno ćemo učitati sliku kako bismo otkrili lice na svakoj slici koju nazivamo "regija interesa" i stvorit ćemo ".yml" datoteku koja sadrži te podatke.

Pod pretpostavkom da imate prikupljene podatke za osobu X i Y.

označit ćemo osobu X kao 1 što će biti njegov ID oznake i ime će biti sam X. Učitavamo sliku kako bismo pronašli njegovo lice, tj. Regiju od interesa i dodamo podatke na popis.

slični koraci će se slijediti za osobu Y. I na kraju, mi ćemo stvoriti ".yml" datoteku.

Preuzmite datoteku "face_trainer.py" i postavite je u glavnu fasciklu projekta. Sva potrebna objašnjenja nalaze se u samoj datoteci.

Kada pokrenete ovaj program, on će proći kroz sve slike i stvoriti dvije datoteke pod nazivom "labels.pickle" i "trainner.yml". Sada ste obučili svoj model. pa idemo na korak 5.

Korak 5: Prepoznavanje lica

Prepoznavanje lica
Prepoznavanje lica

Ako ste pravilno prošli sve korake, možda ste stvorili vlastite obučene podatke. Sada ćemo te podatke koristiti za prepoznavanje lica.

U osnovi ćemo učitati naše obučene modele u python datoteku, pristupiti našoj web kameri i identificirati lica u video streamu te napraviti usporedbu ili predviđanje između trenutnog lica koje je identificirano u video streamu i modela koji je obučen. ako se podaci podudaraju, onda kažemo da je osoba prepoznata, to je tako jednostavno …

Preuzmite "face_recognise.py" i pokrenite ga. U njemu se nalaze sve potrebne informacije. Sada je vaše lice možda prepoznato. ako točnost nije dobra, pokušajte ažurirati podatke. ako ste dobro krenuli, idemo na korak 6/

Korak 6: Programiranje Arduina

Posljednji i posljednji korak je programiranje Arduina i pružanje načina komunikacije između pythona i Arduina. Za komunikaciju sam koristio "serijsku komunikaciju". Prođite kroz videozapis koji sam gore povezao kako biste saznali kako funkcionira serijska komunikacija i kako biste je uspostavili. Sve potrebne datoteke pronaći ćete u opisu videozapisa.

Ako ste pregledali video, dopustite mi da vam objasnim šta sam uradio. Kada se moje lice prepozna, tada je oznaka ID -a 2. Nakon što je ID oznake 2, poslat ću '1' kao serijske podatke na svoj Arduino. Što će uključiti moj krug LED tragača. Ako je ID naljepnice različit od 2, poslat ću '0' kao serijske podatke, što će isključiti moj krug LED tragača.

Preuzmite datoteku "ard_chaser.ino". To je jednostavan LED chaser program koji koristi serijsku komunikaciju.

Istovremeno preuzmite "face_recogniser1.py" koji će uspostaviti serijsku komunikaciju između Arduina i python programa.

Eto ti. Nadam se da ste naučili nešto novo. Pretplatite se na moj youtube kanal za više stvari vezanih za python i Arduino. Podijelite ovo ako vam se svidjelo. Nastavite da podržavate.

Hvala ti.

Preporučuje se: