jarondon82 commited on
Commit
44a87dc
·
1 Parent(s): e0d3b4b

Mejorar tabla de rostros registrados: añadir miniaturas y cabeceras, limpiar nombre al cargar imagen

Browse files
Files changed (1) hide show
  1. 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 DataFrame
1702
- import pandas as pd
1703
- df = pd.DataFrame(data)
 
 
 
 
 
 
 
 
 
 
 
 
1704
 
1705
  # Mostrar tabla con botones de eliminación
1706
- for i, row in df.iterrows():
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: