jarondon82 commited on
Commit
a387962
·
1 Parent(s): 516309b

Añadir comparación lado a lado de rostros detectados con sus coincidencias

Browse files
Files changed (1) hide show
  1. streamlit_app.py +44 -0
streamlit_app.py CHANGED
@@ -1945,6 +1945,22 @@ def main():
1945
  f"{best_match['name']}",
1946
  f"{best_match['similarity']:.1f}%"
1947
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1948
  if show_all_matches and len(matches) > 1:
1949
  st.write("Otras coincidencias:")
1950
  for j, match in enumerate(matches[1:3]):
@@ -1971,6 +1987,34 @@ def main():
1971
  if uploaded_file is not None:
1972
  st.subheader("Recognition Result")
1973
  st.image(result_image, channels='BGR', use_container_width=True)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1974
 
1975
  with tab3:
1976
  st.header("Real-time Recognition")
 
1945
  f"{best_match['name']}",
1946
  f"{best_match['similarity']:.1f}%"
1947
  )
1948
+
1949
+ # Guardar información para mostrar la imagen de referencia después
1950
+ if 'matched_faces' not in st.session_state:
1951
+ st.session_state.matched_faces = []
1952
+
1953
+ # Extraer la región del rostro para mostrarla
1954
+ face_crop = image[y1:y2, x1:x2].copy()
1955
+
1956
+ # Guardar información de la coincidencia
1957
+ st.session_state.matched_faces.append({
1958
+ "face_crop": face_crop,
1959
+ "matched_name": best_match['name'],
1960
+ "similarity": best_match['similarity'],
1961
+ "bbox": (x1, y1, x2, y2)
1962
+ })
1963
+
1964
  if show_all_matches and len(matches) > 1:
1965
  st.write("Otras coincidencias:")
1966
  for j, match in enumerate(matches[1:3]):
 
1987
  if uploaded_file is not None:
1988
  st.subheader("Recognition Result")
1989
  st.image(result_image, channels='BGR', use_container_width=True)
1990
+
1991
+ # Mostrar comparación lado a lado de cada rostro con su coincidencia
1992
+ if 'matched_faces' in st.session_state and st.session_state.matched_faces:
1993
+ st.subheader("Comparación de rostros")
1994
+ st.write("A continuación se muestra cada rostro detectado junto con su coincidencia en la base de datos:")
1995
+
1996
+ for idx, match_info in enumerate(st.session_state.matched_faces):
1997
+ # Crear columnas para la comparación
1998
+ comp_col1, comp_col2 = st.columns(2)
1999
+
2000
+ # Mostrar el rostro detectado
2001
+ with comp_col1:
2002
+ st.image(cv2.cvtColor(match_info["face_crop"], cv2.COLOR_BGR2RGB),
2003
+ caption=f"Rostro detectado #{idx+1}",
2004
+ use_column_width=True)
2005
+
2006
+ # Mostrar imagen de referencia si existe
2007
+ with comp_col2:
2008
+ # Obtener la primera imagen de referencia de la carpeta de la base de datos si existe
2009
+ reference_name = match_info["matched_name"]
2010
+ st.write(f"Coincidencia: **{reference_name}** ({match_info['similarity']:.1f}%)")
2011
+
2012
+ # Aquí se puede añadir código para cargar una imagen de referencia de la base de datos
2013
+ # Por ahora solo mostramos un placeholder
2014
+ st.info(f"La imagen de referencia para {reference_name} no está disponible en esta versión. Se implementará en futuras actualizaciones.")
2015
+
2016
+ # Limpiar el estado para la próxima ejecución
2017
+ del st.session_state.matched_faces
2018
 
2019
  with tab3:
2020
  st.header("Real-time Recognition")