Indholdsfortegnelse:

Ansigtsgenkendelse og identifikation - Arduino Face ID ved hjælp af OpenCV Python og Arduino .: 6 trin
Ansigtsgenkendelse og identifikation - Arduino Face ID ved hjælp af OpenCV Python og Arduino .: 6 trin

Video: Ansigtsgenkendelse og identifikation - Arduino Face ID ved hjælp af OpenCV Python og Arduino .: 6 trin

Video: Ansigtsgenkendelse og identifikation - Arduino Face ID ved hjælp af OpenCV Python og Arduino .: 6 trin
Video: Распознавание лиц с использованием Python, Keras, OpenCV и Tensorflow | Распознавание лиц в видеопотоках в реальном времени 2024, November
Anonim
Image
Image

Ansigtsgenkendelse AKA face ID er i dag en af de vigtigste funktioner på mobiltelefoner.

Så jeg havde et spørgsmål "kan jeg have et ansigt -id til mit Arduino -projekt", og svaret er ja …

Min rejse startede som følger:

Trin 1: Adgang til webcam

trin 2: Ansigtsidentifikation.

trin 3: Dataindsamling

Trin 4: Træning

trin 5: Ansigtsgenkendelse

trin 6: Programmering af Arduino

Jeg vil forklare alle trinene herunder. Jeg håber, at dette vil hjælpe dig.

Trin 1: Adgang til webcam

Adgang til webcam
Adgang til webcam

Det første trin for ansigtsgenkendelse var at have adgang til et kamera eller et computersyn. Da Indien er låst inde, var den billigste løsning, jeg fandt, at bruge min computers webcam, som jeg havde adgang til med et python -program ved hjælp af openCV -modul.

Du tænker måske, hvad der er OpenCV, ikke sandt?

OpenCV (Open Source Computer Vision Library) er et open-source computer vision og maskinlæringssoftwarebibliotek. OpenCV blev bygget til at levere en fælles infrastruktur til computer vision applikationer og for at fremskynde brugen af maskinopfattelse i kommercielle produkter.

Hvis Opencv er installeret på din computer, er du klar til at gå. Hvis ikke, følg dette trin.

åben kommandoprompt og skriv "pip install opencv".

Advarsel: Du får muligvis en fejl, da "'pip' ikke genkendes som en intern eller ekstern kommando". som du skal tilføje stien til din pipinstallation til din PATH -systemvariabel. Gennemgå dette indlæg, det kan hjælpe dig.

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

Når OpenCV er installeret, er vi klar til at gå … For at kontrollere, om den er korrekt installeret, skal du åbne din Python -tolk og importere biblioteket. Se billedet ovenfor, der skal være dit output.

Download python -filen "AccessTo_webcam.py" og kør den. Jeg har givet alle de nødvendige kommentarer der.

Der går du, Nu har du adgang til webcam. Godt klaret. lad os gå videre til trin 2.

Trin 2: Ansigtsidentifikation

Ansigtsidentifikation
Ansigtsidentifikation

ved hjælp af det samme OpenCV -modul skal vi identificere, om der er et ansigt på videostrømmen eller ej.

OpenCV giver en træningsmetode eller foruddannede modeller kaldet Cascade Classifier. De foruddannede modeller findes i datamappen i OpenCV-installationen. Jeg leverer den fil, bare download den og placer den i din projektmappe. Mappen, hvor filen "AccessTo_webcam.py" er gemt. Hvis du ikke har oprettet en, så gør det.

Download "haarcascade_frontalface_default" og placer det i hovedprojektmappen.

Download "Face_identification.py" og placer den i projektmappen. Al forklaringen findes i den.

Nu kan du identificere ansigterne i en videostream. Så lad os gå videre til trin 3.

Trin 3: Dataindsamling

Dataindsamling
Dataindsamling

For at genkende ansigterne skal vi træne vores python -program. Til hvilket vi har brug for nogle data.

