Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import tensorflow as tf | |
| from huggingface_hub import hf_hub_download | |
| from PIL import Image | |
| import numpy as np | |
| # Load model from Hugging Face Hub | |
| model_path = hf_hub_download(repo_id="arpitsharrrma/soilnet-model", filename="SoilNet.keras") | |
| model = tf.keras.models.load_model(model_path) | |
| # Define class labels (adjust if needed) | |
| class_names = ['Alluvial Soil', 'Black Soil', 'Clay Soil', 'Red Soil', 'Sandy Soil'] | |
| def predict_soil(image): | |
| image = image.resize((150, 150)) # Model input size | |
| img_array = np.array(image) / 255.0 | |
| img_array = img_array.reshape(1, 150, 150, 3) | |
| predictions = model.predict(img_array) | |
| predicted_class = class_names[np.argmax(predictions)] | |
| confidence = float(np.max(predictions)) * 100 | |
| return f"{predicted_class} ({confidence:.2f}% confidence)" | |
| # Gradio Interface | |
| interface = gr.Interface( | |
| fn=predict_soil, | |
| inputs=gr.Image(type="pil", label="Upload Soil Image"), | |
| outputs=gr.Textbox(label="Predicted Soil Type"), | |
| title="SoilNet - Soil Type Classifier", | |
| description="Upload a soil image and the model will predict the soil type using deep learning." | |
| ) | |
| interface.launch() | |