Spaces:
Running
Running
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- 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 |
-
#
|
| 2034 |
-
st.
|
| 2035 |
-
|
| 2036 |
-
|
| 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:
|