Jainam Jain
Updated
609edcd
raw
history blame
1.36 kB
import requests
import pyrebase
import urllib
from retinaface import RetinaFace
from deepface import DeepFace
from fastapi import FastAPI
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 = 'KEYS'
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"}