Attendance_System / app /utils /preprocess.py
HossamFakher's picture
Upload 42 files
c1ff2a6 verified
Raw
History Blame Contribute Delete
757 Bytes
import cv2
import numpy as np
import torch
def preprocess_face(face_bgr: np.ndarray) -> torch.Tensor:
"""
بياخد صورة وجه (BGR من OpenCV) ويرجعها Tensor جاهز للموديل
"""
face = cv2.resize(face_bgr, (112, 112))
face = cv2.cvtColor(face, cv2.COLOR_BGR2RGB)
face = np.transpose(face, (2, 0, 1))
face_tensor = torch.from_numpy(face).unsqueeze(0).float()
face_tensor.div_(255).sub_(0.5).div_(0.5)
return face_tensor
def cosine_similarity(a: np.ndarray, b: np.ndarray) -> float:
"""Cosine similarity بين embedding واحد وembedding تاني"""
a = a.flatten()
b = b.flatten()
denom = (np.linalg.norm(a) * np.linalg.norm(b)) + 1e-8
return float(np.dot(a, b) / denom)