dentist / app.py
Ahmed235's picture
Update app.py
f9351da verified
raw
history blame
1.31 kB
import json
import numpy as np
import gradio as gr
import tensorflow as tf
from PIL import Image
from tensorflow.keras.models import load_model
# Load the model
model_path = 'final_teath_classifier.h5'
model = tf.keras.models.load_model(model_path)
# Define preprocessing function
def preprocess_image(image):
# Resize the image to match input size
image = Image.fromarray(image)
image = image.resize((256, 256))
# Convert image to array and preprocess input
img_array = np.array(image) / 255.0
# Add batch dimension
img_array = np.expand_dims(img_array, axis=0)
return img_array
# Define prediction function
def predict_image(image):
img_array = preprocess_image(image)
outputs = model(img_array)
predictions = tf.nn.softmax(outputs.logits, axis=-1)
predicted_class = np.argmax(predictions)
if predicted_class == 0:
predict_label = "Clean"
else:
predict_label = "Carries"
return {"prediction": predict_label, "confidence": float(np.max(predictions))}
# Create the interface
input_interface = gr.inputs.Image(shape=(256, 256), image_mode='RGB')
output_interface = gr.outputs.Label(num_top_classes=2)
iface = gr.Interface(fn=predict_image, inputs=input_interface, outputs=output_interface)
# Launch the interface
iface.launch()