Bmo411 commited on
Commit
00a78a6
·
verified ·
1 Parent(s): e6032e2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +35 -7
app.py CHANGED
@@ -1,7 +1,14 @@
1
  import gradio as gr
 
 
 
2
  from huggingface_hub import hf_hub_download
 
 
3
  model_path = hf_hub_download(repo_id="Bmo411/DenoisingAutoencoder", filename="autoencoder_complete_model_Fourier.keras")
4
- import tensorflow as tf
 
 
5
 
6
  def degrade_image(image, downscale_factor=4):
7
  """Reduce la calidad de la imagen reduciendo su tamaño y volviéndola a escalar."""
@@ -35,10 +42,31 @@ def preprocess_image(image, std_dev=0.1, downscale_factor=4, target_size=(256, 2
35
  return noisy_img
36
 
37
  def Denoiser(imagen):
38
- model = tf.keras.models.load_model("autoencoder_complete_model_Fourier.keras", compile=True)
39
- image = preprocess_image(imagen)
40
- reconstruct = model.predict(image)
41
- return image,recostruct
42
 
43
- demo = gr.Interface(fn=Denoiser, inputs="image", outputs=["image","recostruct"])
44
- demo.launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import gradio as gr
2
+ import tensorflow as tf
3
+ import numpy as np
4
+ import cv2 # Faltaba importar OpenCV
5
  from huggingface_hub import hf_hub_download
6
+
7
+ # Descargar modelo desde Hugging Face
8
  model_path = hf_hub_download(repo_id="Bmo411/DenoisingAutoencoder", filename="autoencoder_complete_model_Fourier.keras")
9
+
10
+ # Cargar el modelo una sola vez para evitar recargas en cada ejecución
11
+ model = tf.keras.models.load_model(model_path, compile=True)
12
 
13
  def degrade_image(image, downscale_factor=4):
14
  """Reduce la calidad de la imagen reduciendo su tamaño y volviéndola a escalar."""
 
42
  return noisy_img
43
 
44
  def Denoiser(imagen):
45
+ """Aplica el modelo autoencoder para eliminar ruido de la imagen."""
 
 
 
46
 
47
+ # Convertir imagen de entrada a array NumPy y asegurarse de que está en formato correcto
48
+ imagen = np.array(imagen) # Convertir de PIL a NumPy
49
+
50
+ # Preprocesar imagen (degradarla y agregar ruido)
51
+ noisy_image = preprocess_image(imagen)
52
+
53
+ # Expandir dimensiones para que tenga el formato correcto para el modelo (batch_size, h, w, c)
54
+ noisy_image_input = np.expand_dims(noisy_image, axis=0)
55
+
56
+ # Predecir con el autoencoder
57
+ reconstructed = model.predict(noisy_image_input)[0] # Quitar batch_size
58
+
59
+ return noisy_image, reconstructed
60
+
61
+ # Crear interfaz en Gradio con dos salidas de imagen
62
+ demo = gr.Interface(
63
+ fn=Denoiser,
64
+ inputs=gr.Image(type="numpy"), # Para que Gradio pase la imagen como un array de NumPy
65
+ outputs=[gr.Image(type="numpy", label="Imagen con Ruido"),
66
+ gr.Image(type="numpy", label="Imagen Restaurada")],
67
+ title="Autoencoder para Denoising",
68
+ description="Este modelo de autoencoder reduce el ruido en imágenes. Sube una imagen y el modelo generará una versión restaurada."
69
+ )
70
+
71
+ # Lanzar la aplicación en Gradio
72
+ demo.launch()