Inhoudsopgave:

Opencv gezichtsherkenning: 4 stappen
Opencv gezichtsherkenning: 4 stappen

Video: Opencv gezichtsherkenning: 4 stappen

Video: Opencv gezichtsherkenning: 4 stappen
Video: Face Detection using Haar Cascade Classifiers شرح عربي 2024, Juli-
Anonim
Opencv gezichtsherkenning
Opencv gezichtsherkenning

Gezichtsherkenning is tegenwoordig heel gewoon, in veel toepassingen zoals smartphones, veel elektronische gadgets. Dit soort technologie omvat veel algoritmen en tools enz. Die enkele ingebedde ingebedde SOC-platforms zoals de Raspberry Pi en open source computervisie gebruiken bibliotheken zoals OpenCV, kunt u nu gezichtsherkenning toevoegen aan uw eigen toepassingen zoals beveiligingssystemen.

In dit project zal ik je vertellen hoe je een gezichtsherkenning kunt bouwen met behulp van een Raspberry Pi en we hebben arduino + LCD gebruikt om de naam van de persoon weer te geven.

Stap 1: Dingen die je nodig hebt

Dingen die je nodig hebt
Dingen die je nodig hebt

1. RASPBERRY PI

2. ARDUINO UNO / NANO

3.16x2 LCD-SCHERM

4. RASPI-CAMERA / WEBcam (ik geef de voorkeur aan webcam voor betere resultaten)

Stap 2: Opencv-intro en installatie

Opencv-Intro en Installatie
Opencv-Intro en Installatie

OpenCV (open source computer vision library) is een zeer nuttige bibliotheek - het biedt veel handige functies, zoals tekstherkenning, gezichtsherkenning, objectdetectie, het maken van dieptekaarten en machine learning.

Dit artikel laat je zien hoe je Opencv en andere bibliotheken op Raspberry Pi installeert die van pas kunnen komen bij objectdetectie en andere projecten. Van daaruit leren we hoe we beeld- en videobewerkingen kunnen uitvoeren door een project voor objectherkenning en machine learning uit te voeren. In het bijzonder zullen we een eenvoudige code schrijven om gezichten in een afbeelding te detecteren.

Wat is OpenCV?

OpenCV is een open source computer vision en machine learning softwarebibliotheek. OpenCV is vrijgegeven onder een BSD-licentie, waardoor het gratis is voor zowel academisch als commercieel gebruik. Het heeft C++-, Python- en Java-interfaces en ondersteunt Windows, Linux, Mac OS, iOS en Android. OpenCV is ontworpen voor rekenefficiëntie en een sterke focus op real-time toepassingen.

Hoe OpenCV op een Raspberry Pi te installeren?

Om OpenCV te installeren, moeten we Python hebben geïnstalleerd. Omdat Raspberry Pis vooraf is geladen met Python, kunnen we OpenCV rechtstreeks installeren.

Typ de onderstaande opdrachten om ervoor te zorgen dat uw Raspberry Pi up-to-date is en om de geïnstalleerde pakketten op uw Raspberry Pi bij te werken naar de nieuwste versies.

sudo apt-get updatesudo apt-get upgrade

Typ de volgende opdrachten in de terminal om de vereiste pakketten voor OpenCV op uw Raspberry Pi te installeren.

sudo apt install libatlas3-base libsz2 libharfbuzz0b libtiff5 libjasper1 libilmbase12 libopenexr22 libilmbase12 libgstreamer1.0-0 libavcodec57 libavformat57 libavutil55 libswscale4 libqtgui4 libqtcore4-test libqtcore4

Typ de volgende opdracht om OpenCV 3 voor Python 3 op je Raspberry Pi te installeren, pip3 vertelt ons dat OpenCV voor Python 3 wordt geïnstalleerd.

sudo pip3 installeer opencv-contrib-python libwebp6

Nu zou OpenCV moeten worden geïnstalleerd.

(als er fouten zijn opgetreden: u kunt het nog steeds doen door onderstaande link te volgen)

https://www.instructables.com/id/Raspberry-Pi-Hand…)

