import requests import pyrebase import urllib from retinaface import RetinaFace from deepface import DeepFace from fastapi import FastAPI from PIL import Image from io import BytesIO import tensorflow app = FastAPI() @app.get("/") def read_root(): return {"Hello": "World"} @app.get("/verify/") def verify_image(url1): firebaseConfig ={ "apiKey": "AIzaSyClnRJAnrJgAgkYjuYnlvu-CJ6Cxyklebo", "authDomain": "socioverse-2025.firebaseapp.com", "projectId": "socioverse-2025", "storageBucket": "socioverse-2025.appspot.com", "messagingSenderId": "689574504641", "appId": "1:689574504641:web:a22f6a2fa343e4221acc40", "databaseURL": "https://console.firebase.google.com/project/socioverse-2025/storage/socioverse-2025.appspot.com/files", "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 username = "Not Found" for file in files: if file.name.endswith((".jpg", ".jpeg")): url = storage.child(file.name).get_url(None) try: # Retrieve the image from URL response = requests.get(url) response.raise_for_status() # Raise an exception for HTTP errors # Open the image using PIL img = Image.open(BytesIO(response.content)) # Verify the image result = DeepFace.verify(url1, url, model_name="Facenet", distance_metric='cosine') if result['verified']: flag = True # Extract username from the file name start_index = file.name.rfind('/') end_index = file.name.rfind('$') if start_index != -1 and end_index != -1: username = file.name[start_index + 1:end_index] break # No need to continue loop if verified except Exception as e: print(f"Error processing image: {e}") if flag: return {"username": username} else: print("Not Verified") return {"username": "Not Found"}