Poizon-App / app.py
aus10powell's picture
Upload 11 files
d3b11cc
raw
history blame
1.31 kB
import streamlit as st
from PIL import Image, ImageOps
import io
from img_classification import teachable_machine_classification, load_model
from tensorflow import keras
st.set_option("deprecation.showfileUploaderEncoding", False)
st.title("Detecting presence of Poison Oak")
st.header("Poison Oak Classification Example")
st.text("Upload an image for classification as poison oak or no poison oak")
# Load trained model
model = load_model("./best_model.h5")
print("Starting Streamlit app")
uploaded_file = st.file_uploader("Select an image ...", type=["jpg", "png", "jpeg"])
if uploaded_file is not None:
image = Image.open(uploaded_file)
st.image(image, caption="Uploaded image", use_column_width=True)
st.write("")
st.write("Classifying...")
label = teachable_machine_classification(img=image, model=model)
if label <= 0.2:
st.write("Very unlikely that this is poison oak.")
elif (label > 0.2) & (label <= 0.6):
st.write(
"Unsure from this picture. You may need to retake a closer/clearer picture."
)
elif (label > 0.6) & (label <= 0.7):
st.write("Decent chance that this is poison oak.")
else:
st.write("{:.1f}% chance that this might be poison oak".format(label * 100))
else:
st.write("No file uploaded")