Wees nu niet gehaast, we moeten controleren of het goed is geïnstalleerd of niet

Test je opencv door:

1.ga naar je terminal en typ "python"

2. Typ vervolgens "import cv2".

3. typ vervolgens " cv2._version_".

installeer dan deze bibliotheken

pip3 installeer python-numpy

pip3 installeer python-matplotlib

Testcode om gezichten in een afbeelding te detecteren:

import cv2

faceCascade = cv2. CascadeClassifier("haarcascade_frontalface_default.xml");

image = cv2.imread('uw bestandsnaam') #example cv2.imread('home/pi/Desktop/bestandsnaam.jpg')

je krijgt de output alsof er vierkante dozen werden gevormd op de gezichten van mensen die op de foto staan.

Stap 3: Gezicht detecteren en herkennen in een realtime video

import cv2

importeer numpy als np

importeer os

serieel importeren

ser = serial. Serial('/dev/ttyACM0', 9600, timeout=1) # /dev/ttyACM0 kan in jouw geval veranderen, hangt af van de Arduino

cascadePath = "haarcascade_frontalface_default.xml"

faceCascade = cv2. CascadeClassifier(cascadePath)

herkenner=cv2.face.createLBPHFaceRecognizer()

afbeeldingen=

etiketten=

voor bestandsnaam in os.listdir('Dataset'):

im=cv2.imread('Dataset/'+bestandsnaam, 0)

afbeeldingen.append(im)

labels.append(int(bestandsnaam.split('.')[0][0]))

#print bestandsnaam

name_file=open('labels.txt')

namen=names_file.read().split('\n')

herkenner.trein(afbeeldingen, np.array(labels))

print 'Training gedaan… '

lettertype = cv2. FONT_

HERSHEY_SIMPLEXcap=cv2. VideoCapture(1) # uw videoapparaat

lastRes=''telling=0

terwijl(1):

_, frame=cap.lezen()

grijs=cv2.cvtColor(frame, cv2. COLOR_BGR2GRAY)

gezichten = faceCascade.detectMultiScale(grijs, 1.3, 5)

tel+=1

voor (x, y, w, h) in vlakken:

cv2.rechthoek(kader, (x, y), (x+w, y+h), (255, 0, 0), 2)

if count>20: res=names[recognizer.predict(grey[y:y+h, x:x+w])-1]

if res!=lastRes:

lastRes=res

print laatsteRes

ser.write(lastRes)

aantal=0

pauze

cv2.imshow('frame', frame)

k = 0xFF & cv2.waitKey(10)

als k == 27:

pauze

cap.release()

ser.close()

cv2.destroyAllWindows()

Stap 4: De code uitvoeren

De code uitvoeren
De code uitvoeren

1. Download de bestanden die in de vorige stap zijn bijgevoegd

2. kopieer je grijze foto's (6 afbeeldingen/voorbeelden…..) naar je datasetmap

1. Tom Cruise 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 (dataset afbeeldingsnummer voor meer open datasetmap)

2. Brad Pitt-2_1, 2_2, 2_3, 2_4, 2_5, 2_6

3. Leeuw-3_1, 3_2, 3_3, 3_4, 3_5, 3_6

4. Ironman4_1, 4_2, 4_3, 4_4, 4_5, 4_6

zoals hierboven kunt u de labels voor de respectievelijke personen toevoegen,

dus als de pi een gezicht detecteert tussen 1_1, 1_2, 1_3, 1_4, 1_5, 1_6, dan was het gelabeld als Tom Cruise, dus wees alsjeblieft voorzichtig tijdens het uploaden van de foto's………………

en sluit vervolgens je arduino aan op je raspberry Pi en breng wijzigingen aan in de main.py codeser = serial. Serial('/dev/ttyACM0', 9600, timeout=1) 3. plaats alle gedownloade bestanden (main.py, dataset-map, haarcascade_frontalface_default.xml in één map.)

3. Open nu Raspi-terminal en voer uw code uit met "sudo python main.py"

Aanbevolen: