Team Ai
Apppublic

aieye/face_recognition_tutorial

sourceHugging Facemitupdated 3y agoView on Hugging Face
0likes
inference.py36 linesDownload Raw Back to utils
1from utils.database import get_database2import os3import face_recognition4import cv25import numpy as np6from PIL import Image7import streamlit as st8 9PKL_PATH = 'dataset/database.pkl'10 11def recognize(image,tolerance):12    database = get_database(PKL_PATH)13    known_encoding = [database[id]['encoding'] for id in database.keys()]14    name = 'Unknown'15    face_id = 'Unknown'16    face_locations = face_recognition.face_locations(image)17    face_encodings = face_recognition.face_encodings(image,face_locations)18    for (top,right,bottom,left), face_encoding in zip(face_locations,face_encodings):19        matches = face_recognition.compare_faces(known_encoding,face_encoding,tolerance=tolerance)20        distances = face_recognition.face_distance(known_encoding,face_encoding)21        name = 'Unknown'22        face_id = 'Unknown'23        distance = 10000024        for i in range(len(matches)):25            if matches[i].all():26                match_index = i27                temp_dist = round(np.sum(distances[match_index]),2)28                if temp_dist < distance:29                    distance = temp_dist30                    name = database[match_index]['name']31                    face_id = database[match_index]['face_id'].split("_")[1]32                    # cv2.putText(image,str(distance),(left,top-30),cv2.FONT_HERSHEY_SIMPLEX,0.75,(0,255,0),2)33        cv2.rectangle(image,(left,top),(right,bottom),(0,255,0),2)34        cv2.putText(image,name,(left,top-10),cv2.FONT_HERSHEY_SIMPLEX,0.75,(0,255,0),2)35    return image, name, face_id36