INHOUDSOPGAWE:

Gesigsherkenning en identifikasie - Arduino Face ID met behulp van OpenCV Python en Arduino .: 6 stappe
Gesigsherkenning en identifikasie - Arduino Face ID met behulp van OpenCV Python en Arduino .: 6 stappe

Video: Gesigsherkenning en identifikasie - Arduino Face ID met behulp van OpenCV Python en Arduino .: 6 stappe

Video: Gesigsherkenning en identifikasie - Arduino Face ID met behulp van OpenCV Python en Arduino .: 6 stappe
Video: CS50 2014 - Week 9 2024, Julie
Anonim
Image
Image

Gesigsherkenning AKA gesig -ID is deesdae een van die belangrikste funksies op selfone.

Ek het dus 'n vraag gehad: kan ek 'n gesig -ID hê vir my Arduino -projek, en die antwoord is ja …

My reis het soos volg begin:

Stap 1: Toegang tot die webkamera

stap 2: Gesigsidentifikasie.

stap 3: Data -insameling

Stap 4: Opleiding

stap 5: Gesigsherkenning

stap 6: Arduino programmeer

Ek sal al die stappe hieronder verduidelik. Ek hoop dat dit u sal help.

Stap 1: Toegang tot die webkamera

Toegang tot die webkamera
Toegang tot die webkamera

Die eerste stap vir gesigsherkenning was om toegang tot 'n kamera of 'n rekenaarvisie te hê. Aangesien Indië onder toesig is, was die goedkoopste oplossing wat ek gevind het om my rekenaar se webcam te gebruik waartoe ek toegang gehad het met 'n python -program met behulp van die openCV -module.

U dink miskien wat OpenCV is, nie waar nie?

OpenCV (Open Source Computer Vision Library) is 'n open-source rekenaarvisie en masjienleer sagteware biblioteek. OpenCV is gebou om 'n gemeenskaplike infrastruktuur vir rekenaarvisie -toepassings te bied en om die gebruik van masjienpersepsie in kommersiële produkte te versnel.

As Opencv op u rekenaar geïnstalleer is, is u gereed. Indien nie, volg hierdie stap.

maak die opdragprompt oop en tik "pip install opencv".

Waarskuwing: u kan 'n fout sien, aangesien '' pip 'nie as 'n interne of eksterne opdrag erken word nie'. waarvoor u die pad van u pip -installasie moet byvoeg by u PATH -stelselveranderlike. Gaan deur hierdie pos, dit kan u help.

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

Sodra OpenCV geïnstalleer is, is ons gereed … Om te kyk of dit korrek geïnstalleer is, maak u Python -tolk oop en voer die biblioteek in. Sien die prent hierbo wat u uitset behoort te wees.

Laai die python -lêer "AccessTo_webcam.py" af en voer dit uit. Ek het al die nodige kommentaar daar gelewer.

Nou, jy het nou toegang tot die webcam. Wel gedaan. laat ons gaan na stap 2.

Stap 2: Gesigsidentifikasie

Gesigsidentifikasie
Gesigsidentifikasie

Met behulp van dieselfde OpenCV -module moet ons vasstel of daar 'n gesig op die videostroom is of nie.

OpenCV bied 'n opleidingsmetode of vooraf opgeleide modelle wat Cascade Classifier genoem word. Die vooraf opgeleide modelle is in die datamap in die OpenCV-installasie geleë. Ek gee die lêer af, laai dit net af en plaas dit in u projektmap. Die gids waarin die lêer "AccessTo_webcam.py" gestoor word. As u nog nie een geskep het nie, doen dit dan.

Laai 'haarcascade_frontalface_default' af en plaas dit in die hoofprojekmap.

Laai "Face_identification.py" af en plaas dit in die hoofprojekmap. Al die verduideliking word daarin verskaf.

Nou kan u die gesigte in 'n videostroom identifiseer. Laat ons dus na stap 3 gaan.

Stap 3: Data -insameling

Data-insameling
Data-insameling

Om die gesigte te herken, moet ons ons luislangprogram oplei. Daarvoor benodig ons 'n paar data.

