import streamlit as st import numpy as np from PIL import Image import tensorflow as tf model = tf.keras.models.load_model('bestmodelshoesprediction.h5') # Custom function to load and predict label for the image def predict(img_rel_path): # Import Image from the path with size of (300, 300) img = Image.open(img_rel_path).resize((300, 300)) # Convert Image to a numpy array img = np.array(img) # Scaling the Image Array values between 0 and 1 img = img / 255.0 # Get the Predicted Label for the loaded Image p = model.predict(img[np.newaxis, ...]) # Label array labels = {0: 'adidas', 1: 'converse', 2: 'nike'} predicted_class = labels[np.argmax(p[0], axis=-1)] classes=[] prob=[] for i,j in enumerate (p[0],0): classes.append(labels[i]) prob.append(round(j*100,2)) return predicted_class, classes, prob def main(): st.title("Deteksi Merk Sepatu") uploaded_file = st.file_uploader("Choose a file") if uploaded_file is not None: image = Image.open(uploaded_file) st.image(image, caption='Uploaded Image', use_column_width=True) if st.button("Predict"): class_, classes, prob = predict(uploaded_file) st.write("Jenis Sepatu:", class_) st.write("Individual Probabilities:") for i in range(len(classes)): st.write(f"{classes[i].upper()}: {prob[i]}%") if __name__ == "__main__": main()