import numpy as np import tensorflow as tf import cv2 class FaceEmbedding: def __init__(self, model_path="models/face_recognition.tflite"): self.interpreter = tf.lite.Interpreter(model_path=model_path) self.interpreter.allocate_tensors() self.input_details = self.interpreter.get_input_details() self.output_details = self.interpreter.get_output_details() def get_embedding(self, face_image): """استخراج المتجه المميز للوجه""" # تحضير الوجه face_resized = cv2.resize(face_image, (112, 112)) face_normalized = face_resized.astype(np.float32) / 127.5 - 1.0 face_input = np.expand_dims(face_normalized, axis=0) # إنشاء المتجه self.interpreter.set_tensor(self.input_details[0]['index'], face_input) self.interpreter.invoke() embedding = self.interpreter.get_tensor(self.output_details[0]['index']) # تطبيع المتجه embedding = embedding / np.linalg.norm(embedding) return embedding[0] def compare_faces(self, embedding1, embedding2, threshold=0.6): """مقارنة وجهين""" similarity = np.dot(embedding1, embedding2) return similarity > threshold, similarity