Spaces:
Runtime error
Runtime error
| import streamlit as st | |
| from streamlit_drawable_canvas import st_canvas | |
| import numpy as np | |
| from PIL import Image | |
| import tensorflow as tf | |
| from tensorflow.keras.models import load_model | |
| # pip install streamlit-drawable-canvas | |
| model = load_model("digit_model.h5") | |
| st.title("Digit Recognition :writing_hand:") | |
| st.write("Write a number between 0-9 on the board and let's see if the model can identify it!") | |
| st.write('(it lives some hard time predicting 1. try to fill the whole space equaly.)') | |
| numbers=[":zero:", ":one:", ":two:", ":three:", ":four:", ":five:", ":six:", ":seven:", ":eight:", ":nine:"] | |
| canvas_result = st_canvas( | |
| stroke_width=20, | |
| stroke_color="rgb(255, 255, 255)", | |
| background_color="rgb(33, 62, 40)", | |
| update_streamlit=True, | |
| width=200, | |
| height=200, | |
| drawing_mode="freedraw", | |
| key="canvas", | |
| ) | |
| if st.button("Predict"): | |
| image_data = np.array(canvas_result.image_data) | |
| image_data = image_data.astype(np.uint8) | |
| image = Image.fromarray(image_data) | |
| image = image.resize((28, 28)).convert("L") | |
| image = np.array(image).reshape((1, 28, 28, 1)) / 255.0 | |
| prediction = model.predict(image) | |
| predicted_class = np.argmax(prediction) | |
| st.write(f"Your number is {numbers[predicted_class]} If this was wrong, your handwriting sucks!") | |
| st.image("https://i.ytimg.com/vi/NlUVkNJ3Rcw/maxresdefault.jpg") |