Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-23 15:01
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
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 (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
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:
Abellcadabra (gezichtsherkenning deurvergrendelingssysteem): 9 stappen
Abellcadabra (Gezichtsherkenning Deurvergrendelingssysteem): Tijdens de quarantaine probeerde ik een manier te vinden om de tijd te doden door gezichtsherkenning te bouwen voor de huisdeur. Ik noemde het Abellcadabra - wat een combinatie is tussen Abracadabra, een magische uitdrukking met deurbel waarvan ik alleen de bel neem. LOL
Deurslot met gezichtsherkenning - Ajarnpa
Deurslot voor gezichtsherkenning: ongeveer een maand in de maak, presenteer ik het deurslot voor gezichtsherkenning! Ik heb geprobeerd het er zo netjes mogelijk uit te laten zien, maar als 13-jarige kan ik maar zoveel. Dit deurslot met gezichtsherkenning wordt bediend door een Raspberry Pi 4, met een speciale draagbare batt
Gezichtsherkenning en identificatie - Arduino Face ID met OpenCV Python en Arduino: 6 stappen
Gezichtsherkenning en identificatie | Arduino Face ID met behulp van OpenCV Python en Arduino. 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 wij
Gezichtsherkenning in de praktijk: 21 stappen
Gezichtsherkenning in de praktijk: dit is een onderwerp waar ik zo door gefascineerd ben, dat ik er bijna van wakker lig: computervisie, de detectie van objecten en mensen door een vooraf getraind model
ESP32 CAM Gezichtsherkenning met MQTT-ondersteuning - AI-denker: 4 stappen
ESP32 CAM Gezichtsherkenning met MQTT-ondersteuning | AI-Denker: Hallo! Ik wilde mijn code delen voor een project waar ik een ESP CAM met gezichtsherkenning nodig had, die gegevens naar MQTT kon sturen. Dus goed.. na misschien 7 uur zoeken door meerdere codevoorbeelden en zoeken naar wat is wat, heb ik finis