Spaces:
Sleeping
Sleeping
| 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() | |
| def read_root(): | |
| return {"Hello": "World"} | |
| 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"} | |