import torch import numpy as np from app.config import EDGEFACE_WEIGHTS, EDGEFACE_MODEL_NAME from app.services.edgeface_model import get_model from app.utils.preprocess import preprocess_face # ---------------- تحميل الموديل مرة واحدة بس ---------------- _net = get_model(EDGEFACE_MODEL_NAME, fp16=False) _net.load_state_dict(torch.load(EDGEFACE_WEIGHTS, map_location="cpu")) _net.eval() def get_embedding(face_bgr: np.ndarray) -> np.ndarray: """بياخد صورة وجه (crop بصيغة BGR) ويرجع الـ embedding بتاعه (512,)""" face_tensor = preprocess_face(face_bgr) with torch.no_grad(): emb = _net(face_tensor).squeeze().numpy().astype(np.float32) return emb