Kazalo:

Prepoznavanje obrazov in identifikacija - Arduino Face ID z uporabo OpenCV Python in Arduino .: 6 korakov
Prepoznavanje obrazov in identifikacija - Arduino Face ID z uporabo OpenCV Python in Arduino .: 6 korakov

Video: Prepoznavanje obrazov in identifikacija - Arduino Face ID z uporabo OpenCV Python in Arduino .: 6 korakov

Video: Prepoznavanje obrazov in identifikacija - Arduino Face ID z uporabo OpenCV Python in Arduino .: 6 korakov
Video: Как из 3-х вещей создать 3 образа? | Ольга Чистова 2024, Julij
Anonim
Image
Image

Prepoznavanje obraza AKA Face ID je danes ena najpomembnejših funkcij mobilnih telefonov.

Tako sem imel vprašanje "ali lahko dobim ID obraza za svoj projekt Arduino" in odgovor je pritrdilen …

Moje potovanje se je začelo takole:

1. korak: Dostop do spletne kamere

korak 2: Identifikacija obraza.

korak 3: Zbiranje podatkov

4. korak: Usposabljanje

5. korak: Prepoznavanje obrazov

korak 6: Programiranje Arduina

Spodaj bom razložil vse korake. Upam, da vam bo to pomagalo.

Korak: Dostop do spletne kamere

Dostop do spletne kamere
Dostop do spletne kamere

Prvi korak za prepoznavanje obrazov je bil dostop do kamere ali računalniškega vida. Ker je Indija v zaporah, je bila najcenejša rešitev, ki sem jo našel, uporaba spletne kamere svojih računalnikov, do katere sem imel dostop s programom python z modulom openCV.

Morda razmišljate, kaj je OpenCV, kajne?

OpenCV (odprtokodna knjižnica računalniškega vida) je odprtokodna knjižnica računalniškega vida in strojnega učenja. OpenCV je bil zgrajen za zagotavljanje skupne infrastrukture za aplikacije računalniškega vida in za pospešitev uporabe zaznavanja strojev v komercialnih izdelkih.

Če je Opencv nameščen v vašem računalniku, potem ste pripravljeni. Če ne, sledite temu koraku.

odprite ukazni poziv in vnesite "pip install opencv".

Opozorilo: Morda boste dobili napako, saj "" pip "ni prepoznan kot notranji ali zunanji ukaz". za katero morate v sistemsko spremenljivko PATH dodati pot namestitve pipa. Poglejte to objavo, morda vam bo v pomoč.

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

Ko je OpenCV nameščen, smo pripravljeni … Če želite preveriti, ali je pravilno nameščen, odprite svoj tolmač Python in uvozite knjižnico. Oglejte si zgornjo sliko, ki bi morala biti vaš izhod.

Prenesite datoteko python "AccessTo_webcam.py" in jo zaženite. Tam sem dal vse potrebne pripombe.

Evo, zdaj imate dostop do spletne kamere. Dobro opravljeno. pojdimo na korak 2.

2. korak: Prepoznavanje obrazov

Identifikacija obraza
Identifikacija obraza

s pomočjo istega modula OpenCV moramo ugotoviti, ali je na videotoku obraz ali ne.

OpenCV ponuja metodo usposabljanja ali vnaprej usposobljene modele, imenovane Cascade Classifier. Vnaprej usposobljeni modeli se nahajajo v podatkovni mapi v namestitvi OpenCV. Zagotavljam to datoteko, samo jo prenesite in postavite v mapo projekta. Mapa, v kateri je shranjena datoteka "AccessTo_webcam.py". Če ga niste ustvarili, to storite.

Prenesite "haarcascade_frontalface_default" in jo postavite v glavno mapo projekta.

Prenesite »Face_identification.py« in ga postavite v glavno mapo projekta. V njem je navedena vsa razlaga.

Zdaj lahko prepoznate obraze v video toku. Torej nadaljujmo s 3. korakom.

3. korak: Zbiranje podatkov

Zbiranje podatkov
Zbiranje podatkov

Če želimo prepoznati obraze, moramo trenirati naš program python. Za kar potrebujemo nekaj podatkov.

