Innholdsfortegnelse:

Ansiktsgjenkjenning og identifikasjon - Arduino Face ID ved hjelp av OpenCV Python og Arduino .: 6 trinn
Ansiktsgjenkjenning og identifikasjon - Arduino Face ID ved hjelp av OpenCV Python og Arduino .: 6 trinn

Video: Ansiktsgjenkjenning og identifikasjon - Arduino Face ID ved hjelp av OpenCV Python og Arduino .: 6 trinn

Video: Ansiktsgjenkjenning og identifikasjon - Arduino Face ID ved hjelp av OpenCV Python og Arduino .: 6 trinn
Video: Face Recognition Using Python, Keras, OpenCV & Tensorflow| Recognize Face in Real-time Video Streams 2024, Juli
Anonim
Image
Image

Ansiktsgjenkjenning AKA ansikts -ID er en av de viktigste funksjonene på mobiltelefoner i dag.

Så jeg hadde et spørsmål "kan jeg ha en ansikts -ID for mitt Arduino -prosjekt" og svaret er ja …

Reisen min startet som følger:

Trinn 1: Tilgang til webkamera

trinn 2: Ansiktsidentifikasjon.

trinn 3: Datainnsamling

Trinn 4: Trening

trinn 5: Ansiktsgjenkjenning

trinn 6: Programmering av Arduino

Jeg vil forklare alle trinnene nedenfor. Jeg håper at dette vil hjelpe deg.

Trinn 1: Tilgang til webkamera

Tilgang til webkamera
Tilgang til webkamera

Det første trinnet for ansiktsgjenkjenning var å ha tilgang til et kamera eller et datasyn. Siden India er under lockdown er den billigste løsningen jeg fant å bruke datamaskinens webkamera som jeg hadde tilgang til med et python -program ved hjelp av openCV -modul.

Du tenker kanskje hva OpenCV er, ikke sant?

OpenCV (Open Source Computer Vision Library) er et bibliotek med åpen kildekode for datavisning og maskinlæring. OpenCV ble bygget for å gi en felles infrastruktur for applikasjoner for datasyn og for å akselerere bruken av maskinoppfatning i kommersielle produkter.

Hvis Opencv er installert på datamaskinen din, er du i gang. Hvis ikke, følg dette trinnet.

åpne ledeteksten og skriv "pip install opencv".

Advarsel: Du kan få en feil ettersom "pip" ikke gjenkjennes som en intern eller ekstern kommando ". som du må legge til banen til pip -installasjonen din i PATH -systemvariabelen. Gå gjennom dette innlegget, det kan hjelpe deg.

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

Når OpenCV er installert, er vi i gang … For å sjekke om den er riktig installert, åpne Python -tolken din og importer biblioteket. Se bildet ovenfor som skal være utgangen din.

Last ned python -filen "AccessTo_webcam.py" og kjør den. Jeg har gitt alle nødvendige kommentarer der.

Nå har du tilgang til webkameraet. Bra gjort. la oss gå videre til trinn 2.

Trinn 2: Ansiktsidentifikasjon

Ansiktsidentifikasjon
Ansiktsidentifikasjon

ved hjelp av den samme OpenCV -modulen må vi identifisere om det er et ansikt på videostrømmen eller ikke.

OpenCV tilbyr en opplæringsmetode eller forhåndsutdannede modeller kalt Cascade Classifier. De forhåndsutdannede modellene ligger i datamappen i OpenCV-installasjonen. Jeg gir den filen, bare last den ned og legg den i prosjektmappen. Mappen der "AccessTo_webcam.py" -filen er lagret. Hvis du ikke har opprettet en så gjør det.

Last ned "haarcascade_frontalface_default" og legg den i hovedprosjektmappen.

Last ned "Face_identification.py" og legg den i hovedprosjektmappen. All forklaring er gitt i den.

Nå kan du identifisere ansiktene i en videostrøm. Så la oss gå videre til trinn 3.

Trinn 3: Datainnsamling

Datainnsamling
Datainnsamling

For å gjenkjenne ansiktene må vi trene vårt pythonprogram. Som vi trenger noen data for.

