Jainam Jain
Updated
25d75f1
raw
history blame
2.3 kB
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"}