oomarsaldivar commited on
Commit
89ab9e2
1 Parent(s): 2f600ad

Upload 5 files

Browse files
Files changed (5) hide show
  1. app.py +132 -0
  2. modeloIA_1.h5 +3 -0
  3. modeloIA_2.h5 +3 -0
  4. modeloIA_3.h5 +3 -0
  5. modeloIA_4.h5 +3 -0
app.py ADDED
@@ -0,0 +1,132 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python
2
+ # coding: utf-8
3
+
4
+ # # 1. Pre-procesamiento de datos
5
+
6
+ # In[14]:
7
+
8
+
9
+ import cv2
10
+ import numpy as np
11
+
12
+
13
+ # In[15]:
14
+
15
+
16
+ def redimensionar(imagenes,tamano):
17
+ imagenes_ajustadas = []
18
+ for imagen in imagenes:
19
+ imagen_temporal = cv2.resize (imagen,tamano)
20
+ imagenes_ajustadas.append(imagen_temporal)
21
+ return imagenes_ajustadas
22
+
23
+
24
+ # In[16]:
25
+
26
+
27
+ def contraste(imagenes, valor_contraste):
28
+ imagenes_ajustadas = []
29
+ for imagen in imagenes:
30
+ imagen_temporal = np.clip(imagen*valor_contraste,0,255)
31
+ imagenes_ajustadas.append(imagen_temporal)
32
+ return imagenes_ajustadas
33
+
34
+
35
+ # In[17]:
36
+
37
+
38
+ def rasgos(imagenes,width):
39
+ imagenes_ajustadas = []
40
+
41
+ for imagen in imagenes:
42
+ img = imagen
43
+ img = cv2.resize(img, (width,int(width*img.shape[0]/img.shape[1])))
44
+
45
+ c = cv2.dft(np.float32(img), flags = cv2.DFT_COMPLEX_OUTPUT)
46
+ mag = np.sqrt(c[:,:,0]**2 + c[:,:,1]**2)
47
+ spectralResidual = np.exp(np.log(mag) - cv2.boxFilter(np.log(mag), -1, (3,3)))
48
+
49
+ c[:,:,0] = c[:,:,0] * spectralResidual / mag
50
+ c[:,:,1] = c[:,:,1] * spectralResidual / mag
51
+ c = cv2.dft(c, flags = (cv2.DFT_INVERSE | cv2.DFT_SCALE))
52
+ mag = c[:,:,0]**2 + c[:,:,1]**2
53
+ cv2.normalize(cv2.GaussianBlur(mag,(9,9),3,3), mag, 0., 1., cv2.NORM_MINMAX)
54
+
55
+ imagenes_ajustadas.append(mag)
56
+
57
+ return imagenes_ajustadas
58
+
59
+
60
+ # In[18]:
61
+
62
+
63
+ import gradio as gr
64
+ import tensorflow as tf
65
+ from tensorflow import keras
66
+ from tensorflow.keras import models
67
+
68
+
69
+ modelo1 = tf.keras.models.load_model('modeloIA_1.h5')
70
+ modelo2 = tf.keras.models.load_model('modeloIA_2.h5')
71
+ modelo3 = tf.keras.models.load_model('modeloIA_3.h5')
72
+ modelo4 = tf.keras.models.load_model('modeloIA_4.h5')
73
+
74
+
75
+ # In[27]:
76
+
77
+
78
+ def ejecutar_modelo(imagen_app):
79
+ imagen_app = cv2.cvtColor (imagen_app,cv2.COLOR_BGR2GRAY)
80
+
81
+ imagenes_app = []
82
+ imagenes_app.append(imagen_app)
83
+
84
+ imagen_temporal = rasgos (imagenes_app, 128)
85
+ imagen_temporal = redimensionar(imagen_temporal,(256,256))
86
+ imagen_temporal = contraste(imagen_temporal,0.4)
87
+ imagen_temporal = np.expand_dims(imagen_temporal, axis=3)
88
+
89
+ resultado1 = modelo1.predict(imagen_temporal)
90
+ resultado1 = int (np.argmax (resultado1, axis=1))
91
+
92
+ resultado2 = modelo2.predict(imagen_temporal)
93
+ resultado2 = int (np.argmax (resultado2, axis=1))
94
+
95
+ resultado3 = modelo3.predict(imagen_temporal)
96
+ resultado3 = int (np.argmax (resultado3, axis=1))
97
+
98
+ resultado4 = modelo4.predict(imagen_temporal)
99
+ resultado4 = int (np.argmax (resultado4, axis=1))
100
+
101
+ clase1 = ['armonia', 'ausencia', 'contraste', 'ninguno']
102
+ clase2 =['ausencia', 'fragmentacion', 'ninguno', 'unidad']
103
+ clase3 = ['ausencia', 'equilibrio', 'inestabilidad', 'ninguno']
104
+ clase4 = ['agudeza', 'ausencia', 'difusividad', 'ninguno']
105
+
106
+ return clase1 [resultado1], clase2 [resultado2], clase3 [resultado3], clase4 [resultado4]
107
+
108
+
109
+ # In[28]:
110
+
111
+
112
+ gui = gr.Interface (
113
+ fn = ejecutar_modelo,
114
+ inputs = gr.Image (),
115
+ outputs = ["text", "text", "text", "text"],
116
+ title ='Evaluador de imagenes usando IA',
117
+ )
118
+
119
+ gui.launch(inbrowser = True)
120
+
121
+
122
+ # In[ ]:
123
+
124
+
125
+
126
+
127
+
128
+ # In[ ]:
129
+
130
+
131
+
132
+
modeloIA_1.h5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:eb6a2eb210d15f504f5bbac842f512897c282e24bbc304efd8e2e27b3564c01d
3
+ size 354235464
modeloIA_2.h5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:40e3badbb0203d6b3fe9ae76f25d2c4bbfcd489f016ab4357e8dff875a1c4f41
3
+ size 354235432
modeloIA_3.h5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:94fdf86a2ce84780f166c869983ed51938677401a3a44c29b35d83349cd52e42
3
+ size 354235464
modeloIA_4.h5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:62578494311380496ff87449c7446fb1e05708d808cbd0d6d81490f591813a56
3
+ size 354235432