Satura rādītājs:

Sejas atpazīšana un identifikācija - Arduino sejas ID, izmantojot OpenCV Python un Arduino .: 6 soļi
Sejas atpazīšana un identifikācija - Arduino sejas ID, izmantojot OpenCV Python un Arduino .: 6 soļi

Video: Sejas atpazīšana un identifikācija - Arduino sejas ID, izmantojot OpenCV Python un Arduino .: 6 soļi

Video: Sejas atpazīšana un identifikācija - Arduino sejas ID, izmantojot OpenCV Python un Arduino .: 6 soļi
Video: CS50 2015 - Week 8, continued 2024, Jūnijs
Anonim
Image
Image

Sejas atpazīšana AKA sejas ID ir viena no svarīgākajām mūsdienu mobilo tālruņu funkcijām.

Tātad, man bija jautājums "vai man var būt sejas ID savam Arduino projektam", un atbilde ir jā …

Mans ceļojums sākās šādi:

1. darbība. Piekļuve tīmekļa kamerai

2. darbība: sejas identificēšana.

3. darbība: datu vākšana

4. solis: apmācība

5. darbība: sejas atpazīšana

solis: Arduino programmēšana

Tālāk es izskaidrošu visas darbības. Es ceru, ka tas jums palīdzēs.

1. darbība. Piekļuve tīmekļa kamerai

Piekļuve tīmekļa kamerai
Piekļuve tīmekļa kamerai

Sejas atpazīšanas pirmais solis bija piekļuve kamerai vai datora redzei. Tā kā Indija ir slēgta, lētākais risinājums, ko atradu, bija izmantot manu datoru tīmekļa kameru, kurai man bija piekļuve, izmantojot python programmu, izmantojot openCV moduli.

Jūs, iespējams, domājat, kas ir OpenCV, vai ne?

OpenCV (Open Source Computer Vision Library) ir atvērtā pirmkoda datora redzes un mašīnmācīšanās programmatūras bibliotēka. OpenCV tika izveidots, lai nodrošinātu kopēju infrastruktūru datoru redzes lietojumiem un paātrinātu mašīnu uztveres izmantošanu komerciālos produktos.

Ja jūsu datorā ir instalēta programma Opencv, varat sākt darbu. Ja nē, tad izpildiet šo soli.

atveriet komandu uzvedni un ierakstiet "pip install opencv".

Brīdinājums: Jūs varat saņemt kļūdu, jo "pip" netiek atpazīta kā iekšēja vai ārēja komanda. kuram PATH sistēmas mainīgajam jāpievieno pip instalācijas ceļš. Pārlūkojiet šo ziņu, tā var jums palīdzēt.

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

Kad OpenCV ir instalēts, mēs varam doties … Lai pārbaudītu, vai tas ir pareizi instalēts, atveriet savu Python tulku un importējiet bibliotēku. Skatiet iepriekš redzamo attēlu, kuram vajadzētu būt jūsu iznākumam.

Lejupielādējiet pitona failu "AccessTo_webcam.py" un palaidiet to. Tur esmu sniedzis visus nepieciešamos komentārus.

Lūk, tagad jums ir piekļuve tīmekļa kamerai. Labi padarīts. turpināsim 2. darbību.

2. darbība. Sejas identifikācija

Sejas identifikācija
Sejas identifikācija

ar tā paša OpenCV moduļa palīdzību mums ir jānosaka, vai video straumē ir vai nav sejas.

OpenCV nodrošina apmācības metodi vai iepriekš apmācītus modeļus, ko sauc par kaskādes klasifikatoru. Iepriekš apmācītie modeļi atrodas OpenCV instalācijas datu mapē. Es nodrošinu šo failu, vienkārši lejupielādējiet to un ievietojiet to projekta mapē. Mape, kurā tiek saglabāts fails "AccessTo_webcam.py". Ja neesat to izveidojis, dariet to.

Lejupielādējiet "haarcascade_frontalface_default" un ievietojiet to galvenajā projekta mapē.

Lejupielādējiet “Face_identifikācija.py” un ievietojiet to projekta galvenajā mapē. Tajā ir sniegts viss skaidrojums.

Tagad jūs varat identificēt sejas video straumē. Tātad, pāriesim uz 3. darbību.

3. darbība: datu vākšana

Datu vākšana
Datu vākšana

Lai atpazītu sejas, mums ir jāapmāca mūsu python programma. Par ko mums ir nepieciešami daži dati.