Data -insameling is eerder die maklikste stap in hierdie projek. skep 'n gids met die naam "image_data" in u hoofprojekmap. Skep 'n paar ekstra vouers met die naam van die persoon in die gids "image_data", waar ons die data sal stoor. byvoorbeeld:

In die gids "image_data" het ek nog twee vouers met die naam "HRK" en "Yahiya" geskep. soos in die prent hierbo getoon.

Maak nou u eie vouers en noem dit.

Sodra die dopgehou geskep is, begin dan met die versameling van beelde van die spesifieke persoon. Ek beveel aan dat u ongeveer 20 beelde per persoon versamel. U kan ook meer beelde byvoeg, maar sorg dat data wat vir al die persone ingesamel is, dieselfde aantal beelde bevat. Dit help om akkuraatheid te bied.

dit is nou, laat ons gaan na stap 4.

Stap 4: Opleiding

In kort gaan ons deur al die vouers en beelde wat in die "image_data" -gids voorkom, en skep 'n woordeboek met die etiket -ID en die ooreenstemmende naam. Terselfdertyd laai ons die prentjie om die gesig in elke prentjie wat ons dit noem, 'Interessestreek' op te spoor en 'n '.yml' -lêer te skep wat die inligting bevat.

Gestel dat u data versamel het vir persoon X en Y.

ons sal persoon X as 1 benoem, wat sy etiket -ID sal wees en die naam self X sal wees. Ons laai die prentjie om sy gesig te vind, naamlik 'n belangegebied en voeg die data by 'n lys.

soortgelyke stappe sal gevolg word vir persoon Y. En laastens sal ons 'n ".yml" lêer skep.

Laai die 'face_trainer.py' lêer af en plaas dit in die hoofprojekmap. Al die nodige verduidelikings word in die lêer self verskaf.

As u hierdie program uitvoer, gaan dit deur al die beelde en skep twee lêers met die naam "labels.pickle" en "trainner.yml". Nou het u u eie model opgelei. so laat ons gaan na stap 5.

Stap 5: Gesigsherkenning

Gesigsherkenning
Gesigsherkenning

As u al die stappe behoorlik deurgemaak het, het u moontlik u eie opgeleide data geskep. Nou sal ons die data gebruik vir gesigherkenning.

Eintlik sal ons ons opgeleide modelle in die python -lêer laai, toegang tot ons webcam kry, en gesigte in die videostroom identifiseer en 'n vergelyking of voorspelling doen tussen die huidige gesig wat in die videostroom geïdentifiseer word, en die model wat opgelei is. as die data ooreenstem, sê ons dat die persoon herken word, dit is net so eenvoudig …

Laai "face_recognise.py" af en voer dit uit. Al die nodige inligting word daarin verskaf. Nou is u gesig moontlik herken. As die akkuraatheid nie goed is nie, probeer dan om die data op te dateer. As u klaar is, gaan dan verder met stap 6/

Stap 6: Arduino programmeer

Die laaste en laaste stap is die programmering van Arduino, en om 'n manier van kommunikasie tussen luislang en Arduino te bied. Vir kommunikasie het ek 'Serial Communication' gebruik. Gaan deur die video wat ek hierbo gekoppel het om uit te vind hoe seriële kommunikasie werk en om een vas te stel. Jy vind al die vereiste lêers in die videobeskrywing.

As u deur die video gegaan het, laat ek u verduidelik wat ek gedoen het. As my gesig herken word, is die etiket -ID 2. As die etiket -ID 2 is, stuur ek '1' as die seriële data na my Arduino. Dit sal my LED -jaagkring aanskakel. As die etiket -ID anders as 2 is, stuur ek '0' as die seriële data, wat my LED -chaser -kring afskakel.

Laai die 'ard_chaser.ino' -lêer af. Dit is 'n eenvoudige LED -jaagprogram wat seriële kommunikasie gebruik.

Laai "face_recogniser1.py" gelyktydig af, wat die seriële kommunikasie tussen Arduino en die python -program tot stand bring.

Daar gaan jy. Ek hoop dat u iets nuuts geleer het. Teken in op my YouTube -kanaal vir meer inligting oor python en Arduino. Deel dit as jy daarvan hou. Hou aan ondersteun.

Dankie.

Aanbeveel: