jarondon82 commited on
Commit
e0d3b4b
1 Parent(s): c95c949

Corregir guardado de imagen facial para registro con un solo rostro detectado y simplificar mensajes de error

Browse files
Files changed (1) hide show
  1. streamlit_app.py +13 -17
streamlit_app.py CHANGED
@@ -1591,6 +1591,10 @@ def main():
1591
  embeddings_all_models = extract_face_embeddings_all_models(image, bboxes[0])
1592
 
1593
  if embeddings_all_models:
 
 
 
 
1594
  # Guardar en la base de datos
1595
  if add_to_existing and person_name in st.session_state.face_database:
1596
  # A帽adir a persona existente
@@ -1614,6 +1618,9 @@ def main():
1614
  st.session_state.face_database[person_name]['models'].append(model_name)
1615
  st.session_state.face_database[person_name]['embeddings'].append(embedding['embedding'])
1616
 
 
 
 
1617
  # Incrementar contador
1618
  st.session_state.face_database[person_name]['count'] += 1
1619
  else:
@@ -1630,7 +1637,8 @@ def main():
1630
  st.session_state.face_database[person_name] = {
1631
  'embeddings': embeddings,
1632
  'models': models,
1633
- 'count': 1
 
1634
  }
1635
 
1636
  st.success(f"Face registered successfully for {person_name}!")
@@ -2030,22 +2038,10 @@ def main():
2030
  width=250 # Usar ancho fijo en lugar de use_column_width
2031
  )
2032
  else:
2033
- # Depuraci贸n para ver qu茅 hay en la base de datos
2034
- st.error(f"Debug: Reference image not found for {reference_name}")
2035
-
2036
- # Mostrar las claves disponibles para este usuario
2037
- if reference_name in st.session_state.face_database:
2038
- st.write("Available keys:", list(st.session_state.face_database[reference_name].keys()))
2039
-
2040
- # Si hay embeddings pero no imagen, mostrar mensaje informativo
2041
- if 'embeddings' in st.session_state.face_database[reference_name]:
2042
- st.info(f"User {reference_name} exists but has no reference image. Please re-register.")
2043
- else:
2044
- st.warning(f"User {reference_name} exists but has invalid data structure.")
2045
- else:
2046
- st.warning(f"User {reference_name} not found in database, but was matched?")
2047
-
2048
- # Limpiar el estado para la pr贸xima ejecuci贸n
2049
  del st.session_state.matched_faces
2050
 
2051
  with tab3:
 
1591
  embeddings_all_models = extract_face_embeddings_all_models(image, bboxes[0])
1592
 
1593
  if embeddings_all_models:
1594
+ # Extraer la regi贸n del rostro para guardarla
1595
+ x1, y1, x2, y2, _ = bboxes[0]
1596
+ face_crop = image[y1:y2, x1:x2].copy()
1597
+
1598
  # Guardar en la base de datos
1599
  if add_to_existing and person_name in st.session_state.face_database:
1600
  # A帽adir a persona existente
 
1618
  st.session_state.face_database[person_name]['models'].append(model_name)
1619
  st.session_state.face_database[person_name]['embeddings'].append(embedding['embedding'])
1620
 
1621
+ # Actualizar imagen de referencia
1622
+ st.session_state.face_database[person_name]['face_image'] = face_crop
1623
+
1624
  # Incrementar contador
1625
  st.session_state.face_database[person_name]['count'] += 1
1626
  else:
 
1637
  st.session_state.face_database[person_name] = {
1638
  'embeddings': embeddings,
1639
  'models': models,
1640
+ 'count': 1,
1641
+ 'face_image': face_crop
1642
  }
1643
 
1644
  st.success(f"Face registered successfully for {person_name}!")
 
2038
  width=250 # Usar ancho fijo en lugar de use_column_width
2039
  )
2040
  else:
2041
+ # Mensaje de error simplificado
2042
+ st.info(f"No reference image available for {reference_name}. Please re-register this person.")
2043
+
2044
+ # Limpiar el estado para la pr贸xima ejecuci贸n
 
 
 
 
 
 
 
 
 
 
 
 
2045
  del st.session_state.matched_faces
2046
 
2047
  with tab3: