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"}