|
import gradio as gr |
|
|
|
import numpy as np |
|
from deepface import DeepFace |
|
from pymongo.mongo_client import MongoClient |
|
|
|
credentials = "jamshaid:jamshaid19gh" |
|
|
|
uri = f"mongodb+srv://{credentials}@cluster0.uimyui3.mongodb.net/?retryWrites=true&w=majority" |
|
client = MongoClient(uri) |
|
db = client["Face_identification"] |
|
identities_collection = db["face_identities"] |
|
|
|
def save_identity(image , name): |
|
try: |
|
embeddings = DeepFace.represent(image , model_name="Facenet") |
|
embeddings = embeddings[0] |
|
|
|
identity = {"embeddings":embeddings["embedding"] , "name" : name } |
|
|
|
result = identities_collection.insert_one(identity) |
|
|
|
return str(result) |
|
except Exception as error: |
|
return str(error) |
|
|
|
|
|
|
|
label_output = gr.outputs.Textbox() |
|
|
|
|
|
|
|
|
|
|
|
|
|
image_input = gr.inputs.Image(shape=(160, 160)) |
|
label_input = gr.inputs.Textbox(label="Enter Label") |
|
output_image = gr.outputs.Image(type="numpy") |
|
|
|
|
|
interface = gr.Interface( |
|
fn=save_identity, |
|
inputs=[image_input, label_input], |
|
outputs=label_output, |
|
title="Face Identification", |
|
description="Upload an image, enter a label, and get the output image.", |
|
) |
|
|
|
|
|
interface.launch() |
|
|