File size: 3,033 Bytes
fef9706
 
 
d5b91d6
fef9706
 
 
d5b91d6
 
 
 
 
 
 
 
 
 
 
 
 
 
d8bcdea
d5b91d6
 
 
 
 
d8bcdea
d5b91d6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d8bcdea
d5b91d6
 
 
 
 
 
 
 
de73260
511526f
 
 
 
d5b91d6
511526f
 
 
 
 
 
 
de73260
511526f
dd98268
 
87bb072
 
dd98268
 
d5b91d6
511526f
 
d5b91d6
 
 
1864522
d5b91d6
511526f
d5b91d6
 
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
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()