Spaces:
Sleeping
Sleeping
File size: 2,295 Bytes
bd35930 5bd8e50 609edcd bd35930 5bd8e50 bd35930 5bd8e50 25d75f1 5bd8e50 bd35930 3215a1b bd35930 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
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"}
|