Mikeztrada commited on
Commit
c72ca3b
verified
1 Parent(s): 153a4cf

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -9
app.py CHANGED
@@ -3,11 +3,13 @@ import tensorflow as tf
3
  import numpy as np
4
  from PIL import Image, ImageOps
5
 
6
- # Cargar el modelo
7
  model = tf.keras.models.load_model("quickdraw_model.keras")
8
- etiquetas = ['car', 'cloud', 'moon'] # Cambia si tu modelo tiene otras
9
 
10
  def preprocesar_imagen(image):
 
 
11
  if image.mode in ('RGBA', 'LA'):
12
  image = image.convert('RGB')
13
  image = image.convert('L')
@@ -17,19 +19,23 @@ def preprocesar_imagen(image):
17
  return arr
18
 
19
  def predict(image):
20
- arr = preprocesar_imagen(image)
21
- imagen_procesada = (arr * 255).astype(np.uint8)
22
- entrada = arr.reshape(1, 784)
23
- preds = model.predict(entrada)
24
- class_idx = np.argmax(preds)
25
- return etiquetas[class_idx], imagen_procesada
 
 
 
 
26
 
27
  iface = gr.Interface(
28
  fn=predict,
29
  inputs=gr.Image(label="Dibuja o sube una imagen (fondo blanco, trazo negro)"),
30
  outputs=[
31
  gr.Label(num_top_classes=1, label="Predicci贸n"),
32
- gr.Image(label="Imagen preprocesada (lo que ve la IA)") # <--- SIN shape
33
  ],
34
  title="QuickDraw API",
35
  description="API para reconocer dibujos estilo QuickDraw. Muestra la imagen preprocesada."
 
3
  import numpy as np
4
  from PIL import Image, ImageOps
5
 
6
+ # Cargar modelo
7
  model = tf.keras.models.load_model("quickdraw_model.keras")
8
+ etiquetas = ['car', 'cloud', 'moon'] # AJUSTA seg煤n tu modelo
9
 
10
  def preprocesar_imagen(image):
11
+ if image is None:
12
+ raise ValueError("No se recibi贸 imagen.")
13
  if image.mode in ('RGBA', 'LA'):
14
  image = image.convert('RGB')
15
  image = image.convert('L')
 
19
  return arr
20
 
21
  def predict(image):
22
+ try:
23
+ arr = preprocesar_imagen(image)
24
+ imagen_procesada = (arr * 255).astype(np.uint8)
25
+ entrada = arr.reshape(1, 784)
26
+ preds = model.predict(entrada)
27
+ class_idx = np.argmax(preds)
28
+ return {etiquetas[class_idx]: float(preds[0][class_idx])}, imagen_procesada
29
+ except Exception as e:
30
+ # Esto muestra el error en la interfaz de Gradio
31
+ return f"Error: {str(e)}", None
32
 
33
  iface = gr.Interface(
34
  fn=predict,
35
  inputs=gr.Image(label="Dibuja o sube una imagen (fondo blanco, trazo negro)"),
36
  outputs=[
37
  gr.Label(num_top_classes=1, label="Predicci贸n"),
38
+ gr.Image(label="Imagen preprocesada (lo que ve la IA)")
39
  ],
40
  title="QuickDraw API",
41
  description="API para reconocer dibujos estilo QuickDraw. Muestra la imagen preprocesada."