import requests import pyrebase import os import urllib from retinaface import RetinaFace from deepface import DeepFace from fastapi import FastAPI app = FastAPI() @app.get("/") def read_root(): return {"Hello": "World"} @app.get("/verify/") def verify_image(url1): firebaseConfig = { "apiKey": f'{os.getenv("API_KEY")}', "authDomain": f'{os.getenv("AUTH_DOMAIN")}', "projectId": f'{os.getenv("PROJECT_ID")}', "storageBucket": f'{os.getenv("STORAGE_BKT")}', "messagingSenderId": f'{os.getenv("S_ID")}', "appId": f'{os.getenv("APP_ID")}', "databaseURL": f'{os.getenv("DBMS_URL")}', "serviceAccount":"Firebase_Service_Account_Keys.json" }; 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] # path = f"{name}/" # files_username = storage.bucket.list_blobs(prefix=path) # for file_username in files_username: # if (file_username.name.endswith(".json")): # url_username = storage.child(f"{file_username.name}").get_url(None) # with requests.get(url_username) as response_username: # metadata = response_username.json() return {"username": name} if flag == False: print("Not Verified") return {"username": "Not Found"}