import gradio as gr from tensorflow.keras.utils import img_to_array,load_img from keras.models import load_model import numpy as np # Load the pre-trained model from the local path model_path = 'sugar.h5' model = load_model(model_path) # Load the model here def predict_disease(image_file, model, all_labels): try: # Load and preprocess the image img = load_img(image_file, target_size=(224, 224)) # Use load_img from tensorflow.keras.utils img_array = img_to_array(img) img_array = np.expand_dims(img_array, axis=0) # Add batch dimension img_array = img_array / 255.0 # Normalize the image # Predict the class predictions = model.predict(img_array) # Use the loaded model here predicted_class = np.argmax(predictions[0]) # Get the predicted class label predicted_label = all_labels[predicted_class] # Print the predicted label to the console if predicted_label=='Sugarcane Healthy': predicted_label = predicted_label = """

Sugarcane Healthy



No need use Pesticides
""" elif predicted_label=='Sugarcane Yellow': predicted_label = """

Sugarcane Yellow

PESTICIDES TO BE USED:

* * * IMPORTANT NOTE * * *

Be sure to follow local regulations and guidelines for application

""" elif predicted_label=='Sugarcane Rust': predicted_label = """

Sugarcane Rust

PESTICIDES TO BE USED:

* * * IMPORTANT NOTE * * *

Be sure to follow local regulations and guidelines for application

""" elif predicted_label=='Sugarcane RedRot': predicted_label = """

Sugarcane RedRot

PESTICIDES TO BE USED:

* * * IMPORTANT NOTE * * *

Be sure to follow local regulations and guidelines for application

""" elif predicted_label=='Sugarcane Mosaic': predicted_label = """

Sugarcane Mosaic

PESTICIDES TO BE USED:

* * * IMPORTANT NOTE * * *

Be sure to follow local regulations and guidelines for application

""" else: predicted_label = """

Choose Correct image



""" return predicted_label except Exception as e: print(f"Error: {e}") return None # List of class labels all_labels = [ 'Sugarcane Yellow', 'Sugarcane Rust', 'Sugarcane RedRot','Sugarcane Mosaic', 'Sugarcane Healthy' ] # Define the Gradio interface def gradio_predict(image_file): return predict_disease(image_file, model, all_labels) # Pass the model to the function # Create a Gradio interface gr_interface = gr.Interface( fn=gradio_predict, # Function to call for predictions inputs=gr.Image(type="filepath"), # Upload image as file path outputs="html", # Output will be the class label as text title="Sugarcane Disease Predictor", description="Upload an image of a plant to predict the disease.", ) # Launch the Gradio app gr_interface.launch(debug=True)