Heim > Artikel > Backend-Entwicklung > Methoden und Schritte zur Implementierung der Gesichtserkennung mit Python
Für die Entwicklungsumgebung verwenden wir Visual Studio Community Edition.
Wenn es noch nicht auf Ihrem Computer installiert ist, können Sie es hier herunterladen. und installieren Sie die Desktop-Entwicklung mit C++.
Da wir nun Visual Studio für die Desktop-Entwicklung mit C++ haben, können wir mit unserem Projekt beginnen.
Verwenden Sie Visual Studio, um ein neues Verzeichnis zu öffnen und eine neue Python-Umgebung zu erstellen. Wir werden venv verwenden. Öffnen Sie Ihr integriertes Terminal und schreiben Sie python -m venv venv. Aktivieren Sie dann die Umgebung, indem Sie venv/bin/Activate.ps1 eingeben. Dies ist für PowerShell.
Wenn Sie ein anderes Terminal verwenden, finden Sie die vollständige Liste hier
Jetzt haben wir die virtuelle Umgebung von fertiggestellt Beginnen wir mit der Extraktion unserer Abhängigkeiten. Dazu benötigen wir opencv und face_recognition. Verwenden Sie pip in Ihrem Terminal.
pip install opencv-python face_recognition
Face Recognition ist eine Bibliothek, die die hochmoderne dlib-Bibliothek verwendet. Wir sind bereit, Code zu schreiben und einige Gesichter zu erkennen.
Erstellen Sie eine neue Python-Datei. Wir nennen die Datei „missingPerson.py“, vorausgesetzt, wir verwenden unsere Anwendung, um vermisste Personen abzugleichen. Importieren Sie unsere Abhängigkeiten und schreiben Sie unsere ersten paar Zeilen.
import cv2 import numpy as np import face_recognition import os from face_recognition.api import face_distance
Angenommen, alle unsere Fotos sind in unserem Serverspeicher gespeichert, müssen wir zuerst alle Bilder der Personen in unsere Anwendung ziehen und diese Bilder lesen.
path = 'MissingPersons' images = [] missingPersons = [] missingPersonsList = os.listdir(path) for missingPerson in missingPersonsList : curImg = cv2.imread(f'{path}/{missingPerson}') images.append(curImg) missingPersons.append(os.path.splitext(missingPerson)[0]) print(missingPersons)
In diesem Abschnitt werden wir opencv verwenden, um alle Bilder vermisster Personen zu lesen und sie an unsere Liste der vermissten Personen anzuhängen.
Nachdem wir alle fehlenden Gesichtsbilder aus dem Speicher gelesen haben, müssen wir die Gesichtskodierung finden, damit wir einen CNN-Gesichtsdetektor verwenden können, um eine 2D-Darstellung des Gesichtsbegrenzungsrahmens im Bildarray zu erstellen.
def findEncodings(images): encodeList = [] for img in images: img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) encode = face_recognition.face_encodings(img)[0] encodeList.append(encode) print(encodeList) return encodeList encodeListKnown = findEncodings(images) print('Encoding Complete')
Wir speichern das zweidimensionale Array in einer Liste bekannter Gesichtscodes. Dies wird mehrere Minuten dauern.
Da wir nun die Gesichtscodes aller vermissten Personen haben, müssen wir sie nur noch mit unserem Reporterbild abgleichen. face_recognition ist sehr bequem zu verwenden.
def findMissingPerson(encodeListKnown, reportedPerson='found1.jpg'): person = face_recognition.load_image_file(f'ReportedPersons/{reportedPerson}]') person = cv2.cvtColor(person,cv2.COLOR_BGR2RGB) try: encodePerson = face_recognition.face_encodings(person)[0] comparedFace = face_recognition.compare_faces(encodeListKnown,encodePerson) faceDis = face_recognition.face_distance(encodeListKnown,encodePerson) matchIndex = np.argmin(faceDis) if comparedFace[matchIndex]: name = missingPersons[matchIndex].upper() print(name) return name else: print('Not Found') return False except IndexError as e: print(e) return e
Zuerst müssen wir die Bilddatei der gemeldeten Person laden und ihr Gesicht kodieren. Es bleibt nur noch, die gemeldeten Gesichtskodierungen mit dem zu vergleichen, was wir bereits über Gesichtskodierungen wissen. Dann gleicht eine einfache Logik ihren Index ab und gibt zurück, wenn die Person in unserer Liste „missingPersons“ gefunden wird.
Diese Art der Gesichtserkennung wird nicht nur zum Auffinden vermisster Personen eingesetzt. Es erkennt und erkennt Gesichter und kann bei Bedarf agieren.
Das obige ist der detaillierte Inhalt vonMethoden und Schritte zur Implementierung der Gesichtserkennung mit Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!