import streamlit as st import tensorflow as tf import cv2 import numpy as np from PIL import Image, ImageOps from io import BytesIO @st.cache_resource() 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 """ ) st.set_option('deprecation.showfileUploaderEncoding', False) uploadedFile = st.file_uploader("Upload an X-ray image") file = BytesIO(uploadedFile) 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) )