Heim  >  Artikel  >  Backend-Entwicklung  >  Methoden und Schritte zur Implementierung der Gesichtserkennung mit Python

Methoden und Schritte zur Implementierung der Gesichtserkennung mit Python

王林
王林nach vorne
2023-05-07 20:43:111956Durchsuche

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++.

Methoden und Schritte zur Implementierung der Gesichtserkennung mit Python

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

Methoden und Schritte zur Implementierung der Gesichtserkennung mit Python

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen