from keras.models import load_model import numpy as np import cv2 class GenderPrediction: def __init__(self): self.model = load_model("gender_v1.0.h5") def predict_gender(self, image): # chuyển ảnh về mức xám gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # resize ảnh phủ hợp với model target_size = (48, 48) resized_face = cv2.resize(gray, target_size) # normalize ảnh normalize_face = resized_face / 255.0 # chuyển về cùng shape với input tensror (1,48,48) normalize_face = np.expand_dims(normalize_face, axis=0) # model output 'probabilities': array([[0.019824,0.98018]], dtype=float32) predictions = self.model.predict(normalize_face) threshold = 0.5 predicted_class = 'Male' if predictions[0][1] >= threshold else 'Female' return predicted_class