Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import numpy as np | |
| from tensorflow.keras.models import load_model | |
| from PIL import Image | |
| st.title('Dog Classification') | |
| # import the model | |
| model = load_model('model_best2.hdf5') | |
| # define the preprocessing function | |
| def preprocess_image(image): | |
| image = image.resize((240, 240)) # resize the image to the desired dimensions | |
| image = image.convert("RGB") # convert the image to RGB mode if needed | |
| image = np.array(image) # convert the image to a NumPy array | |
| image = image / 255.0 # normalize the pixel values to the range of 0 to 1 | |
| image = np.expand_dims(image, axis=0) # add an extra dimension for batch size | |
| return image | |
| # define the prediction function | |
| def prediction(image): | |
| preprocessed_image = preprocess_image(image) | |
| classes = model.predict(preprocessed_image) | |
| predicted_class_index = np.argmax(classes) | |
| class_labels = ['Afghan', 'Bulldog', 'Chow'] | |
| predicted_class = class_labels[predicted_class_index] | |
| return predicted_class | |
| # file uploader | |
| uploaded_file = st.file_uploader("Upload your Dog Picture.") | |
| # result | |
| if st.button('Predict'): | |
| if uploaded_file is None: | |
| st.write('Please upload your favorite dog to purchase picture first.') | |
| else: | |
| image = Image.open(uploaded_file) | |
| result = prediction(image) | |
| st.write('This Dog belongs to the {} class.'.format(result)) |