hammammahdy's picture
first commit
30fae3d
import streamlit as st
import pandas as pd
import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt
from PIL import Image
def run():
# membuat title
st.title('Computer Vision Artificial Neural Network')
# membuat subheader
st.subheader('Prediction Between Daisy and Dandelion Flower')
# menambahkan gambar
image = Image.open('header2.jpg')
st.image(image)
# inference
model = tf.keras.models.load_model('model_cv.h5')
data_inf = st.file_uploader("Upload file image to predict", type=['jpg', 'png', 'jpeg'])
# submit button
submitted = st.button('Predict')
# logic ketika predict button ditekan
if submitted and data_inf:
img = Image.open(data_inf)
img = img.resize((150,150))
# img = tf.keras.utils.load_img(data_inf, target_size=(150, 150))
x = tf.keras.utils.img_to_array(img)/255
x = np.expand_dims(x, axis=0)
# menampilkan gambar upload
left_co, cent_co,last_co = st.columns(3)
with cent_co:
st.image(img, caption='Uploaded Image')
# prediksi
pred_inf = model.predict(x)[0,0]
threshold = 0.395
# menentukan kelas
if pred_inf >= threshold:
predicted_class = 0
else:
predicted_class = 1
clas = ['Daisy', 'Dandelion']
st.write('### Prediction :', clas[predicted_class])
st.write('#### Probability : {:.3f}'.format(pred_inf))
# images = np.vstack([x])
# output = model.predict(images, batch_size=32)
# probability = output[0, 0]
# threshold = 0.395 # threshold untuk klasifikasi biner
# if probability >= threshold:
# predicted_class = 0
# else:
# predicted_class = 1
# clas = ['daisy', 'dandelion']
# print('Prediction is a {} with probability {:.3f}'.format(clas[predicted_class], probability))
# # predict
# pred_inf = model.predict(data_inf)
# st.write('## Prediction :', str(int(pred_inf)))
# st.write('### Positive : 1, Negative : 2')
if __name__ == '__main__':
run()