20-20 / app.py
arjun-ms's picture
Upload 3 files
cf26c0a verified
import gradio as gr
import numpy as np
import cv2
import keras
# Load model
model = keras.models.load_model('Server/3-class-improved.h5')
def predict_actor(image):
"""Predict which actor is in the image"""
# Preprocess image
img = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
img = cv2.resize(img, (224, 224))
img = np.array(img) / 255.0
img = img.reshape(-1, 224, 224, 1)
# Get prediction
result = model.predict(img)
# Interpret results
if result[0][0] > result[0][1] and result[0][0] > result[0][2]:
prediction = 'Mammootty'
confidence = result[0][0]
elif result[0][1] > result[0][0] and result[0][1] > result[0][2]:
prediction = 'Mohanlal'
confidence = result[0][1]
else:
prediction = 'Unknown person'
confidence = result[0][2]
return f"{prediction} (Confidence: {confidence:.2%})"
# Create Gradio interface
demo = gr.Interface(
fn=predict_actor,
inputs=gr.Image(),
outputs=gr.Text(label="Prediction"),
title="Mammootty vs Mohanlal Classifier",
description="Upload an image to classify whether it's Mammootty or Mohanlal",
examples=[
# You can add example image paths here if you want
]
)
if __name__ == "__main__":
demo.launch()