File size: 1,319 Bytes
4362f98 8d7e015 ae2057d 652d09f ae2057d ae22df9 652d09f ae2057d 652d09f ae2057d 652d09f ae2057d 652d09f ae2057d c3d5f77 ae22df9 ffb6da3 ae22df9 c3d5f77 f36f480 088edb6 ae2057d 652d09f ffb6da3 f36f480 ae22df9 dc024e4 652d09f ae2057d |
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 |
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
import gradio as gr
import numpy as np
import cv2
import tensorflow as tf
# Load the model
model = tf.keras.models.load_model('model.h5')
def preprocess_image(image):
resized_img = cv2.resize(image, (180, 180))
img_array = np.array(resized_img).reshape((1, 180, 180, 3))
return img_array
def predict_pneumonia(image):
img_array = preprocess_image(image)
prediction = model.predict(img_array)[0][0]
# Use a more robust threshold for determining whether an image has pneumonia
threshold = 0.5
if prediction >= threshold:
pneumonia_prediction = 1
else:
pneumonia_prediction = 0
return pneumonia_prediction
inputs = gr.inputs.Image(shape=(180, 180))
outputs = gr.outputs.Label(num_top_classes=2)
gradio_interface = gr.Interface(
fn=predict_pneumonia,
inputs=inputs,
outputs=outputs,
title="Pneumonia X-Ray Classification API",
description="This API classifies images of chest X-rays as having pneumonia or being normal.",
examples=[
["person1000_bacteria_2931.jpeg"],
["person1000_virus_1681.jpeg"],
["person1946_bacteria_4875.jpeg"],
["person1952_bacteria_4883.jpeg"]
],
theme="default",
allow_flagging=False
)
gradio_interface.launch()
|