import streamlit as st import tensorflow as tf from PIL import Image @st.cache(allow_output_mutation=True) def load_model(): model=tf.keras.models.load_model('./hip_impant_model.h5') return model with st.spinner('Model is being loaded..'): model=load_model() st.write(""" # Image Classification """ ) file = st.file_uploader("Upload an X-ray image") import cv2 from PIL import Image, ImageOps import numpy as np st.set_option('deprecation.showfileUploaderEncoding', False) def model_prediction(img, model): resize = tf.image.resize(img, (256,256)) yhat = model.predict(np.expand_dims(resize/255, 0)) if(yhat>0.5): result = "Prediction is loose" else: result = "Prediction is control" return result if file is None: st.text("Please upload an image file") else: image = Image.open(file) st.image(image, use_column_width=True) predictions = mode_prediction(image, model) st.write(prediction) print( "This image most likely belongs to {}." .format(prediction) )