clementBE commited on
Commit
5e861df
·
verified ·
1 Parent(s): 9a7d8ba

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -17
app.py CHANGED
@@ -99,24 +99,31 @@ def classify_zip_and_analyze_color(zip_file):
99
  faces_data = []
100
  try:
101
  img_cv2 = cv2.cvtColor(np.array(image), cv2.COLOR_RGB2BGR)
102
- detected_faces = DeepFace.analyze(img_cv2, actions=["age","gender","emotion"], enforce_detection=False)
103
- if not isinstance(detected_faces, list):
 
 
 
 
104
  detected_faces = [detected_faces]
 
105
  for f in detected_faces:
106
- gender = f["gender"].lower()
107
  if gender in ["man", "male"]:
108
  gender_fr = "Homme"
109
  elif gender in ["woman", "female"]:
110
  gender_fr = "Femme"
111
  else:
112
  gender_fr = "Inconnu"
 
113
  faces_data.append({
114
- "age": f["age"],
115
  "gender": gender_fr,
116
- "emotion": f["dominant_emotion"]
117
  })
 
118
  except:
119
- faces_data=[]
120
 
121
  faces_str = "; ".join([
122
  f"Age: {face['age']}, Gender: {face['gender']}, Emotion: {face['emotion']}"
@@ -157,17 +164,8 @@ def classify_zip_and_analyze_color(zip_file):
157
  buf2 = io.BytesIO(); plt.savefig(buf2, format="png", bbox_inches="tight"); plt.close(fig2); buf2.seek(0); plot2_img = Image.open(buf2)
158
 
159
  # Gender and age
160
- ages_male = []
161
- ages_female = []
162
- for face_list in df["Face Info"]:
163
- if face_list.strip()=="":
164
- continue
165
- for face_str in face_list.split("; "):
166
- parts = face_str.split(", ")
167
- age = int(parts[0].split(": ")[1])
168
- gender = parts[1].split(": ")[1]
169
- if gender=="Homme": ages_male.append(age)
170
- elif gender=="Femme": ages_female.append(age)
171
 
172
  gender_counts = {"Homme": len(ages_male), "Femme": len(ages_female)}
173
 
 
99
  faces_data = []
100
  try:
101
  img_cv2 = cv2.cvtColor(np.array(image), cv2.COLOR_RGB2BGR)
102
+ detected_faces = DeepFace.analyze(
103
+ img_cv2, actions=["age","gender","emotion"], enforce_detection=False
104
+ )
105
+
106
+ # Ensure detected_faces is a list
107
+ if isinstance(detected_faces, dict):
108
  detected_faces = [detected_faces]
109
+
110
  for f in detected_faces:
111
+ gender = str(f.get("gender", "Unknown")).lower()
112
  if gender in ["man", "male"]:
113
  gender_fr = "Homme"
114
  elif gender in ["woman", "female"]:
115
  gender_fr = "Femme"
116
  else:
117
  gender_fr = "Inconnu"
118
+
119
  faces_data.append({
120
+ "age": f.get("age", -1),
121
  "gender": gender_fr,
122
+ "emotion": f.get("dominant_emotion", "Unknown")
123
  })
124
+
125
  except:
126
+ faces_data = []
127
 
128
  faces_str = "; ".join([
129
  f"Age: {face['age']}, Gender: {face['gender']}, Emotion: {face['emotion']}"
 
164
  buf2 = io.BytesIO(); plt.savefig(buf2, format="png", bbox_inches="tight"); plt.close(fig2); buf2.seek(0); plot2_img = Image.open(buf2)
165
 
166
  # Gender and age
167
+ ages_male = [int(f.split(", ")[0].split(": ")[1]) for row in df["Face Info"] for f in row.split("; ") if "Homme" in f]
168
+ ages_female = [int(f.split(", ")[0].split(": ")[1]) for row in df["Face Info"] for f in row.split("; ") if "Femme" in f]
 
 
 
 
 
 
 
 
 
169
 
170
  gender_counts = {"Homme": len(ages_male), "Femme": len(ages_female)}
171