Turinys:

Veido atpažinimas ir identifikavimas - „Arduino“veido ID naudojant „OpenCV Python“ir „Arduino“.: 6 žingsniai
Veido atpažinimas ir identifikavimas - „Arduino“veido ID naudojant „OpenCV Python“ir „Arduino“.: 6 žingsniai

Video: Veido atpažinimas ir identifikavimas - „Arduino“veido ID naudojant „OpenCV Python“ir „Arduino“.: 6 žingsniai

Video: Veido atpažinimas ir identifikavimas - „Arduino“veido ID naudojant „OpenCV Python“ir „Arduino“.: 6 žingsniai
Video: LDmicro 4: Electronic Components (Microcontroller PLC Ladder Programming with LDmicro) 2024, Lapkritis
Anonim
Image
Image

Veido atpažinimas AKA veido ID yra viena iš svarbiausių šių dienų mobiliųjų telefonų funkcijų.

Taigi, man kilo klausimas „ar galiu turėti savo„ Arduino “projekto ID“, o atsakymas yra „taip“…

Mano kelionė prasidėjo taip:

1 veiksmas: prieiga prie internetinės kameros

2 žingsnis: veido atpažinimas.

3 žingsnis: duomenų rinkimas

4 žingsnis: mokymas

5 veiksmas: veido atpažinimas

6 veiksmas: „Arduino“programavimas

Toliau paaiškinsiu visus veiksmus. Tikiuosi, kad tai jums padės.

1 žingsnis: Prieiga prie kameros

Prieiga prie kameros
Prieiga prie kameros

Pirmasis veido atpažinimo žingsnis buvo turėti prieigą prie fotoaparato ar kompiuterio vizijos. Kadangi Indija yra užblokuota, pigiausias sprendimas, kurį radau, buvo naudoti kompiuterių internetinę kamerą, prie kurios turėjau prieigą, naudodami „python“programą, naudodamas „openCV“modulį.

Galbūt jūs galvojate, kas yra „OpenCV“, ar ne?

„OpenCV“(„Open Source Computer Vision Library“) yra atvirojo kodo kompiuterinės vizijos ir mašininio mokymosi programinės įrangos biblioteka. „OpenCV“buvo sukurta siekiant sukurti bendrą kompiuterinio matymo programų infrastruktūrą ir pagreitinti mašinų suvokimo naudojimą komerciniuose produktuose.

Jei „Opencv“yra įdiegta jūsų kompiuteryje, galite pradėti. Jei ne, atlikite šį žingsnį.

atidarykite komandų eilutę ir įveskite „pip install opencv“.

Įspėjimas: galite gauti klaidą, nes „pip“neatpažįstama kaip vidinė ar išorinė komanda “. prie kurio PATH sistemos kintamojo turite pridėti savo pip instaliacijos kelią. Peržiūrėkite šį įrašą, tai gali jums padėti.

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

Įdiegę „OpenCV“, galime pradėti… Norėdami patikrinti, ar jis tinkamai įdiegtas, atidarykite „Python“vertėją ir importuokite biblioteką. Žiūrėkite aukščiau esantį paveikslėlį, kuris turėtų būti jūsų rezultatas.

Atsisiųskite „Python“failą „AccessTo_webcam.py“ir paleiskite jį. Ten pateikiau visus būtinus komentarus.

Na, dabar jūs turite prieigą prie internetinės kameros. Šauniai padirbėta. pereikime prie 2 veiksmo.

2 veiksmas: veido atpažinimas

Veido identifikavimas
Veido identifikavimas

to paties „OpenCV“modulio pagalba turime nustatyti, ar vaizdo sraute yra veidas, ar ne.

„OpenCV“siūlo mokymo metodą arba iš anksto apmokytus modelius, vadinamus „Cascade Classifier“. Iš anksto apmokyti modeliai yra „OpenCV“diegimo duomenų aplanke. Aš siūlau tą failą tiesiog atsisiųsti ir įdėti į savo projekto aplanką. Aplankas, kuriame saugomas failas „AccessTo_webcam.py“. Jei to nesukūrėte, padarykite tai.

Atsisiųskite „haarcascade_frontalface_default“ir įdėkite jį į pagrindinį projekto aplanką.

Atsisiųskite „Face_identification.py“ir įdėkite jį į pagrindinį projekto aplanką. Jame pateikiamas visas paaiškinimas.

Dabar galite atpažinti veidus vaizdo įrašų sraute. Taigi pereikime prie 3 veiksmo.

3 žingsnis: duomenų rinkimas

Duomenų rinkimas
Duomenų rinkimas

Norėdami atpažinti veidus, turime išmokyti savo python programą. Tam mums reikia tam tikrų duomenų.

