Rockk08's picture
Update app.py
adb762e
raw
history blame
2.16 kB
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,"metadata": metadata}
if flag == False:
print("Not Verified")
return {"username": "Not Found"}