Spaces:
Runtime error
Runtime error
import gradio as gr | |
import tensorflow as tf | |
import numpy as np | |
from PIL import Image | |
import io | |
import json | |
# Load the TensorFlow model | |
model = tf.keras.models.load_model('./plant_disease_detection.h5') | |
# Load categories | |
with open('./categories.json') as f: | |
categories = json.load(f) | |
def preprocess_image(image): | |
# Convert the image to a NumPy array | |
image = image.resize((224, 224)) # Adjust size as needed | |
image_array = np.array(image) / 255.0 # Normalize to [0, 1] | |
image_array = np.expand_dims(image_array, axis=0) # Add batch dimension | |
return image_array | |
def predict(image): | |
image_array = preprocess_image(image) | |
# Make prediction | |
predictions = model.predict(image_array) | |
predicted_class = np.argmax(predictions, axis=1)[0] | |
# Map to category names | |
predicted_label = categories.get(str(predicted_class), 'Unknown') | |
return predicted_label, float(predictions[0][predicted_class]) | |
# Create a Gradio interface | |
iface = gr.Interface( | |
fn=predict, | |
inputs=gr.Image(type="pil"), | |
outputs=[gr.Label(), gr.Number()], | |
title="Plant Disease Detection", | |
description="Upload an image of a plant leaf to detect if it has any diseases." | |
) | |
# Launch the interface | |
if __name__ == "__main__": | |
iface.launch() | |