Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import tensorflow as tf | |
| import numpy as np | |
| from PIL import Image, ImageOps | |
| IMG_SIZE = 128 | |
| # def predict_pneumonia(image): | |
| def predict_pneumonia(image): | |
| # Prediction function | |
| model = tf.keras.models.load_model('improved_pneumonia_model.keras') | |
| # Preprocess image | |
| image = np.expand_dims(image, axis=-1) | |
| resize = tf.image.resize(image, (IMG_SIZE, IMG_SIZE)) | |
| resize = resize / 255.0 | |
| # Make prediction | |
| prediction = model.predict(np.expand_dims(resize, 0)) | |
| yhat = model.predict(np.expand_dims(resize, 0)) | |
| pred_value = yhat[0][0] | |
| # Return prediction | |
| return { | |
| 'NORMAL': 1 - float(pred_value), | |
| 'PNEUMONIA': float(pred_value) | |
| } | |
| # Build the Gradio interface | |
| gr_interface = gr.Interface( | |
| fn=predict_pneumonia, | |
| inputs=gr.Image(image_mode='L'), | |
| outputs=gr.Label(num_top_classes=2), | |
| title='Pneumonia X-Ray Classifier', | |
| description='Upload a chest X-ray image to check for pneumonia.', | |
| examples=[ | |
| # Optional: Add example images here | |
| ["val/NORMAL/NORMAL2-IM-1427-0001.jpeg"], | |
| ["val/NORMAL/NORMAL2-IM-1430-0001.jpeg"], | |
| ["val/NORMAL/NORMAL2-IM-1431-0001.jpeg"], | |
| ["val/NORMAL/NORMAL2-IM-1436-0001.jpeg"], | |
| ["val/NORMAL/NORMAL2-IM-1437-0001.jpeg"], | |
| ["val/NORMAL/NORMAL2-IM-1438-0001.jpeg"], | |
| ["val/NORMAL/NORMAL2-IM-1440-0001.jpeg"], | |
| ["val/NORMAL/NORMAL2-IM-1442-0001.jpeg"], | |
| ["val/PNEUMONIA/person1946_bacteria_4874.jpeg"], | |
| ["val/PNEUMONIA/person1946_bacteria_4875.jpeg"], | |
| ["val/PNEUMONIA/person1947_bacteria_4876.jpeg"], | |
| ["val/PNEUMONIA/person1949_bacteria_4880.jpeg"], | |
| ["val/PNEUMONIA/person1950_bacteria_4881.jpeg"], | |
| ["val/PNEUMONIA/person1951_bacteria_4882.jpeg"], | |
| ["val/PNEUMONIA/person1952_bacteria_4883.jpeg"], | |
| ["val/PNEUMONIA/person1954_bacteria_4886.jpeg"] | |
| ] | |
| ) | |
| # Launch the app | |
| if __name__=="__main__": | |
| gr_interface.launch(share = True) |