ranga4all's picture
pneumonia-classification-app
a422730
raw
history blame contribute delete
No virus
1.35 kB
import gradio as gr
import numpy as np
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.preprocessing.image import load_img
from tensorflow.keras.applications.xception import preprocess_input
model = tf.keras.models.load_model('xray_model.h5')
class_names = ['NORMAL', 'PNEUMONIA']
sample_images = [
['IM-0105-0001.jpeg'],
['person104_bacteria_492.jpeg']
]
def predict_image(img):
# Preprocessing the image
x = tf.keras.preprocessing.image.img_to_array(img)
X = np.array([x]) # Convert single image to a batch.
X = preprocess_input(X)
prediction=model.predict(X)[0].flatten()
# Normalize the prediction
prediction = (prediction - np.min(prediction))/np.ptp(prediction)
return {class_names[i]: float(prediction[i]) for i in range(2)}
image = gr.inputs.Image(shape=(299,299))
label = gr.outputs.Label(num_top_classes=2)
iface = gr.Interface(fn=predict_image,
inputs=image,
outputs=label,
interpretation='default',
examples=sample_images,
title = 'Pneumonia Classification on chest X-rays App',
description= 'Get classification for the input image among NORMAL and PNEUMONIA'
)
iface.launch()