from tensorflow.keras.models import load_model from PIL import Image import numpy as np model = load_model("my_model.h5") emotions = ["Angry", "Disgust", "Fear", "Happy", "Sad", "Surprise", "Neutral"] def preprocess(image): image = image.convert("L").resize((48, 48)) arr = np.array(image) / 255.0 arr = np.expand_dims(arr, axis=(0, -1)) # (1, 48, 48, 1) return arr def predict(image): img = preprocess(image) pred = model.predict(img) label = emotions[np.argmax(pred)] return {"label": label, "score": float(np.max(pred))}