smart-interactive-display/Assets/StreamingAssets/MergeFace/Gender_Prediction/GenderPredictionModule.py

31 lines
915 B
Python

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