|
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)) |
|
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))} |
|
|