GianmarcoJTA commited on
Commit
61bf480
verified
1 Parent(s): a98433d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +39 -24
app.py CHANGED
@@ -5,14 +5,14 @@ from tensorflow.keras.models import load_model
5
  from tensorflow.keras.applications.mobilenet_v2 import preprocess_input
6
  import os
7
 
8
- # Rutas relativas dentro del *Space* en Hugging Face
9
- code_path = os.getcwd() # Obtiene el directorio actual donde est谩 el script
10
  models_path = os.path.join(code_path, 'models')
11
  haarcascade_path = os.path.join(code_path, 'haarcascades', 'haarcascade_frontalface_default.xml')
12
 
13
  # Verificar si el archivo Haar Cascade existe
14
  if not os.path.exists(haarcascade_path):
15
- print(f'No se encontr贸 el archivo Haar Cascade en {haarcascade_path}. Aseg煤rate de subirlo correctamente.')
16
  exit()
17
 
18
  # Cargar el clasificador Haar Cascade para detecci贸n de rostros
@@ -27,24 +27,39 @@ if not os.path.exists(modelo_guardado):
27
  modelo = load_model(modelo_guardado)
28
  print('Modelo cargado exitosamente.')
29
 
30
- # Funci贸n para realizar la predicci贸n
31
- def estimar_edad(image):
32
- # Convertir imagen a formato adecuado
33
- rostro_resized = cv2.resize(image, (128, 128))
34
- rostro_rgb = cv2.cvtColor(rostro_resized, cv2.COLOR_BGR2RGB)
35
- rostro_expanded = np.expand_dims(rostro_rgb, axis=0)
36
- rostro_preprocessed = preprocess_input(rostro_expanded)
37
-
38
- # Realizar la predicci贸n de edad
39
- edad_predicha = modelo.predict(rostro_preprocessed)[0][0]
40
- edad_predicha = round(edad_predicha, 2)
41
- return edad_predicha
42
-
43
- # Crear interfaz con Gradio
44
- interface = gr.Interface(fn=estimar_edad,
45
- inputs=gr.inputs.Image(type="numpy"), # Entrada de imagen
46
- outputs="text", # Salida del texto de la edad
47
- live=True)
48
-
49
- # Lanzar la interfaz
50
- interface.launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  from tensorflow.keras.applications.mobilenet_v2 import preprocess_input
6
  import os
7
 
8
+ # Definir rutas
9
+ code_path = '/app' # Usando ruta del contenedor Docker
10
  models_path = os.path.join(code_path, 'models')
11
  haarcascade_path = os.path.join(code_path, 'haarcascades', 'haarcascade_frontalface_default.xml')
12
 
13
  # Verificar si el archivo Haar Cascade existe
14
  if not os.path.exists(haarcascade_path):
15
+ print(f'No se encontr贸 el archivo Haar Cascade en {haarcascade_path}. Aseg煤rate de descargarlo y guardarlo correctamente.')
16
  exit()
17
 
18
  # Cargar el clasificador Haar Cascade para detecci贸n de rostros
 
27
  modelo = load_model(modelo_guardado)
28
  print('Modelo cargado exitosamente.')
29
 
30
+ # Funci贸n para procesar la imagen y predecir la edad
31
+ def estimar_edad(imagen):
32
+ # Convertir la imagen a escala de grises para la detecci贸n de rostros
33
+ gray = cv2.cvtColor(imagen, cv2.COLOR_BGR2GRAY)
34
+
35
+ # Detectar rostros en la imagen
36
+ rostros = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))
37
+
38
+ edades = []
39
+
40
+ for (x, y, w, h) in rostros:
41
+ # Extraer la regi贸n del rostro
42
+ rostro = imagen[y:y+h, x:x+w]
43
+
44
+ # Preprocesar la imagen del rostro
45
+ rostro_rgb = cv2.cvtColor(rostro, cv2.COLOR_BGR2RGB)
46
+ rostro_resized = cv2.resize(rostro_rgb, (128, 128))
47
+ rostro_preprocessed = preprocess_input(rostro_resized)
48
+ rostro_expanded = np.expand_dims(rostro_preprocessed, axis=0)
49
+
50
+ # Realizar la predicci贸n de edad
51
+ edad_predicha = modelo.predict(rostro_expanded)[0][0]
52
+ edad_predicha = round(edad_predicha, 2)
53
+
54
+ edades.append(edad_predicha)
55
+
56
+ return edades
57
+
58
+ # Crear la interfaz con Gradio
59
+ iface = gr.Interface(fn=estimar_edad,
60
+ inputs=gr.inputs.Image(type="numpy", label="Sube una imagen"),
61
+ outputs="text")
62
+
63
+ # Lanzar la interfaz de Gradio
64
+ iface.launch()
65
+