File size: 1,191 Bytes
8111363
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
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()