Fluospark128 commited on
Commit
3a824d8
·
verified ·
1 Parent(s): eaff305

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +38 -1
app.py CHANGED
@@ -4,4 +4,41 @@ os.environ["KERAS_BACKEND"] = "jax"
4
 
5
  import keras
6
 
7
- model = keras.saving.load_model("hf://Fluospark128/Cassava_Disease_Classifier")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
 
5
  import keras
6
 
7
+ #model = keras.saving.load_model("hf://Fluospark128/Cassava_Disease_Classifier")
8
+
9
+ import streamlit as st
10
+ import tensorflow as tf
11
+ import numpy as np
12
+ from PIL import Image
13
+
14
+ # Load the model
15
+ @st.cache_resource
16
+ def load_model():
17
+ model = keras.saving.load_model("hf://Fluospark128/Cassava_Disease_Classifier") #model = tf.keras.models.load_model("cassava_model.h5")
18
+ return model
19
+
20
+ model = load_model()
21
+
22
+ # Class labels
23
+ CLASS_NAMES = ["Cassava Bacterial Blight", "Cassava Mosaic Disease", "Cassava Brown Streak Disease", "Healthy", "Cassava Green Mottle"]
24
+
25
+ # Streamlit UI
26
+ st.title("Cassava Leaf Disease Classifier")
27
+ st.write("Upload an image of a cassava leaf to classify its disease.")
28
+
29
+ # File uploader
30
+ uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "png", "jpeg"])
31
+
32
+ if uploaded_file is not None:
33
+ image = Image.open(uploaded_file).resize((224, 224))
34
+ st.image(image, caption="Uploaded Image", use_column_width=True)
35
+
36
+ # Preprocess image
37
+ img_array = np.array(image) / 255.0 # Normalize
38
+ img_array = np.expand_dims(img_array, axis=0) # Add batch dimension
39
+
40
+ # Make prediction
41
+ prediction = model.predict(img_array)
42
+ predicted_class = CLASS_NAMES[np.argmax(prediction)]
43
+
44
+ st.write(f"Prediction: **{predicted_class}**")