dentist / app.py
OmarEllethy's picture
Upload app.py
c49ee94 verified
raw
history blame
1.81 kB
import subprocess
# Define the list of libraries to install
libraries = [
'gradio',
'tensorflow',
'numpy',
'Pillow',
'opencv-python-headless', # This installs OpenCV without GUI support
]
# Install each library using pip
for library in libraries:
try:
subprocess.check_call(['pip', 'install', library])
except subprocess.CalledProcessError as e:
print(f"Error installing {library}: {e}")
import gradio as gr
import tensorflow as tf
import numpy as np
from PIL import Image
import io
# Load the pre-trained TensorFlow model
model = tf.keras.models.load_model("imageclassifier.h5")
# Define the function to predict the teeth health
def predict_teeth_health(image):
# Convert the PIL image object to a file-like object
image_bytes = io.BytesIO()
image.save(image_bytes, format="JPEG")
# Load the image from the file-like object
image = tf.keras.preprocessing.image.load_img(image_bytes, target_size=(256, 256))
image = tf.keras.preprocessing.image.img_to_array(image)
image = np.expand_dims(image, axis=0)
# Make a prediction
prediction = model.predict(image)
# Get the probability of being 'Good'
probability_good = prediction[0][0] # Assuming it's a binary classification
# Return the predicted class name
if probability_good > 0.5:
return f"Predicted: Your Teeth are Good And You Don't Need To Visit Doctor"
else:
return f"Predicted: Your Teeth are Bad And You Need To Visit Doctor"
# Define the Gradio interface
iface = gr.Interface(
fn=predict_teeth_health,
inputs=gr.Image(type="pil"),
outputs="text",
title="<h1 style='color: lightgreen; text-align: center;'>Dentella</h1>",
)
# Deploy the Gradio interface using Gradio's hosting service
iface.launch(share=True)