Inhoudsopgave:

Gezichtsherkenning en identificatie - Arduino Face ID met OpenCV Python en Arduino: 6 stappen
Gezichtsherkenning en identificatie - Arduino Face ID met OpenCV Python en Arduino: 6 stappen

Video: Gezichtsherkenning en identificatie - Arduino Face ID met OpenCV Python en Arduino: 6 stappen

Video: Gezichtsherkenning en identificatie - Arduino Face ID met OpenCV Python en Arduino: 6 stappen
Video: Hoe maak je Raspberry Pi Face Tracking Robot [Raspberry pi 4 Project] SunFounder PICAR-X 2024, Juli-
Anonim
Image
Image

Gezichtsherkenning AKA face ID is tegenwoordig een van de belangrijkste functies op mobiele telefoons.

Dus ik had een vraag "mag ik een gezichts-ID hebben voor mijn Arduino-project" en het antwoord is ja …

Mijn reis begon als volgt:

Stap 1: Toegang tot webcam

stap 2: Gezichtsherkenning.

stap 3: Gegevensverzameling

Stap 4: Trainen

stap 5: Gezichtsherkenning

stap 6: Arduino programmeren

Ik zal alle stappen hieronder uitleggen. Ik hoop dat dit je zal helpen.

Stap 1: Toegang tot webcam

Toegang tot webcam
Toegang tot webcam

De eerste stap voor gezichtsherkenning was toegang hebben tot een camera of een computervisie. Aangezien India op slot zit, was de goedkoopste oplossing die ik vond, het gebruik van de webcam van mijn computers waartoe ik toegang had met een python-programma met behulp van de openCV-module.

Je zou kunnen denken wat is OpenCV, is het niet?

OpenCV (Open Source Computer Vision Library) is een open source computer vision en machine learning softwarebibliotheek. OpenCV is gebouwd om een gemeenschappelijke infrastructuur te bieden voor computervisietoepassingen en om het gebruik van machineperceptie in commerciële producten te versnellen.

Als Opencv op uw computer is geïnstalleerd, kunt u aan de slag. Zo niet, volg dan deze stap.

open de opdrachtprompt en typ "pip install opencv".

Waarschuwing: u kunt een foutmelding krijgen omdat "'pip' niet wordt herkend als een interne of externe opdracht". waarvoor U het pad van uw pip-installatie moet toevoegen aan uw PATH-systeemvariabele. Ga door dit bericht, het kan je helpen.

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

Zodra OpenCV is geïnstalleerd, zijn we klaar om te gaan … Om te controleren of het correct is geïnstalleerd, opent u uw Python-interpreter en importeert u de bibliotheek. Zie de afbeelding hierboven die uw uitvoer zou moeten zijn.

Download het python-bestand "AccessTo_webcam.py" en voer het uit. Ik heb daar alle nodige opmerkingen gegeven.

Daar ga je, nu heb je toegang tot de webcam. Goed gedaan. laten we doorgaan naar stap 2.

Stap 2: Gezichtsidentificatie

Gezichtsidentificatie
Gezichtsidentificatie

met behulp van dezelfde OpenCV-module moeten we vaststellen of er een gezicht op de videostream staat of niet.

OpenCV biedt een trainingsmethode of vooraf getrainde modellen die Cascade Classifier worden genoemd. De voorgetrainde modellen staan in de datamap in de OpenCV installatie. Ik bied dat bestand aan, download het en plaats het in uw projectmap. De map waarin het bestand "AccessTo_webcam.py" is opgeslagen. Als je er nog geen hebt gemaakt, doe het dan.

Download "haarcascade_frontalface_default" en plaats het in de hoofdprojectmap.

Download "Face_identification.py" en plaats het in de hoofdprojectmap. Alle uitleg staat erin.

Nu kunt u de gezichten in een videostream identificeren. Dus laten we doorgaan naar stap 3.

Stap 3: Gegevensverzameling

Gegevensverzameling
Gegevensverzameling

Om de gezichten te herkennen, moeten we ons python-programma trainen. Waarvoor we wat gegevens nodig hebben.

Het verzamelen van gegevens is eerder de gemakkelijkste stap in dit project. maak een map met de naam "image_data" in uw hoofdprojectmap. Maak in de map "image_data" enkele extra mappen met de naam van de persoon, waar we de gegevens zullen opslaan. bijvoorbeeld:

