Spaces:
Sleeping
Sleeping
import requests | |
import pyrebase | |
import urllib | |
from retinaface import RetinaFace | |
from deepface import DeepFace | |
from fastapi import FastAPI | |
import os | |
from dotenv import load_dotenv | |
app = FastAPI() | |
load_dotenv | |
def read_root(): | |
return {"Hello": "World"} | |
def verify_image(url1): | |
firebaseConfig = { | |
"apiKey": os.getenv("API_KEY"), | |
"authDomain": os.getenv("authDomain_KEY"), | |
"projectId": os.getenv("projectId_KEY"), | |
"storageBucket": os.getenv("storageBucket_KEY"), | |
"messagingSenderId": os.getenv("messagingSenderId_KEY"), | |
"appId": os.getenv("appId_KEY"), | |
"databaseURL": os.getenv("databaseURL_KEY"), | |
"serviceAccount": { | |
"type": os.getenv("type_KEY"), | |
"project_id": os.getenv("project_id_KEY"), | |
"private_key_id": os.getenv("private_key_id_KEY"), | |
"private_key": os.getenv("private_key_KEY"), | |
"client_email": os.getenv("client_email_KEY"), | |
"client_id":os.getenv("client_id_KEY"), | |
"auth_uri": os.getenv("auth_uri_KEY"), | |
"token_uri": os.getenv("token_uri_KEY"), | |
"auth_provider_x509_cert_url": os.getenv("auth_provider_x509_cert_url_KEY"), | |
"client_x509_cert_url": os.getenv("client_x509_cert_url_KEY"), | |
"universe_domain": os.getenv("universe_domain_KEY") | |
} | |
}; | |
firebase = pyrebase.initialize_app(firebaseConfig) | |
storage = firebase.storage() | |
path = "Faces/" | |
files = storage.bucket.list_blobs(prefix=path) | |
flag = False | |
# url1 = "https://api.time.com/wp-content/uploads/2023/04/shah-rukh-khan-time100-2023-1.jpg" | |
for file in files: | |
if (file.name.endswith(".jpg") or file.name.endswith(".jpeg")) : | |
# print(file.name) | |
url = storage.child(f"{file.name}").get_url(None) | |
# print(url) | |
with requests.get(url) as response: | |
result = DeepFace.verify(f"{url1}",url, model_name="Facenet", distance_metric='cosine') | |
if result['verified']: | |
flag = True | |
start_index = file.name.rfind('/') | |
end_index = file.name.rfind('$') | |
if start_index != -1 and end_index != -1: | |
name = file.name[start_index + 1:end_index] | |
return {"username": name} | |
break | |
if flag == False: | |
print("Not Verified") | |
return {"username": "Not Found"} | |