faceIdentify / app.py
awais0300's picture
Update app.py
e7db66b verified
import gradio as gr
import numpy as np
import tensorflow as tf
from tensorflow.keras.models import load_model
from PIL import Image
# Load the model
model = load_model("model.h5")
# Your class labels (update as per your model)
class_names = ['Angry', 'Disgust', 'Fear', 'Happy', 'Sad', 'Surprise', 'Neutral']
# Prediction function
def predict_expression(image):
try:
image = image.convert("RGB") # Ensure 3 channels
image = image.resize((224, 224)) # Resize to model's expected input
img_array = np.array(image).astype("float32") / 255.0
img_array = img_array.reshape(1, 224, 224, 3)
prediction = model.predict(img_array)
class_idx = int(np.argmax(prediction))
confidence = float(np.max(prediction))
return f"Expression: {class_names[class_idx]} ({confidence:.2%})"
except Exception as e:
return f"⚠️ Error: {str(e)}"
# Gradio interface
iface = gr.Interface(
fn=predict_expression,
inputs=gr.Image(type="pil"),
outputs="text",
title="Facial Expression Classifier",
description="Upload a face image and get the predicted emotion"
)
iface.launch()