Zbiranje podatkov je najlažji korak v tem projektu. ustvarite mapo z imenom "image_data" v glavni mapi projekta. Znotraj mape "image_data" ustvarite nekaj dodatnih map z imenom osebe, kamor bomo shranili podatke. na primer:

V mapi "image_data" sem ustvaril še dve mapi z imenom "HRK" in "Yahiya". kot je prikazano na zgornji sliki.

Zdaj pa ustvarite lastne mape in jih poimenujte.

Ko so mape ustvarjene, začnite zbirati slike te določene osebe. Priporočam, da zberete skoraj 20 slik na osebo. Dodate lahko tudi več slik, vendar pazite, da podatki, zbrani za vse osebe, vsebujejo enako število slik. Pomaga zagotoviti natančnost.

to je to, pojdimo na korak 4.

4. korak: Usposabljanje

Na kratko bomo pregledali vse mape in slike, ki so v mapi "image_data", in ustvarili slovar, ki bo vseboval ID oznake in ustrezno ime. Hkrati bomo sliko naložili, da bomo zaznali obraz na vsaki sliki, ki ji pravimo "regija zanimanja", in ustvarili datoteko ".yml", ki vsebuje te podatke.

Ob predpostavki, da imate zbrane podatke za osebo X in Y.

osebo X bomo označili kot 1, kar bo njen ID oznake, ime pa bo samo X. Naložimo sliko, da najdemo njegov obraz, tj. Regijo, ki nas zanima, in podatke dodamo na seznam.

podobni koraki bodo izvedeni za osebo Y. Na koncu bomo ustvarili datoteko ".yml".

Prenesite datoteko "face_trainer.py" in jo postavite v glavno mapo projekta. Vsa potrebna pojasnila so navedena v sami datoteki.

Ko zaženete ta program, bo pregledal vse slike in ustvaril dve datoteki z imenom "labels.pickle" in "trainner.yml". Zdaj ste usposobili svoj model. pa pojdimo na korak 5.

5. korak: Prepoznavanje obrazov

Prepoznavanje obrazov
Prepoznavanje obrazov

Če ste pravilno opravili vse korake, ste morda ustvarili lastne izurjene podatke. Zdaj bomo te podatke uporabili za prepoznavanje obrazov.

V bistvu bomo svoje usposobljene modele naložili v datoteko python, dostopali do naše spletne kamere in identificirali obraze v videotoku ter naredili primerjavo ali napoved med trenutnim obrazom, ki je identificiran v video toku, in modelom, ki je bil usposobljen. če se podatki ujemajo, rečemo, da je oseba prepoznana, da je tako preprosto …

Prenesite »face_recognise.py« in ga zaženite. V njem so vse potrebne informacije. Zdaj je morda vaš obraz prepoznan. če natančnost ni dobra, poskusite posodobiti podatke. če ste v redu, pojdite na korak 6/

6. korak: Programiranje Arduina

Zadnji in zadnji korak je programiranje Arduina in zagotavljanje načina komunikacije med pythonom in Arduinom. Za komunikacijo sem uporabil "serijsko komunikacijo". Poiščite videoposnetek, ki sem ga povezal zgoraj, da ugotovite, kako deluje serijska komunikacija in jo vzpostavite. Vse potrebne datoteke boste našli v opisu videoposnetka.

Če ste pogledali video, naj vam razložim, kaj sem naredil. Ko moj obraz prepozna, je naveden ID nalepke 2. Ko je ID nalepke 2, bom poslal '1' kot serijske podatke v svoj Arduino. Ki bo vklopil moje vezje LED lovilca. Če je ID nalepke drugačen od 2, bom kot serijske podatke poslal '0', kar bo izklopilo moje vezje LED lovilca.

Prenesite datoteko "ard_chaser.ino". To je preprost program za lovljenje LED, ki uporablja serijsko komunikacijo.

Hitro prenesite "face_recogniser1.py", ki bo vzpostavil serijsko komunikacijo med Arduinom in programom python.

Izvolite. Upam, da ste se naučili kaj novega. Naročite se na moj youtube kanal za več stvari, povezanih s pythonom in Arduinom. Delite to, če vam je bilo všeč. Podpirajte še naprej.

Hvala vam.

Priporočena: