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, Lipanj
Anonim
Image
Image

Prepoznavanje lica AKA Face ID jedna je od najvažnijih značajki 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: Trening

korak 5: Prepoznavanje lica

korak 6: Programiranje Arduina

Objasnit ć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čunalnom vidu. Budući da je Indija u blokadi, najjeftinije rješenje koje sam pronašao bilo je korištenje web kamere mojih računala kojoj sam imao pristup s programom python pomoću openCV modula.

Možda razmišljate što je OpenCV, zar ne?

OpenCV (Open Source Computer Vision Library) je biblioteka softvera za računalni vid i strojno učenje otvorenog koda. OpenCV je izgrađen kako bi pružio zajedničku infrastrukturu za aplikacije računalnog vida i ubrzao uporabu percepcije strojeva u komercijalnim proizvodima.

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

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

Upozorenje: Možda ćete dobiti pogrešku jer "'pip' nije prepoznat kao unutarnja ili vanjska naredba". za koje morate dodati put svoje instalacije pipa 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 ispravno instaliran, otvorite svoj Python interpreter i uvezite knjižnicu. 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 napravljeno. 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 s podacima u instalaciji OpenCV. Dajem tu datoteku, samo je preuzmite i stavite u mapu vašeg projekta. Mapa u kojoj je pohranjena datoteka "AccessTo_webcam.py". Ako to niste napravili, učinite to.

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

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

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

Korak 3: Prikupljanje podataka

Prikupljanje podataka
Prikupljanje podataka

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

Prikupljanje podataka je najlakši korak u ovom projektu. stvorite mapu pod nazivom "image_data" u 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". kao što je prikazano na gornjoj slici.

Sada naprijed stvorite vlastite mape i dajte im imena.

Nakon što se mape stvore, počnite prikupljati slike te određene osobe. Preporučujem prikupljanje 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 točnosti.

to je to sad idemo na korak 4.

Korak 4: Trening

Ukratko, proći ćemo kroz sve mape i slike koje se nalaze u mapi "image_data" i stvoriti rječnik koji će sadržavati ID oznake i odgovarajući naziv. Istodobno ćemo učitati sliku kako bismo otkrili lice na svakoj slici koju nazivamo "regija interesa" i stvorili ".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 njezin ID oznake, a ime će biti sam X. Učitavamo sliku kako bismo pronašli njegovo lice, tj. Regiju od interesa i dodamo podatke na popis.

slijediti će se koraci za osobu Y. I na kraju, stvorit ćemo ".yml" datoteku.

Preuzmite datoteku "face_trainer.py" i postavite je u glavnu mapu 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 istrenirali vlastiti 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 su navedene 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, te pružanje načina komunikacije između pythona i Arduina. Za komunikaciju sam koristio "Serijska komunikacija". Prođite kroz video zapis 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 što sam učinio. Kad moje lice bude prepoznato 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 programa python.

Izvoli. 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 podržavati.

Hvala vam.

Preporučeni: