Spaces:
Running
Running
File size: 3,564 Bytes
58bd1b2 48cddcb baf7aa0 28ea4d4 35e7ead 5867cce 2bbf53b cefb660 59da87a 4af4765 418cf06 2bbf53b 404895b bc530f2 846e726 bc530f2 581f508 2bbf53b 48fa5e6 581f508 1614706 bc530f2 92b77a0 581f508 2bbf53b 48fa5e6 2bbf53b 404895b cac4e44 |
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 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
import numpy as np
import streamlit as st
from PIL import Image
import tensorflow as tf
from utils import preprocess_image
import numpy as np
import streamlit as st
import tensorflow as tf
from PIL import Image
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')
# Accumulate images and labels for training
accumulated_images = []
accumulated_labels = []
# 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")
mode = st.selectbox("Select Mode", ["Predict Mode", "Train Mode"])
if mode == "Predict Mode":
# ... [same code for Predict Mode] ...
elif mode == "Train Mode":
# Train the model with a new image and label
st.header("Train the model with a new image and label")
# Image upload section
file = st.file_uploader('Select', type=['jpg', 'png', 'jpeg'])
if file:
try:
image = preprocess_image(file)
st.image(image, width=256, caption='Uploaded Image')
# Label input
user_label = st.selectbox("Select the correct label", labels)
# Train button
if st.button('Train Model'):
accumulated_images.append(image[np.newaxis, ...])
label_index = labels.index(user_label)
label_one_hot = tf.one_hot(label_index, len(labels))
accumulated_labels.append(label_one_hot)
if len(accumulated_images) >= 5: # Example threshold
X_train = np.vstack(accumulated_images)
y_train = np.vstack(accumulated_labels)
model.fit(X_train, y_train, epochs=2, batch_size=1)
st.success(f'Model has been trained with the accumulated images and labels.')
# Clear accumulated data
accumulated_images.clear()
accumulated_labels.clear()
except Exception as e:
st.error(f"An error occurred: {e}. Please contact us EcoClim Solutions at EcoClimSolutions.wordpress.com.") |