Datu vākšana ir vienkāršākais solis šajā projektā. savā galvenajā projekta mapē izveidojiet mapi ar nosaukumu "image_data". Mapes "image_data" iekšpusē izveidojiet dažas papildu mapes ar personas vārdu, kurā mēs saglabāsim datus. piemēram:

Mapē "image_data" esmu izveidojis vēl divas mapes ar nosaukumu "HRK" un "Yahiya". kā parādīts iepriekš redzamajā attēlā.

Tagad turpiniet izveidot savas mapes un nosauciet tās.

Kad mapes ir izveidotas, sāciet vākt šīs konkrētās personas attēlus. Es iesaku savākt gandrīz 20 attēlus vienai personai. Varat arī pievienot vairāk attēlu, taču pārliecinieties, ka par visām personām savāktajos datos ir vienāds attēlu skaits. Tas palīdz nodrošināt precizitāti.

tas ir viss, tagad pāriesim uz 4. darbību.

4. solis: apmācība

Īsumā mēs apskatīsim visas mapes un attēlus, kas atrodas mapē "image_data", un izveidosim vārdnīcu, kurā būs etiķetes ID un atbilstošais nosaukums. Vienlaikus mēs ielādēsim attēlu, lai atklātu seju katrā attēlā, ko saucam par "interesējošo reģionu", un izveidosim ".yml" failu, kas satur šo informāciju.

Pieņemot, ka jums ir savākti dati par personu X un Y.

mēs atzīmēsim personu X kā 1, kas būs viņa etiķetes ID, un vārds būs pats X. Mēs ielādējam attēlu, lai atrastu viņa seju, ti, interesējošo reģionu, un pievienojam datus sarakstam.

līdzīgas darbības tiks veiktas personai Y. Un visbeidzot, mēs izveidosim ".yml" failu.

Lejupielādējiet "face_trainer.py" failu un ievietojiet to galvenajā projekta mapē. Viss nepieciešamais skaidrojums ir sniegts pašā failā.

Palaižot šo programmu, tā izskatīs visus attēlus un izveidos divus failus ar nosaukumu "labels.pickle" un "trainner.yml". Tagad jūs esat apmācījis savu modeli. tāpēc turpināsim 5. darbību.

5. darbība: sejas atpazīšana

Sejas atpazīšana
Sejas atpazīšana

Ja esat pareizi veicis visas darbības, iespējams, esat izveidojis savus apmācītos datus. Tagad mēs izmantosim šos datus sejas atpazīšanai.

Būtībā mēs ielādēsim mūsu apmācītos modeļus python failā, piekļūsim mūsu tīmekļa kamerai un identificēsim sejas video straumē, kā arī salīdzināsim vai prognozēsim pašreizējo seju, kas ir identificēta video straumē, un apmācīto modeli. ja dati ir saskaņoti, mēs sakām, ka persona ir atpazīta, tas ir tik vienkārši …

Lejupielādējiet “face_recognise.py” un palaidiet to. Tajā ir sniegta visa nepieciešamā informācija. Tagad jūsu seja, iespējams, tika atpazīta. ja precizitāte nav laba, mēģiniet atjaunināt datus. ja jums viss ir kārtībā, pārejiet pie 6. darbības/

6. solis: Arduino programmēšana

Pēdējais un pēdējais solis ir programmēt Arduino un nodrošināt saziņas veidu starp python un Arduino. Saziņai es izmantoju "Sērijas komunikāciju". Pārlūkojiet videoklipu, kuru esmu saistījis iepriekš, lai uzzinātu, kā darbojas seriālā komunikācija, un izveido to. Visus nepieciešamos failus atradīsit video aprakstā.

Ja esat izlasījis videoklipu, ļaujiet man jums paskaidrot, ko es darīju. Kad mana seja tiek atpazīta, marķējuma ID ir 2. Kad etiķetes ID ir 2, es nosūtīšu “1” kā sērijas datus savam Arduino. Kas ieslēgs manu LED mednieku ķēdi. Ja etiķetes ID nav 2, es kā sērijas datus nosūtīšu “0”, kas izslēgs manu gaismas diodes ķēdi.

Lejupielādējiet failu "ard_chaser.ino". Tā ir vienkārša LED meklētāja programma, kas izmanto seriālo komunikāciju.

Vienkārši lejupielādējiet "face_recogniser1.py", kas izveidos sērijveida komunikāciju starp Arduino un python programmu.

Lūdzu. Es ceru, ka jūs esat iemācījušies kaut ko jaunu. Abonējiet manu YouTube kanālu, lai iegūtu vairāk informācijas par python un Arduino. Dalieties ar šo, ja jums tas patika. Turpiniet atbalstīt.

Paldies.

Ieteicams: