Elena
Update app.py
d8bcdea verified
raw
history blame
3.03 kB
import gradio as gr
from tensorflow.keras.models import load_model
import numpy as np
from PIL import Image
model = load_model('xray_image_classifier_model.keras')
def predict(image):
img = image.resize((150, 150))
img_array = np.array(img) / 255.0
img_array = np.expand_dims(img_array, axis=0)
prediction = model.predict(img_array)
predicted_class = 'Pneumonia' if prediction > 0.5 else 'Normal'
return predicted_class
css = """
.gradio-container {
background-color: #f5f5f5;
font-family: Arial, sans-serif;
}
.gr-button {
background-color: #007bff; /* Same color as the heading */
color: white;
border-radius: 5px;
font-size: 16px;
}
.gr-button:hover {
background-color: #0056b3; /* Slightly darker shade for hover */
}
.gr-textbox, .gr-image {
border: 2px dashed #007bff;
padding: 20px;
border-radius: 10px;
background-color: #ffffff;
}
.gr-box-text {
color: #007bff;
font-size: 22px;
font-weight: bold;
text-align: center;
}
h1 {
font-size: 36px;
color: #007bff; /* Color for heading */
text-align: center;
}
p {
font-size: 20px;
color: #333;
text-align: center;
}
"""
description = """
**Automated Pneumonia Detection via Chest X-ray Classification**
This model leverages deep learning techniques to classify chest X-ray images as either 'Pneumonia' or 'Normal.' By utilizing the InceptionV3 architecture for transfer learning, combined with data preprocessing and augmentation, the model aims to deliver powerful performance in medical image analysis. It enhances the automation of diagnostic processes, aiding in the detection of pneumonia with high accuracy.
**Technologies Employed:**
- TensorFlow & Keras for model development
- InceptionV3 for transfer learning
- Numpy, Pandas, and Matplotlib for data handling and visualization
- Flask and Gradio for deployment and user interaction
**Sample Images:**
To test the model, select one of the sample images provided below. Click on an image and then press the "Initiate Diagnostic Analysis" button to receive the results.
"""
examples = [
["samples/normal_xray1.png"],
["samples/pneumonia_xray1.png"],
]
with gr.Blocks(css=css) as interface:
gr.Markdown("<h1>Automated Pneumonia Detection via Chest X-ray Classification</h1>")
gr.Markdown("<p>Upload an X-ray image to detect pneumonia.</p>")
with gr.Row():
image_input = gr.Image(label="Drop Image Here", type="pil", elem_classes=["gr-image", "gr-box-text"])
output = gr.Textbox(label="Model Analysis Output", elem_classes=["gr-textbox", "gr-box-text"])
submit_btn = gr.Button("Initiate Diagnostic Analysis", elem_classes=["gr-button"])
submit_btn.click(fn=predict, inputs=image_input, outputs=output)
gr.Examples(examples=examples, inputs=image_input)
gr.Markdown(description)
interface.launch()