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