Inhaltsverzeichnis:
- Schritt 1: Dinge, die Sie brauchen
- Schritt 2: Opencv-Intro und Installation
- Schritt 3: Erkennen und Erkennen von Gesichtern in einem Echtzeitvideo
- Schritt 4: Ausführen des Codes
Video: Opencv-Gesichtserkennung - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
Gesichtserkennung ist heutzutage in vielen Anwendungen wie Smartphones, vielen elektronischen Geräten eine ziemlich übliche Sache. Diese Art von Technologie umfasst viele Algorithmen und Tools usw., die einige eingebettete SOC-Plattformen wie den Raspberry Pi und Open Source Computer Vision verwenden Bibliotheken wie OpenCV können Sie jetzt Ihren eigenen Anwendungen wie Sicherheitssystemen Gesichtserkennung hinzufügen.
In diesem Projekt erkläre ich Ihnen, wie Sie mit einem Raspberry Pi eine Gesichtserkennung erstellen und wir haben Arduino + LCD verwendet, um den Namen der Person anzuzeigen.
Schritt 1: Dinge, die Sie brauchen
1. HIMBEERE PI
2. ARDUINO UNO / NANO
3.16x2 LCD-DISPLAY
4. RASPI-CAMERA / WEBcam (ich bevorzuge Webcam für bessere Ergebnisse)
Schritt 2: Opencv-Intro und Installation
OpenCV (Open Source Computer Vision Library) ist eine sehr nützliche Bibliothek - sie bietet viele nützliche Funktionen wie Texterkennung, Gesichtserkennung, Objekterkennung, Erstellung von Tiefenkarten und maschinelles Lernen.
Dieser Artikel zeigt Ihnen, wie Sie Opencv und andere Bibliotheken auf dem Raspberry Pi installieren, die sich bei der Objekterkennung und anderen Projekten als nützlich erweisen. Von dort aus werden wir lernen, wie man Bild- und Videooperationen durchführt, indem wir ein Objekterkennungs- und Machine-Learning-Projekt ausführen. Insbesondere werden wir einen einfachen Code schreiben, um Gesichter in einem Bild zu erkennen.
Was ist OpenCV?
OpenCV ist eine Open-Source-Softwarebibliothek für Computer Vision und maschinelles Lernen. OpenCV wird unter einer BSD-Lizenz veröffentlicht, wodurch es sowohl für den akademischen als auch für den kommerziellen Gebrauch kostenlos ist. Es verfügt über C++-, Python- und Java-Schnittstellen und unterstützt Windows, Linux, Mac OS, iOS und Android. OpenCV wurde für Recheneffizienz und einen starken Fokus auf Echtzeitanwendungen entwickelt.
Wie installiere ich OpenCV auf einem Raspberry Pi?
Um OpenCV zu installieren, müssen wir Python installiert haben. Da Raspberry Pis mit Python vorinstalliert sind, können wir OpenCV direkt installieren.
Geben Sie die folgenden Befehle ein, um sicherzustellen, dass Ihr Raspberry Pi auf dem neuesten Stand ist, und um die installierten Pakete auf Ihrem Raspberry Pi auf die neuesten Versionen zu aktualisieren.
sudo apt-get Updatessudo apt-get upgrade
Geben Sie die folgenden Befehle in das Terminal ein, um die erforderlichen Pakete für OpenCV auf Ihrem Raspberry Pi zu installieren.
sudo apt install libatlas3-base libsz2 libharfbuzz0b libtiff5 libjasper1 libilmbase12 libopenexr22 libilmbase12 libgstreamer1.0-0 libavcodec57 libavformat57 libavutil55 libswscale4 libqtgui4 libqtcore4. libqt
Geben Sie den folgenden Befehl ein, um OpenCV 3 für Python 3 auf Ihrem Raspberry Pi zu installieren. pip3 teilt uns mit, dass OpenCV für Python 3 installiert wird.
sudo pip3 install opencv-contrib-python libwebp6
Jetzt sollte OpenCV installiert sein.
(falls Fehler aufgetreten sind: Sie können dies immer noch tun, indem Sie dem folgenden Link folgen
https://www.instructables.com/id/Raspberry-Pi-Hand…)
Jetzt haben Sie keine Eile, wir müssen überprüfen, ob es richtig installiert wurde oder nicht
Testen Sie Ihren opencv durch:
1. Gehe zu deinem Terminal und tippe "Python"
2. Geben Sie dann "cv2 importieren" ein.
3. Geben Sie dann "cv2._version_" ein.
dann installiere diese Bibliotheken
pip3 installiere python-numpy
pip3 python-matplotlib installieren
Testcode zum Erkennen von Gesichtern in einem Bild:
CV2 importieren
faceCascade = cv2. CascadeClassifier("haarcascade_frontalface_default.xml");
image = cv2.imread('Ihr Dateiname') #example cv2.imread('home/pi/Desktop/Dateiname.jpg')
Sie erhalten die Ausgabe wie ein quadratisches Kästchen auf den Gesichtern der Personen, die auf dem Bild sind.
Schritt 3: Erkennen und Erkennen von Gesichtern in einem Echtzeitvideo
CV2 importieren
numpy als np importieren
Importieren von OS
Seriennummer importieren
ser = serial. Serial('/dev/ttyACM0', 9600, timeout=1) # /dev/ttyACM0 kann sich in Ihrem Fall ändern, hängt vom Arduino ab
cascadePath = "haarcascade_frontalface_default.xml"
faceCascade = cv2. CascadeClassifier(cascadePath)
cognizer=cv2.face.createLBPHFaceRecognizer()
Bilder=
Etiketten=
für Dateinamen in os.listdir('Dataset'):
im=cv2.imread('Datensatz/'+Dateiname, 0)
Bilder.append(im)
label.append(int(filename.split('.')[0][0]))
#Dateiname drucken
names_file=open('labels.txt')
names=names_file.read().split('\n')
cognizer.train(images, np.array(labels))
print 'Training abgeschlossen… '
Schriftart = cv2. FONT_
HERSHEY_SIMPLEXcap=cv2. VideoCapture(1) # Ihr Videogerät
lastRes=''count=0
während(1):
_, frame=cap.read()
grau=cv2.cvtColor(Rahmen, cv2. COLOR_BGR2GRAY)
Gesichter = faceCascade.detectMultiScale(grau, 1.3, 5)
zählen+=1
für (x, y, w, h) in Flächen:
cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2)
if count>20: res=names[recognizer.predict(gray[y:y+h, x:x+w])-1]
if res!=lastRes:
lastRes=res
lastRes drucken
ser.write(lastRes)
zählen=0
brechen
cv2.imshow('Rahmen', Rahmen)
k = 0xFF & cv2.waitKey(10)
wenn k == 27:
brechen
cap.release()
ser.close()
cv2.destroyAllWindows()
Schritt 4: Ausführen des Codes
1. Laden Sie die im vorherigen Schritt angehängten Dateien herunter
2. kopiere deine grauen Fotos (6 Bilder/Beispiele…..) in deinen Datensatzordner
1. Tom Cruise 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 (Datensatzbildnummer für weitere geöffnete Datensatzordner)
2. Brad Pitt-2_1, 2_2, 2_3, 2_4, 2_5, 2_6
3. Löwe-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
wie oben können Sie die Labels für die jeweiligen Personen hinzufügen,
Wenn der Pi also ein Gesicht unter 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 erkennt, wurde es als Tom Cruise bezeichnet. Seien Sie also beim Hochladen der Fotos vorsichtig………………
und dann verbinde dein arduino mit deinem Raspberry Pi und nimm Änderungen im main.py Codeser = serial. Serial('/dev/ttyACM0', 9600, timeout=1) vor 3. Lege alle heruntergeladenen Dateien (main.py, dataset folder), haarcascade_frontalface_default.xml in einem Ordner.)
3. Öffnen Sie nun das Raspi-Terminal und führen Sie Ihren Code mit "sudo python main.py" aus.