Spaces:
Running
Running
Commit
·
44a87dc
1
Parent(s):
e0d3b4b
Mejorar tabla de rostros registrados: añadir miniaturas y cabeceras, limpiar nombre al cargar imagen
Browse files- streamlit_app.py +40 -7
streamlit_app.py
CHANGED
|
@@ -1458,9 +1458,17 @@ def main():
|
|
| 1458 |
# Añadir el file_uploader para la imagen
|
| 1459 |
uploaded_file = st.file_uploader("Upload an image", type=['jpg', 'jpeg', 'png'], key="register_face_image")
|
| 1460 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1461 |
# Formulario de registro
|
| 1462 |
with st.form("face_registration_form"):
|
| 1463 |
-
person_name = st.text_input("Person's name")
|
| 1464 |
|
| 1465 |
# Selector de modelo
|
| 1466 |
model_choice = st.selectbox(
|
|
@@ -1690,7 +1698,8 @@ def main():
|
|
| 1690 |
"Name": name,
|
| 1691 |
"Images": num_images,
|
| 1692 |
"Embeddings": num_embeddings,
|
| 1693 |
-
"Models": models
|
|
|
|
| 1694 |
})
|
| 1695 |
|
| 1696 |
# Debug de los datos procesados
|
|
@@ -1698,13 +1707,37 @@ def main():
|
|
| 1698 |
|
| 1699 |
# Verificar si hay datos para mostrar
|
| 1700 |
if data:
|
| 1701 |
-
# Crear
|
| 1702 |
-
|
| 1703 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1704 |
|
| 1705 |
# Mostrar tabla con botones de eliminación
|
| 1706 |
-
for i, row in
|
| 1707 |
-
col1, col2, col3, col4, col5 = st.columns([3, 2, 2, 4, 2])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1708 |
with col1:
|
| 1709 |
st.write(row["Name"])
|
| 1710 |
with col2:
|
|
|
|
| 1458 |
# Añadir el file_uploader para la imagen
|
| 1459 |
uploaded_file = st.file_uploader("Upload an image", type=['jpg', 'jpeg', 'png'], key="register_face_image")
|
| 1460 |
|
| 1461 |
+
# Limpiar el nombre cuando se carga una imagen nueva
|
| 1462 |
+
if uploaded_file and 'last_uploaded_file' in st.session_state and st.session_state.last_uploaded_file != uploaded_file.name:
|
| 1463 |
+
st.session_state.person_name = ""
|
| 1464 |
+
|
| 1465 |
+
if uploaded_file:
|
| 1466 |
+
# Guardar el nombre del archivo actual para comparar en la próxima carga
|
| 1467 |
+
st.session_state.last_uploaded_file = uploaded_file.name
|
| 1468 |
+
|
| 1469 |
# Formulario de registro
|
| 1470 |
with st.form("face_registration_form"):
|
| 1471 |
+
person_name = st.text_input("Person's name", key="person_name")
|
| 1472 |
|
| 1473 |
# Selector de modelo
|
| 1474 |
model_choice = st.selectbox(
|
|
|
|
| 1698 |
"Name": name,
|
| 1699 |
"Images": num_images,
|
| 1700 |
"Embeddings": num_embeddings,
|
| 1701 |
+
"Models": models,
|
| 1702 |
+
"Face": info.get('face_image', None)
|
| 1703 |
})
|
| 1704 |
|
| 1705 |
# Debug de los datos procesados
|
|
|
|
| 1707 |
|
| 1708 |
# Verificar si hay datos para mostrar
|
| 1709 |
if data:
|
| 1710 |
+
# Crear cabeceras de la tabla
|
| 1711 |
+
col_thumb, col1, col2, col3, col4, col5 = st.columns([2, 3, 2, 2, 4, 2])
|
| 1712 |
+
|
| 1713 |
+
with col_thumb:
|
| 1714 |
+
st.write("**Thumbnail**")
|
| 1715 |
+
with col1:
|
| 1716 |
+
st.write("**Name**")
|
| 1717 |
+
with col2:
|
| 1718 |
+
st.write("**Images**")
|
| 1719 |
+
with col3:
|
| 1720 |
+
st.write("**Embeddings**")
|
| 1721 |
+
with col4:
|
| 1722 |
+
st.write("**Models**")
|
| 1723 |
+
with col5:
|
| 1724 |
+
st.write("**Actions**")
|
| 1725 |
|
| 1726 |
# Mostrar tabla con botones de eliminación
|
| 1727 |
+
for i, row in enumerate(data):
|
| 1728 |
+
col_thumb, col1, col2, col3, col4, col5 = st.columns([2, 3, 2, 2, 4, 2])
|
| 1729 |
+
|
| 1730 |
+
# Mostrar miniatura si está disponible
|
| 1731 |
+
with col_thumb:
|
| 1732 |
+
if row["Face"] is not None:
|
| 1733 |
+
# Redimensionar para crear miniatura
|
| 1734 |
+
face_img = row["Face"]
|
| 1735 |
+
h, w = face_img.shape[:2]
|
| 1736 |
+
thumbnail = cv2.resize(face_img, (w//4, h//4))
|
| 1737 |
+
st.image(cv2.cvtColor(thumbnail, cv2.COLOR_BGR2RGB), width=50)
|
| 1738 |
+
else:
|
| 1739 |
+
st.write("No image")
|
| 1740 |
+
|
| 1741 |
with col1:
|
| 1742 |
st.write(row["Name"])
|
| 1743 |
with col2:
|