File size: 1,310 Bytes
4362f98 8d7e015 ae2057d 652d09f ae2057d ae22df9 652d09f ae2057d 652d09f ae2057d 652d09f ae2057d 652d09f ae2057d c3d5f77 ae22df9 ffb6da3 ae22df9 68e9659 c3d5f77 68e9659 371cbde ae2057d 652d09f ffb6da3 f36f480 9dd1cce a898b95 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 |
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:
return "Pneumonia"
else:
return "Normal"
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"],
["NORMAL2-IM-1427-0001.jpeg"]
],
theme="default",
allow_flagging=False
)
gradio_interface.launch()
|