In de map "image_data" heb ik nog twee mappen gemaakt met de namen "HRK" en "Yahiya". zoals weergegeven in de bovenstaande afbeelding.

Ga je gang, maak je eigen mappen en geef ze een naam.

Zodra de mappen zijn gemaakt, begint u met het verzamelen van afbeeldingen van die specifieke persoon. Ik raad aan om bijna 20 afbeeldingen per persoon te verzamelen. U kunt ook meer afbeeldingen toevoegen, maar zorg ervoor dat de verzamelde gegevens voor alle personen hetzelfde aantal afbeeldingen bevatten. Het helpt om nauwkeurigheid te bieden.

dat was het nu, laten we verder gaan met stap 4.

Stap 4: Trainen

In het kort zullen we alle mappen en afbeeldingen doorlopen die aanwezig zijn in de map "image_data" en een woordenboek maken dat de label-ID en de bijbehorende naam zal bevatten. Tegelijkertijd zullen we de afbeelding laden om het gezicht te detecteren in elke afbeelding die we het "Region of Interest" noemen en een ".yml"-bestand maken dat die informatie bevat.

Ervan uitgaande dat u gegevens heeft verzameld voor persoon X en Y.

we zullen persoon X labelen als 1, wat zijn label-ID zal zijn en de naam zal X zelf zijn. We laden de afbeelding om zijn gezicht te vinden, d.w.z. interessegebied, en voegen de gegevens toe aan een lijst.

soortgelijke stappen zullen worden gevolgd voor persoon Y. En ten slotte zullen we een ".yml" -bestand maken.

Download het bestand "face_trainer.py" en plaats het in de hoofdprojectmap. Alle nodige uitleg staat in dat bestand zelf.

Wanneer u dit programma uitvoert, doorloopt het alle afbeeldingen en maakt het twee bestanden met de namen "labels.pickle" en "trainner.yml". Nu heb je je eigen model getraind. dus laten we doorgaan naar stap 5.

Stap 5: Gezichtsherkenning

Gezichtsherkenning
Gezichtsherkenning

Als u alle stappen goed hebt doorlopen, heeft u mogelijk uw eigen getrainde gegevens gemaakt. Nu gaan we die gegevens gebruiken voor gezichtsherkenning.

In principe zullen we onze getrainde modellen in het python-bestand laden, toegang krijgen tot onze webcam en gezichten in de videostream identificeren en een vergelijking of voorspelling doen tussen het huidige gezicht dat in de videostream wordt geïdentificeerd en het model dat is getraind. als de gegevens overeenkomen, zeggen we dat de persoon wordt herkend, zo simpel is het…

Download "face_recognise.py" en voer het uit. Daarin staat alle benodigde informatie. Nu is je gezicht misschien herkend. als de nauwkeurigheid niet goed is, probeer dan de gegevens bij te werken. als u helemaal klaar bent om te gaan, gaan we verder met stap 6/

Stap 6: Arduino programmeren

De laatste en laatste stap is het programmeren van Arduino, en het bieden van een communicatiemodus tussen python en Arduino. Voor communicatie heb ik "Serial Communication" gebruikt. Ga door de video die ik hierboven heb gelinkt om te zien hoe seriële communicatie werkt en om er een tot stand te brengen. Je vindt alle benodigde bestanden in de videobeschrijving.

Als je de video hebt doorgenomen, laat me je dan uitleggen wat ik heb gedaan. Wanneer mijn gezicht wordt herkend, is de verstrekte label-ID 2. Zodra de label-ID 2 is, stuur ik '1' als de seriële gegevens naar mijn Arduino. Die mijn LED-chasercircuit aanzet. Als label-ID anders is dan 2, stuur ik '0' als de seriële gegevens, waardoor mijn LED-chasercircuit wordt uitgeschakeld.

Download het bestand "ard_chaser.ino". Het is een eenvoudig LED-volgprogramma dat gebruik maakt van seriële communicatie.

Download tegelijkertijd "face_recogniser1.py" dat de seriële communicatie tussen Arduino en het python-programma tot stand brengt.

Daar ga je. Ik hoop dat je iets nieuws hebt geleerd. Abonneer je op mijn youtube-kanaal voor meer dingen met betrekking tot python en Arduino. Deel dit als je het leuk vond. Blijf steunen.

Bedankt.

Aanbevolen: