fireedman commited on
Commit
8eb550b
1 Parent(s): 070a205

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -17
app.py CHANGED
@@ -1,29 +1,35 @@
1
  import gradio as gr
2
- from joblib import load
 
3
  from skimage.transform import resize
4
- from skimage.color import rgb2gray
5
  import numpy as np
6
 
7
- classifier = load('knn_classifier.joblib')
 
 
 
8
 
9
- def predict_image(image):
10
- if len(image.shape) == 3:
11
- image = rgb2gray(image)
 
12
 
13
- image = resize(image, (8,8),anti_aliasing=True, mode='reflect') #Redimensionamiento
14
- image = (image * 255).astype(np.uint8)
15
 
16
- #image = np.array(image, dtype = np.float64)
17
- image = np.invert(image)
18
- image = image.reshape(1,-1)
19
 
20
- prediction = classifier.predict(image)
21
- return prediction[0]
22
 
 
23
  iface = gr.Interface(
24
- fn = predict_image,
25
- inputs = "image",
26
- outputs = "text"
 
 
27
  )
28
 
29
- iface.launch(debug=True)
 
 
1
  import gradio as gr
2
+ from sklearn.neighbors import KNeighborsClassifier
3
+ from skimage.io import imread
4
  from skimage.transform import resize
 
5
  import numpy as np
6
 
7
+ # Cargar el modelo KNN pre-entrenado (debes entrenar previamente el modelo y guardarlo)
8
+ classifier = KNeighborsClassifier(n_neighbors=5)
9
+ # Cargar el conjunto de datos o modelo pre-entrenado
10
+ # Por ejemplo, puedes cargar el mismo conjunto de datos de dígitos que usaste en tu código original o uno similar.
11
 
12
+ # Define una función para realizar la predicción
13
+ def knn_predict(image):
14
+ # Lee la imagen cargada por el usuario
15
+ user_image = imread(image)
16
 
17
+ # Asegúrate de que la imagen tenga el mismo tamaño que las imágenes de entrenamiento
18
+ user_image = resize(user_image, (8, 8), anti_aliasing=True)
19
 
20
+ # Aplique el modelo KNN para realizar la predicción
21
+ prediction = classifier.predict(user_image.reshape(1, -1))
 
22
 
23
+ return str(prediction[0])
 
24
 
25
+ # Crea una interfaz de Gradio
26
  iface = gr.Interface(
27
+ fn=knn_predict,
28
+ inputs="image",
29
+ outputs="text",
30
+ title="Clasificador KNN de Dígitos",
31
+ description="Sube una imagen de un dígito (8x8 píxeles) y predice el número."
32
  )
33
 
34
+ # Ejecute la interfaz de Gradio
35
+ iface.launch(debug = True)