Méthodes et étapes pour implémenter la reconnaissance faciale à l'aide de Python

王林
Libérer: 2023-05-07 20:43:11
avant
1956 Les gens l'ont consulté

Pour l'environnement de développement, nous utiliserons Visual Studio Community Edition.

S'il n'est pas encore installé sur votre ordinateur, vous pouvez le télécharger ici. et installez le développement de bureau en utilisant C++.

Méthodes et étapes pour implémenter la reconnaissance faciale à laide de Python

Maintenant que nous disposons de Visual Studio pour le développement de postes de travail utilisant C++, nous pouvons démarrer notre projet.

Utilisez Visual Studio pour ouvrir un nouveau répertoire et créer un nouvel environnement python. Nous utiliserons venv. Ouvrez votre terminal intégré et écrivez python -m venv venv. Activez ensuite l'environnement en tapant venv/bin/Activate.ps1. C'est pour PowerShell.

Si vous utilisez un autre terminal, vous pouvez trouver la liste complète ici

Méthodes et étapes pour implémenter la reconnaissance faciale à laide de Python

Maintenant, nous avons terminé l'environnement virtuel de création, commençons par extraire nos dépendances. Pour cela, nous aurons besoin d'opencv et de face_recognition. Utilisez pip dans votre terminal.

pip install opencv-python face_recognition
Copier après la connexion

Face Recognition est une bibliothèque qui utilise la bibliothèque dlib de pointe. Nous sommes prêts à écrire du code et à reconnaître certains visages.

Créez un nouveau fichier python, nous appellerons le fichier MissingPerson.py, en supposant que nous utiliserons notre application pour rechercher des personnes disparues. Importez nos dépendances et écrivez nos premières lignes.

import cv2
import numpy as np
import face_recognition
import os
 
from face_recognition.api import face_distance
Copier après la connexion

En supposant que toutes nos photos sont stockées dans le stockage de notre serveur, nous devons d'abord extraire toutes les images des personnes dans notre application et lire ces images.

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)
Copier après la connexion

Dans cette section, nous utiliserons opencv pour lire toutes les images de personnes disparues et les ajouter à notre liste de personnes disparues.

Après avoir lu toutes les images de visage manquantes dans le stockage, nous devons trouver l'encodage du visage afin de pouvoir utiliser un détecteur de visage CNN pour créer une représentation 2D du cadre de délimitation du visage dans le tableau d'images.

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')
Copier après la connexion

Nous stockons le tableau bidimensionnel dans une liste d'encodages de visages connus. Cela prendra plusieurs minutes.

Maintenant que nous avons les codes faciaux de toutes les personnes disparues, il ne nous reste plus qu'à les faire correspondre à l'image de notre journaliste. face_recognition est très pratique à utiliser.

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
Copier après la connexion

Nous devons d'abord charger le fichier image de la personne signalée et encoder son visage. Il ne reste plus qu’à comparer les encodages de visages rapportés avec ce que nous savons déjà sur les encodages de visages. Ensuite, une logique simple correspond à leur index et renvoie si la personne est trouvée dans notre liste de personnes disparues.

Ce type de reconnaissance faciale ne sert pas uniquement à retrouver des personnes disparues. Il détecte et reconnaît les visages et peut fonctionner selon les besoins.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!