Datainnsamling er heller det enkleste trinnet i dette prosjektet. opprett en mappe med navnet "image_data" i hovedprosjektmappen. I mappen "image_data" kan du lage noen ekstra mapper med personens navn, der vi vil lagre dataene. for eksempel:

I mappen "image_data" har jeg opprettet ytterligere to mapper som heter "HRK" og "Yahiya". som vist på bildet ovenfor.

Lag nå dine egne mapper og navngi dem.

Når mappene er opprettet, kan du begynne å samle bilder av den bestemte personen. Jeg anbefaler å samle nesten 20 bilder per person. Du kan også legge til flere bilder, men sørge for at data samlet for alle personene inneholder samme antall bilder. Det hjelper å gi nøyaktighet.

det er det nå la oss gå videre til trinn 4.

Trinn 4: Trening

Kort fortalt går vi gjennom alle mappene og bildene som er tilstede i "image_data" -mappen og lager en ordbok som inneholder etikett -ID og det tilhørende navnet. Samtidig vil vi laste inn bildet for å oppdage ansiktet i hvert bilde som vi kaller det "Interessegruppe" og lage en ".yml" -fil som inneholder denne informasjonen.

Forutsatt at du har innsamlet data for person X og Y.

vi vil merke person X som 1 som vil være etikett -IDen hans og navnet vil være X selv. Vi laster inn bildet for å finne ansiktet hans, det vil si interesseområde og legger dataene til i en liste.

lignende trinn vil bli fulgt for person Y. Og til slutt vil vi lage en ".yml" -fil.

Last ned "face_trainer.py" -filen og legg den i hovedprosjektmappen. All nødvendig forklaring er gitt i selve filen.

Når du kjører dette programmet vil det gå gjennom alle bildene og opprette to filer som heter "labels.pickle" og "trainner.yml". Nå har du trent din egen modell. så la oss gå videre til trinn 5.

Trinn 5: Ansiktsgjenkjenning

Ansiktsgjenkjenning
Ansiktsgjenkjenning

Hvis du har gått igjennom alle trinnene ordentlig, kan det hende du har laget dine egne opplærte data. Nå skal vi bruke disse dataene til ansiktsgjenkjenning.

I utgangspunktet vil vi laste våre trente modeller inn i python -filen, få tilgang til webkameraet vårt, og identifisere Ansikter i videostrømmen og gjøre en sammenligning eller forutsigelse mellom det nåværende ansiktet som er identifisert i videostrømmen, og modellen som ble trent. hvis dataene blir matchet, sier vi at personen blir gjenkjent, at det er så enkelt …

Last ned "face_recognise.py" og kjør den. All nødvendig informasjon er gitt i den. Nå kan ansiktet ditt ha blitt gjenkjent. Hvis nøyaktigheten ikke er god, kan du prøve å oppdatere dataene. Hvis du er god til å gå, kan vi gå videre til trinn 6/

Trinn 6: Programmering av Arduino

Det siste og siste trinnet er å programmere Arduino, og å gi en kommunikasjonsmåte mellom python og Arduino. For kommunikasjon brukte jeg "Serial Communication". Gå gjennom videoen som jeg har koblet ovenfor for å finne ut hvordan seriell kommunikasjon fungerer og for å etablere en. Du finner alle nødvendige filer i videobeskrivelsen.

Hvis du har gått gjennom videoen, så la meg forklare deg hva jeg gjorde. Når ansiktet mitt blir gjenkjent, er etikett -ID -en 2. Når etikett -ID er 2, sender jeg '1' som serielle data til min Arduino. Som vil slå på LED -chaser -kretsen min. Hvis etikett -ID er annet enn 2, sender jeg '0' som serielle data, som vil slå av LED -chaser -kretsen min.

Last ned "ard_chaser.ino" -filen. Det er et enkelt LED chaser -program som bruker seriell kommunikasjon.

Last ned "face_recogniser1.py" på samme måte som vil etablere den serielle kommunikasjonen mellom Arduino og python -programmet.

Der går du. Jeg håper at du har lært noe nytt. Abonner på YouTube -kanalen min for flere ting relatert til python og Arduino. Del dette hvis du likte det. Fortsett å støtte.

Takk skal du ha.

Anbefalt: