Spaces:
Sleeping
Sleeping
| from ultralytics import YOLO | |
| import torch, joblib | |
| from huggingface_hub import hf_hub_download | |
| from torchvision import transforms | |
| import torchvision.models as models | |
| import torch.nn as nn | |
| import faiss, os, ast | |
| import numpy as np | |
| import pandas as pd | |
| def load_db(csv_path="users/face_features.csv"): | |
| if not os.path.exists(csv_path): | |
| return None, [], [] | |
| df = pd.read_csv(csv_path) | |
| df["features"] = df["features"].apply(ast.literal_eval) | |
| features = np.array(df["features"].tolist()).astype("float32") | |
| labels = df["label"].tolist() | |
| d = features.shape[1] | |
| index = faiss.IndexFlatIP(d) | |
| faiss.normalize_L2(features) | |
| index.add(features) | |
| return index, labels, df | |
| model_path = hf_hub_download(repo_id="arnabdhar/YOLOv8-Face-Detection", filename="model.pt") | |
| face_detector = YOLO(model_path) | |
| efficientnet_model = models.efficientnet_v2_s(weights=None) | |
| efficientnet_model.classifier = nn.Identity() | |
| state_dict = torch.load("faceVerificationModel/efficientnetv2_s_features.pth", map_location="cpu") | |
| efficientnet_model.load_state_dict(state_dict) | |
| efficientnet_model.eval() | |
| pca_xgb = joblib.load("faceVerificationModel/pca_xgb_pipeline.pkl") | |
| transform = transforms.Compose([ | |
| transforms.Resize((224, 224)), | |
| transforms.ToTensor(), | |
| transforms.Normalize([0.485, 0.456, 0.406], | |
| [0.229, 0.224, 0.225]) | |
| ]) |