Duomenų rinkimas yra lengviausias šio projekto žingsnis. pagrindiniame projekto aplanke sukurkite aplanką pavadinimu „image_data“. Aplanko „image_data“viduje sukurkite keletą papildomų aplankų su asmens vardu, kuriame mes saugosime duomenis. pavyzdžiui:

Aplanke „image_data“sukūriau dar du aplankus, pavadintus „HRK“ir „Yahiya“. kaip parodyta aukščiau esančiame paveikslėlyje.

Dabar sukurkite savo aplankus ir pavadinkite juos.

Sukūrę aplankus, pradėkite rinkti konkretaus asmens atvaizdus. Aš rekomenduoju surinkti beveik 20 vaizdų vienam asmeniui. Taip pat galite pridėti daugiau vaizdų, tačiau pasirūpinkite, kad visų asmenų surinktuose duomenyse būtų tas pats vaizdų skaičius. Tai padeda užtikrinti tikslumą.

tai dabar pereikime prie 4 žingsnio.

4 žingsnis: mokymas

Trumpai tariant, mes peržiūrėsime visus aplankus ir vaizdus, esančius aplanke „image_data“, ir sukursime žodyną, kuriame bus etiketės ID ir atitinkamas pavadinimas. Tuo pačiu metu įkeliame vaizdą, kad aptiktų veidą kiekviename vaizde, kurį mes vadiname „dominančiu regionu“, ir sukursime „.yml“failą, kuriame yra ši informacija.

Darant prielaidą, kad turite duomenų apie asmenis X ir Y.

pažymėsime asmenį X kaip 1, kuris bus jo etiketės ID, o vardas - pats X. Įkeliame vaizdą, kad surastume jo veidą, ty dominantį regioną, ir pridedame duomenis prie sąrašo.

panašūs veiksmai bus atliekami asmeniui Y. Ir galiausiai sukursime failą „.yml“.

Atsisiųskite „face_trainer.py“failą ir įdėkite jį į pagrindinį projekto aplanką. Visi reikalingi paaiškinimai pateikiami tame pačiame faile.

Kai paleisite šią programą, ji peržiūrės visus vaizdus ir sukurs du failus pavadinimais „labels.pickle“ir „trainner.yml“. Dabar jūs išmokėte savo modelį. taigi pereikime prie 5 veiksmo.

5 veiksmas: veido atpažinimas

Veido atpažinimas
Veido atpažinimas

Jei tinkamai atlikote visus veiksmus, galbūt sukūrėte savo apmokytus duomenis. Dabar tuos duomenis naudosime veido atpažinimui.

Iš esmės mes įkelsime savo apmokytus modelius į „python“failą, pateksime į savo internetinę kamerą, vaizdo įrašo sraute nustatysime veidus ir palyginsime ar numatysime dabartinį vaizdo įrašo sraute nurodytą veidą ir apmokytą modelį. jei duomenys sutampa, sakome, kad asmuo yra atpažįstamas, tai yra taip paprasta …

Atsisiųskite „face_recognise.py“ir paleiskite ją. Jame pateikiama visa reikalinga informacija. Dabar jūsų veidas galėjo būti atpažintas. jei tikslumas nėra geras, pabandykite atnaujinti duomenis. jei viskas gerai, pereikime prie 6 veiksmo/

6 žingsnis: „Arduino“programavimas

Paskutinis ir paskutinis žingsnis yra „Arduino“programavimas ir bendravimo tarp python ir Arduino būdas. Bendravimui naudojau „Serial Communication“. Peržiūrėkite vaizdo įrašą, kurį susiejau aukščiau, kad sužinotumėte, kaip veikia serijinis ryšys ir jį sukuriate. Vaizdo įrašo apraše rasite visus reikalingus failus.

Jei peržiūrėjote vaizdo įrašą, leiskite man paaiškinti, ką aš padariau. Kai mano veidas atpažįstamas, pateikiamas etiketės ID yra 2. Kai etiketės ID bus 2, aš išsiųsiu „1“kaip serijos duomenis į savo „Arduino“. Kuris įjungs mano LED persekiojimo grandinę. Jei etiketės ID yra kitoks nei 2, aš atsiųsiu „0“kaip serijinius duomenis, kurie išjungs mano šviesos diodų grandinės grandinę.

Atsisiųskite failą „ard_chaser.ino“. Tai paprasta LED persekiojimo programa, naudojanti nuoseklųjį ryšį.

Tiesiog atsisiųskite „face_recogniser1.py“, kuris užmezgs serijinį ryšį tarp „Arduino“ir „python“programos.

Štai taip. Tikiuosi, kad sužinojote ką nors naujo. Prenumeruokite mano „YouTube“kanalą, kad gautumėte daugiau informacijos apie „python“ir „Arduino“. Pasidalinkite, jei jums tai patiko. Toliau palaikykite.

Ačiū.

Rekomenduojamas: