RougeVertBleu commited on
Commit
ebaa73d
·
verified ·
1 Parent(s): a7f9d3b

Ajout modèle 4

Browse files
Files changed (1) hide show
  1. app.py +19 -2
app.py CHANGED
@@ -2,12 +2,13 @@ import gradio as gr
2
  import tensorflow as tf
3
  import numpy as np
4
  from PIL import Image, ImageOps
 
5
 
6
  # Charger les modèles (remplacez les chemins par vos fichiers de modèles)
7
  model1 = tf.keras.models.load_model('model_v2_Q1.keras')
8
  model2 = tf.keras.models.load_model('model_v2_Q2.keras')
9
  model3 = tf.keras.models.load_model('model_Q3.keras')
10
- #model4 = tf.keras.models.load_model('Model_4_Final.keras')
11
 
12
 
13
  # Gère le formattage des images
@@ -22,6 +23,11 @@ def format_image_type2(image):
22
  image = np.array(image) / 255.0 # Normalisation
23
  return image_single_fix(image)
24
 
 
 
 
 
 
25
  def image_single_fix(image_array):
26
  return np.expand_dims(image_array, axis=0) # Ajouter batch dimension (demandé par tensorflow/keras qui demande à recevoir un groupe d'image plutôt que juste une seule)
27
 
@@ -42,6 +48,11 @@ models = {
42
  "model": model3,
43
  "type": "gender_age",
44
  "image_format": format_image_type2
 
 
 
 
 
45
  }
46
  }
47
 
@@ -64,10 +75,16 @@ def predict(image, model_name):
64
  elif model_type == "age_only":
65
  age_value = prediction[0][0]
66
  return_text = display_age_prediction(age_value)
67
- else: # "gender_age"
68
  gender_value = prediction[0][0][0]
69
  age_value = prediction[1][0][0]
70
  return_text = display_gender_prediction(gender_value) + "\n" + display_age_prediction(age_value)
 
 
 
 
 
 
71
 
72
  return f"{return_text}"
73
 
 
2
  import tensorflow as tf
3
  import numpy as np
4
  from PIL import Image, ImageOps
5
+ from tensorflow.keras.applications.efficientnet import preprocess_input
6
 
7
  # Charger les modèles (remplacez les chemins par vos fichiers de modèles)
8
  model1 = tf.keras.models.load_model('model_v2_Q1.keras')
9
  model2 = tf.keras.models.load_model('model_v2_Q2.keras')
10
  model3 = tf.keras.models.load_model('model_Q3.keras')
11
+ model4 = tf.keras.models.load_model('model_Q4.keras')
12
 
13
 
14
  # Gère le formattage des images
 
23
  image = np.array(image) / 255.0 # Normalisation
24
  return image_single_fix(image)
25
 
26
+ def format_image_type3(image):
27
+ image = tf.image.resize(image, (128, 128)) # Redimensionner selon la taille attendue
28
+ image = preprocess_input(image) # Normalisation
29
+ return image_single_fix(image)
30
+
31
  def image_single_fix(image_array):
32
  return np.expand_dims(image_array, axis=0) # Ajouter batch dimension (demandé par tensorflow/keras qui demande à recevoir un groupe d'image plutôt que juste une seule)
33
 
 
48
  "model": model3,
49
  "type": "gender_age",
50
  "image_format": format_image_type2
51
+ },
52
+ "Modèle 4 (genre et âge) [Transfert d'apprentissage]": {
53
+ "model": model4,
54
+ "type": "age_gender",
55
+ "image_format": format_image_type3
56
  }
57
  }
58
 
 
75
  elif model_type == "age_only":
76
  age_value = prediction[0][0]
77
  return_text = display_age_prediction(age_value)
78
+ elif model_type == "gender_age":
79
  gender_value = prediction[0][0][0]
80
  age_value = prediction[1][0][0]
81
  return_text = display_gender_prediction(gender_value) + "\n" + display_age_prediction(age_value)
82
+ elif model_type == "age_gender": # gender_age but prediction data order is reversed
83
+ gender_value = prediction[1][0][0]
84
+ age_value = prediction[0][0][0]
85
+ return_text = display_gender_prediction(gender_value) + "\n" + display_age_prediction(age_value)
86
+ else:
87
+ raise Exception(f"Unsupported model_type '{model_type}'")
88
 
89
  return f"{return_text}"
90