tincri commited on
Commit
e987e54
1 Parent(s): 1f00e4a

initial commit

Browse files
Files changed (4) hide show
  1. app.py +57 -0
  2. autoencoder.h5 +3 -0
  3. decoder.h5 +3 -0
  4. requirements.txt +4 -0
app.py ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import numpy as np
2
+ import gradio as gr
3
+ from tensorflow.keras.models import load_model
4
+
5
+ # Carga los modelos previamente entrenados
6
+ autoencoder = load_model("autoencoder.h5")
7
+ decoder = load_model("decoder.h5")
8
+
9
+ latent_dim = 128
10
+
11
+ def add_gaussian_noise(image, noise_factor=0.2):
12
+ noisy_image = image + noise_factor * np.random.normal(size=image.shape)
13
+ noisy_image = np.clip(noisy_image, 0., 1.)
14
+ return noisy_image
15
+
16
+ def denoise_and_generate(image, num_images):
17
+ image = np.array(image) / 255.0
18
+ noisy_image = add_gaussian_noise(np.expand_dims(image, axis=0))
19
+ denoised_image = autoencoder.predict(noisy_image).squeeze()
20
+ denoised_image = (denoised_image * 255).astype(np.uint8)
21
+
22
+ # Genera im谩genes con el VAE
23
+ random_latent_vectors = np.random.normal(size=(num_images, latent_dim))
24
+ generated_images = decoder.predict(random_latent_vectors)
25
+
26
+ # Prepara las im谩genes para devolverlas
27
+ outputs = [denoised_image] + [generated_images[i].squeeze() for i in range(num_images)]
28
+
29
+ # Rellena los valores faltantes para que siempre haya 11 valores
30
+ outputs += [None] * (11 - len(outputs))
31
+
32
+ return outputs
33
+
34
+ # Define la interfaz
35
+ inputs = [
36
+ gr.Image(label="Imagen de Entrada"),
37
+ gr.Slider(1, 2, step=1, label="N煤mero de Im谩genes Generadas")
38
+ ]
39
+
40
+ outputs = [
41
+ gr.Image(label="Imagen Reconstruida (DAE)"),
42
+ ] + [
43
+ gr.Image(label=f"Imagen Generada {i+1} (VAE)") for i in range(2)
44
+ ]
45
+
46
+ # Crea la aplicaci贸n Gradio
47
+ interface = gr.Interface(
48
+ fn=denoise_and_generate,
49
+ inputs=inputs,
50
+ outputs=outputs,
51
+ title="Interfaz Interactiva para DAE y VAE",
52
+ description="Sube una imagen para denoising con DAE y genera im谩genes nuevas con VAE."
53
+ )
54
+
55
+ # Lanza la aplicaci贸n
56
+ if __name__ == "__main__":
57
+ interface.launch(share=True)
autoencoder.h5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9d917367556b4ece04e36c71ef36a9e341e397c22a60f108a24e01835db3bf64
3
+ size 991848
decoder.h5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:904e96c97e027845f268e66ef0b43ab40d37b624ce1fdfe581e5782132531742
3
+ size 27492272
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ tensorflow>=2.0.0
2
+ gradio>=3.50.0
3
+ numpy>=1.19.0
4
+ pillow>=9.0.0