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 @app.get("/") def read_root(): return {"Hello": "World"} @app.get("/verify/") 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"}