Spaces:
Runtime error
Runtime error
import streamlit as st | |
import tensorflow as tf | |
import zipfile | |
from tensorflow.keras.models import load_model | |
# Unzipping model | |
zip_ref = zipfile.ZipFile("L10_fine_tuned_model.zip", "r") | |
zip_ref.extractall() | |
zip_ref.close() | |
# Loading model | |
model_1=load_model("L10_fine_tuned_model") | |
model_2=load_model("L10_fine_tuned_model") | |
def load_and_predict_image(model,Input,scale=False): | |
classes=['bacterial_leaf_blight', 'bacterial_leaf_streak', 'bacterial_panicle_blight', 'blast', 'brown_spot', 'dead_heart', 'downy_mildew', 'hispa', 'normal', 'tungro'] | |
#img=tf.io.read_file(Input) | |
img=tf.io.decode_image(Input,channels=3) | |
img=tf.image.resize(img,size=(224,224)) | |
if scale: | |
img/255. | |
else: | |
img | |
pred_probs=model_1.predict(tf.expand_dims(img,axis=0)) | |
pred_labels=tf.argmax(pred_probs,axis=1)[0].numpy() | |
pred_class=classes[pred_labels] | |
return pred_class | |
def main(): | |
st.set_page_config(page_title="Paddy Disease Detector", | |
page_icon="π±", | |
layout="wide", | |
initial_sidebar_state="expanded") | |
st.title("Paddy Disease Detector") | |
st.write("A Computer vision model that classifies a given paddy leaf images into one of the nine disease categories or a normal leaf accurately.") | |
col1, col2 = st.columns(2) | |
with col1: | |
uploaded_file=st.file_uploader("Click to upload paddy leaf") | |
selected_model = st.selectbox("Select Model",("model 1", "model 2"), index=0) | |
if uploaded_file is not None: | |
uploaded_img=uploaded_file.read() | |
col2.image(uploaded_file,width=500) | |
predict=st.button("Predict!") | |
if predict: | |
if uploaded_file is not None: | |
with st.spinner('Please Wait π©βπ³'): | |
# setting model and rescalling | |
if selected_model == 'model 1': | |
pred_model = model_1 | |
pred_rescale = False | |
else: | |
pred_model = model_2 | |
pred_rescale = False | |
# makeing prediction | |
pred = load_and_predict_image(model=pred_model, Input=uploaded_img, scale=pred_rescale) | |
col1.success(f"It's an {pred}") | |
else: | |
st.warning('Please Upload Image') | |
if __name__=='__main__': | |
main() |