knnExample / app.py
fireedman's picture
Update app.py
f20735a verified
import gradio as gr
import os
from joblib import load
from skimage.transform import resize
from skimage.color import rgb2gray
import numpy as np
classifier = load('knn_classifier.joblib')
def predict_image(image):
if len(image.shape) == 3:
image = rgb2gray(image)
image = resize(image, (8,8),anti_aliasing=True, mode='reflect') #Redimensionamiento
image = (image * 255).astype(np.uint8)
#image = np.array(image, dtype = np.float64)
image = np.invert(image)
image = image.reshape(1,-1)
prediction = classifier.predict(image)
return prediction[0]
imagenes_muestra =[
[os.path.join(os.path.abspath(''), "0.png")],
[os.path.join(os.path.abspath(''), "1.png")],
[os.path.join(os.path.abspath(''), "2.png")],
[os.path.join(os.path.abspath(''), "3.png")],
[os.path.join(os.path.abspath(''), "4.png")],
[os.path.join(os.path.abspath(''), "5.png")],
[os.path.join(os.path.abspath(''), "6.png")],
[os.path.join(os.path.abspath(''), "7.png")],
[os.path.join(os.path.abspath(''), "8.png")],
[os.path.join(os.path.abspath(''), "9.png")]
]
iface = gr.Interface(
fn = predict_image,
inputs = gr.Image(label = "Sube una imagen de un numero o Selecciona una de los ejemplos"),#"image",
outputs = gr.Textbox(label = "El resultado es:"),#"text",
examples = imagenes_muestra,
title = "Clasificador de numeros mediante método KNN supervisado",
description = "El método K Nearest Neighbors (KNN) es un algoritmo de aprendizaje automático simple y ampliamente utilizado para clasificación y regresión.El método presentado se utiliza para clasificar imágenes de dígitos escritos a mano \nRecuerda que dependiendo de la base de datos utilizada, el modelo será o no más preciso"
)
iface.launch(debug=True)