Number-Detect / app.py
marlonsousa's picture
Upload 9 files
2eecfbc verified
__author__ = "Marlon"
__Cop__ = "BrainiaC©"
import numpy as np
import cv2
import os
import streamlit as st
from streamlit_drawable_canvas import st_canvas
from tensorflow.keras.models import load_model
st.title('Detector Numérico - BrainiaC©')
# Caminho do modelo salvo corretamente
model_path = os.path.join(os.path.dirname(__file__), 'model.keras') # Certifique-se de salvar como .keras
weights_path = "weights.weights.h5" # Certifique-se de salvar os pesos corretamente
# Carregar o modelo e os pesos
model = load_model(model_path)
model.load_weights(weights_path)
st.write("###### Author - Marlon Sousa")
st.write("###### [Blog](https://marlonsousa.medium.com)")
st.markdown('''
Tente Desenhar um Número!
''')
canvas_result = st_canvas(
fill_color='#000000',
stroke_width=20,
stroke_color='#FFFFFF',
background_color='#000000',
width=300,
height=300,
key='canvas'
)
if canvas_result.image_data is not None:
img = canvas_result.image_data.astype('uint8') # Garante que a imagem seja uint8
img = cv2.cvtColor(img, cv2.COLOR_RGBA2GRAY) # Converte para escala de cinza
img = cv2.resize(img, (28, 28)) # Redimensiona para 28x28 pixels
img = img / 255.0 # Normaliza os valores dos pixels
img = img.reshape(1, 28, 28, 1) # Adiciona dimensão extra para o modelo
if st.button('Predict'):
val = model.predict(img)
st.write(f"""# Resultado: {np.argmax(val[0])}""")