Spaces:
Sleeping
Sleeping
import gradio as gr | |
import numpy as np | |
from PIL import Image | |
from keras.models import load_model | |
# Load your pre-trained model (make sure the model file is in the same directory) | |
model = load_model('brain_tumor_model.h5') | |
# Function to process image and make predictions | |
def predict_image(image): | |
# Resize the image | |
img = image.resize((128, 128)) | |
# Convert the image to a NumPy array | |
img = np.array(img) | |
# Check if the image has 3 color channels | |
if img.shape == (128, 128): # If grayscale, convert to RGB | |
img = np.stack((img,) * 3, axis=-1) | |
# Add a batch dimension | |
img = np.expand_dims(img, axis=0) | |
# Make the prediction | |
prediction = model.predict(img) | |
# Get the predicted class and confidence level | |
predicted_class = np.argmax(prediction) | |
confidence = np.max(prediction) | |
# Return the results | |
if predicted_class == 0: | |
return f'No tumor detected. Confidence: {confidence:.2f}' | |
else: | |
return f'Tumor detected. Confidence: {confidence:.2f}' | |
# Create custom CSS for background color | |
css = """ | |
body { | |
background-color: #f0f4f7; | |
} | |
""" | |
# Create the Gradio interface | |
iface = gr.Interface( | |
fn=predict_image, | |
inputs=gr.Image(type="pil"), | |
outputs=gr.Textbox(), | |
title="Brain Tumor Detection AI App", | |
description="Upload a Magnetic Resonance Imaging (MRI) scan image to detect brain tumors.", | |
css=css, # Apply the custom background color | |
#theme="dark", # Apply a dark theme to the interface | |
flagging_options=["Incorrect Diagnosis", "Image Not Clear", "Model Error"], # Add flagging options | |
) | |
# Launch the interface | |
iface.launch() |