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++.
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
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
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
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)
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')
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
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!