Acres-PPDC / app.py
JohanBeytell's picture
Create app.py
8111363 verified
raw
history blame
1.19 kB
import gradio as gr
import numpy as np
from tensorflow.keras.models import load_model
from tensorflow.keras.preprocessing import image
import tensorflow as tf
# Load the saved model
model = load_model('acres-ppdc-01.keras')
# Define the classes the model was trained on
class_labels = ['Potato___Early_blight', 'Potato___Late_blight', 'Potato___healthy']
def classify_potato_plant(img):
# Preprocess the image for the model
img = img.resize((256, 256)) # Resize to the same size the model was trained on
img = image.img_to_array(img)
img = np.expand_dims(img, axis=0)
img = img / 255.0 # Normalize the image
# Make the prediction
predictions = model.predict(img)
predicted_class = np.argmax(predictions[0])
confidence = predictions[0][predicted_class]
# Get the predicted class and confidence score
return class_labels[predicted_class], confidence
# Create the Gradio interface
interface = gr.Interface(
fn=classify_potato_plant,
inputs=gr.inputs.Image(type="pil"),
outputs=[gr.outputs.Label(num_top_classes=1), gr.outputs.Textbox(label="Confidence Score")]
)
# Launch the app
if __name__ == "__main__":
interface.launch()