Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import tensorflow as tf | |
| import numpy as np | |
| from PIL import Image | |
| # Load the model from local path (available in Space's files) | |
| model = tf.keras.models.load_model("brain_tumor_model.h5") | |
| # Class labels | |
| class_names = ['Glioma Tumor', 'Meningioma Tumor', 'No Tumor', 'Pituitary Tumor'] | |
| # Image preprocessing | |
| def preprocess_image(image): | |
| image = image.resize((224, 224)) | |
| image = np.array(image) / 255.0 | |
| if image.shape[-1] == 4: | |
| image = image[..., :3] # Remove alpha if present | |
| image = np.expand_dims(image, axis=0) | |
| return image | |
| # Prediction logic | |
| def predict(image): | |
| img = preprocess_image(image) | |
| prediction = model.predict(img) | |
| predicted_class = class_names[np.argmax(prediction)] | |
| confidence = np.max(prediction) | |
| return f"Predicted Tumor Type: {predicted_class} (Confidence: {confidence:.2f})" | |
| # Gradio interface | |
| interface = gr.Interface( | |
| fn=predict, | |
| inputs=gr.Image(type="pil"), | |
| outputs="text", | |
| title="🧠 Brain Tumor MRI Classifier", | |
| description="Upload a Brain MRI image to predict if it is Glioma, Meningioma, Pituitary Tumor, or No Tumor." | |
| ) | |
| interface.launch() | |