Dataindsamling er snarere det nemmeste trin i dette projekt. opret en mappe med navnet "image_data" i din hovedprojektmappe. Inde i mappen "image_data" skal du oprette nogle ekstra mapper med personens navn, hvor vi vil gemme dataene. for eksempel:

I mappen "image_data" har jeg oprettet yderligere to mapper ved navn "HRK" og "Yahiya". som vist på billedet ovenfor.

Opret nu dine egne mapper, og navngiv dem.

Når mapperne er oprettet, skal du begynde at indsamle billeder af den pågældende person. Jeg anbefaler at samle næsten 20 billeder pr. Person. Du kan også tilføje flere billeder, men sørg for, at data indsamlet for alle personerne indeholder det samme antal billeder. Det hjælper med at give nøjagtighed.

det er det nu lad os gå videre til trin 4.

Trin 4: Træning

Kort fortalt går vi igennem alle de mapper og billeder, der findes i mappen "image_data" og opretter en ordbog, der indeholder etiket -id'et og det tilsvarende navn. Samtidig indlæser vi billedet for at registrere ansigtet i hvert billede, som vi kalder det "Interessegruppe" og opretter en ".yml" -fil, der indeholder disse oplysninger.

Forudsat at du har indsamlet data for person X og Y.

vi vil mærke person X som 1, hvilket vil være hans etiket -ID og navn vil være X selv. Vi indlæser billedet for at finde hans ansigt, dvs. område af interesse og tilføjer dataene til en liste.

lignende trin vil blive fulgt for person Y. Og endelig vil vi oprette en ".yml" -fil.

Download filen "face_trainer.py", og anbring den i projektmappen. Al den nødvendige forklaring findes i selve filen.

Når du kører dette program, går det igennem alle billederne og opretter to filer med navnet "labels.pickle" og "trainner.yml". Nu har du trænet din egen model. så lad os gå videre til trin 5.

Trin 5: Ansigtsgenkendelse

Ansigtsgenkendelse
Ansigtsgenkendelse

Hvis du har gennemgået alle trin korrekt, har du muligvis oprettet dine egne uddannede data. Nu vil vi bruge disse data til ansigtsgenkendelse.

Grundlæggende vil vi indlæse vores uddannede modeller i python -filen, få adgang til vores webcam og identificere ansigter i videostrømmen og foretage en sammenligning eller forudsigelse mellem det aktuelle ansigt, der er identificeret i videostrømmen, og den model, der blev trænet. hvis dataene matches, siger vi, at personen genkendes, at det er lige så enkelt …

Download "face_recognise.py" og kør det. Alle nødvendige oplysninger findes i den. Nu kan dit ansigt være blevet genkendt. hvis nøjagtigheden ikke er god, så prøv at opdatere dataene. Hvis du er klar til at gå, lad os gå videre til trin 6/

Trin 6: Programmering af Arduino

Det sidste og sidste trin er programmering af Arduino, og for at give en kommunikationsform mellem python og Arduino. Til kommunikation brugte jeg "Seriel kommunikation". Gå gennem videoen, som jeg har linket ovenfor for at finde ud af, hvordan seriel kommunikation fungerer, og for at etablere en. Du finder alle de nødvendige filer i videobeskrivelsen.

Hvis du har gennemgået videoen, så lad mig forklare dig, hvad jeg gjorde. Når mit ansigt genkendes, er det angivne label -ID 2. Når label -ID er 2 sender jeg '1' som serielle data til min Arduino. Hvilket vil tænde mit LED chaser kredsløb. Hvis etiket -ID er andet end 2, sender jeg '0' som serielle data, som vil slukke for mit LED -chaser -kredsløb.

Download filen "ard_chaser.ino". Det er et enkelt LED chaser -program, der bruger seriel kommunikation.

Download simuleret "face_recogniser1.py", der etablerer den serielle kommunikation mellem Arduino og python -programmet.

Værsgo. Jeg håber, at du har lært noget nyt. Abonner på min youtube -kanal for flere ting relateret til python og Arduino. Del dette, hvis du kunne lide det. Bliv ved med at støtte.

Tak skal du have.

Anbefalede: