Spaces:
Running
Running
File size: 2,751 Bytes
58bd1b2 48cddcb baf7aa0 28ea4d4 35e7ead 5867cce cefb660 59da87a 4af4765 418cf06 bc530f2 846e726 bc530f2 6efd78a bc530f2 846e726 bc530f2 3760c0b 6efd78a 58bd1b2 bc530f2 dfa03a1 2c1be08 bc530f2 1a2b0c1 bc530f2 c6dd621 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
import numpy as np
import streamlit as st
from PIL import Image
import tensorflow as tf
from utils import preprocess_image
# Initialize labels and model
labels = ['cardboard', 'glass', 'metal', 'paper', 'plastic', 'trash']
model = tf.keras.models.load_model('classify_model.h5')
# Customized Streamlit layout
st.set_page_config(
page_title="EcoIdentify by EcoClim Solutions",
page_icon="https://ecoclimsolutions.files.wordpress.com/2024/01/rmcai-removebg.png?resize=48%2C48",
layout="wide",
initial_sidebar_state="expanded",
)
# Customized Streamlit styles
st.markdown(
"""
<style>
body {
color: #333333;
background-color: #f9f9f9;
font-family: 'Helvetica', sans-serif;
}
.st-bb {
padding: 0rem;
}
.st-ec {
color: #666666;
}
.st-ef {
color: #666666;
}
.st-ei {
color: #333333;
}
.st-dh {
font-size: 36px;
font-weight: bold;
color: #4CAF50;
text-align: center;
margin-bottom: 20px;
}
.st-gf {
background-color: #4CAF50;
color: white;
padding: 15px 30px;
font-size: 18px;
border: none;
border-radius: 8px;
cursor: pointer;
transition: background-color 0.3s;
}
.st-gf:hover {
background-color: #45a049;
}
.st-gh {
text-align: center;
font-size: 24px;
font-weight: bold;
margin-bottom: 20px;
}
.st-logo {
max-width: 100%;
height: auto;
margin: 20px auto;
display: block;
}
</style>
""",
unsafe_allow_html=True,
)
# Logo
st.image("https://ecoclimsolutions.files.wordpress.com/2024/01/rmcai-removebg.png?resize=48%2C48")
# Page title
st.title("EcoIdentify by EcoClim Solutions")
# Subheader
st.header("Upload a waste image to find its category")
# Image upload section
opt = st.selectbox("How do you want to upload the image for classification?", ("Please Select", "Upload image from device"))
image = None
if opt == 'Upload image from device':
file = st.file_uploader('Select', type=['jpg', 'png', 'jpeg'])
if file:
image = preprocess_image(file)
try:
if image is not None:
st.image(image, width=256, caption='Uploaded Image')
if st.button('Predict'):
prediction = model.predict(image[np.newaxis, ...])
st.success(f'Prediction: {labels[np.argmax(prediction[0], axis=-1)]}')
except Exception as e:
st.error(f"An error occurred: {e}")
|