Spaces:
Sleeping
Sleeping
| import base64 | |
| import streamlit as st | |
| from PIL import ImageOps, Image | |
| import numpy as np | |
| def set_background(image_file): | |
| """ | |
| This function sets the background of a Streamlit app to an image specified by the given image file. | |
| Parameters: | |
| image_file (str): The path to the image file to be used as the background. | |
| Returns: | |
| None | |
| """ | |
| with open(image_file, "rb") as f: | |
| img_data = f.read() | |
| b64_encoded = base64.b64encode(img_data).decode() | |
| style = f""" | |
| <style> | |
| .stApp {{ | |
| background-image: url(data:image/png;base64,{b64_encoded}); | |
| background-size: cover; | |
| }} | |
| </style> | |
| """ | |
| st.markdown(style, unsafe_allow_html=True) | |
| def classify(image, model, class_names): | |
| """ | |
| This function takes an image, a model, and a list of class names and returns the predicted class and confidence | |
| score of the image. | |
| Parameters: | |
| image (PIL.Image.Image): An image to be classified. | |
| model (tensorflow.keras.Model): A trained machine learning model for image classification. | |
| class_names (list): A list of class names corresponding to the classes that the model can predict. | |
| Returns: | |
| A tuple of the predicted class name and the confidence score for that prediction. | |
| """ | |
| # convert image to (224, 224) | |
| image = ImageOps.fit(image, (224, 224), Image.Resampling.LANCZOS) | |
| # convert image to numpy array | |
| image_array = np.asarray(image) | |
| # normalize image | |
| normalized_image_array = (image_array.astype(np.float32) / 127.5) - 1 | |
| # set model input | |
| data = np.ndarray(shape=(1, 224, 224, 3), dtype=np.float32) | |
| data[0] = normalized_image_array | |
| # make prediction | |
| prediction = model.predict(data) | |
| # index = np.argmax(prediction) | |
| index = 0 if prediction[0][0] > 0.95 else 1 | |
| class_name = class_names[index] | |
| confidence_score = prediction[0][index] | |
| return class_name, confidence_score | |