Spaces:
Runtime error
Runtime error
| # app.py | |
| import gradio as gr | |
| import tensorflow as tf | |
| import numpy as np | |
| from PIL import Image | |
| # Load the model | |
| model = tf.keras.models.load_model('Adam_8_1000_Acc 0.88_Nutrient-Model.h5') | |
| # Define the class names | |
| class_names = ['Calcium','Magnesium','Nitrogen','Phosphorus','Potassium','Sulfur'] | |
| # Function to classify the image | |
| def classify_image(image): | |
| # Convert the numpy array to a PIL Image object | |
| pil_image = Image.fromarray(np.uint8(image)).convert('RGB') | |
| # Resize the image | |
| pil_image = pil_image.resize((224, 224)) | |
| # Convert the PIL Image object to a numpy array | |
| image_array = np.array(pil_image) | |
| # Normalize the image | |
| normalized_image_array = (image_array.astype(np.float32) / 255.0) | |
| # Reshape the image | |
| data = normalized_image_array.reshape((1, 224, 224, 3)) | |
| # Make the prediction | |
| prediction = model.predict(data)[0] | |
| # Get the predicted class name | |
| predicted_class = class_names[np.argmax(prediction)] | |
| # Get the confidence score for the predicted class | |
| confidence_score = np.max(prediction) | |
| # Return the predicted class and confidence score | |
| return f"{predicted_class} ({confidence_score*100:.2f}%)" | |
| # Define the Gradio interface | |
| inputs = gr.inputs.Image() | |
| outputs = gr.outputs.Textbox() | |
| interface = gr.Interface(fn=classify_image, inputs=inputs, outputs=outputs, title="Image Classification", description="Classify an image into one of six classes: Phosphorus, Magnesium, Nitrogen,Potassium, Calcium, Sulfur.") | |
| # Launch the interface | |
| interface.launch() |