File size: 3,398 Bytes
fef9706 d5b91d6 fef9706 d5b91d6 ed4241e d5b91d6 ca05996 d5b91d6 ca05996 ed4241e d5b91d6 ed4241e d5b91d6 ed4241e d5b91d6 f12b1b6 d5b91d6 de73260 511526f d5b91d6 511526f dd98268 87bb072 dd98268 d5b91d6 511526f b6014ed d5b91d6 1864522 d5b91d6 511526f d5b91d6 cb9f8e0 182bcfb dd98268 de73260 dd98268 d5b91d6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
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;
color: blue;
border: none; /* Remove default border */
border-radius: 5px; /* Rounded corners */
font-size: 16px; /* Adjust font size */
padding: 10px 20px; /* Add padding for a larger clickable area */
cursor: pointer; /* Change cursor to pointer to indicate it's clickable */
transition: background-color 0.3s ease; /* Smooth hover transition */
}
.gr-button:hover {
background-color: #0056b3; /* Darker blue on 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;
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
"""
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>Submit a chest X-ray image below.</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.Markdown(
'<div style="background-color: yellow; padding: 10px; border-radius: 5px; font-weight: bold;">'
'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.'
'</div>'
)
gr.Examples(examples=examples, inputs=image_input)
gr.Markdown(description)
interface.launch()
|