| | import streamlit as st |
| | from tensorflow.keras.models import load_model |
| | import numpy as np |
| | from PIL import Image |
| | import cv2 |
| | from tensorflow.keras.preprocessing.image import img_to_array, load_img |
| |
|
| | @st.cache_data() |
| | def load(): |
| | model_path = "best_model.h5" |
| | model = load_model(model_path, compile=False) |
| | return model |
| |
|
| | |
| | model = load() |
| |
|
| |
|
| | def predict(upload): |
| |
|
| | img = Image.open(upload) |
| | img = np.asarray(img) |
| | img_resize = cv2.resize(img, (224, 224)) |
| | img_resize = np.expand_dims(img_resize, axis=0) |
| | pred = model.predict(img_resize) |
| |
|
| | rec = pred[0][0] |
| |
|
| | return rec |
| |
|
| |
|
| |
|
| |
|
| | st.title("Poubelle Intelligente") |
| |
|
| | upload = st.file_uploader("Chargez l'image de votre objet", |
| | type=['png', 'jpeg', 'jpg']) |
| |
|
| | c1, c2 = st.columns(2) |
| |
|
| | if upload: |
| | rec = predict(upload) |
| | prob_recyclable = rec * 100 |
| | prob_organic = (1-rec)*100 |
| |
|
| | c1.image(Image.open(upload)) |
| | if prob_recyclable > 50: |
| | c2.write(f"Je suis certain à {prob_recyclable:.2f} % que l'objet est recyclable") |
| | else: |
| | c2.write(f"Je suis certain à {prob_organic:.2f} % que l'objet n'est pas recyclable") |
| |
|
| | |
| |
|