Inhaltsverzeichnis:

Opencv-Gesichtserkennung - Gunook
Opencv-Gesichtserkennung - Gunook

Video: Opencv-Gesichtserkennung - Gunook

Video: Opencv-Gesichtserkennung - Gunook
Video: Gesichtserkennung mit Python und OpenCV in 14 Zeilen 2024, November
Anonim
Opencv-Gesichtserkennung
Opencv-Gesichtserkennung

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

Dinge, die du brauchst
Dinge, die du brauchst

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-Intro und Installation
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

Ausführen des Codes
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.