Spaces:
Build error
Build error
Commit
·
fb3e27a
1
Parent(s):
326b5e0
Corregir lógica para detección de múltiples rostros
Browse files- streamlit_app.py +56 -2
streamlit_app.py
CHANGED
|
@@ -1538,9 +1538,44 @@ def main():
|
|
| 1538 |
# Añadir nuevo modelo
|
| 1539 |
st.session_state.face_database[person_name]['models'].append(model_name)
|
| 1540 |
st.session_state.face_database[person_name]['embeddings'].append(embedding['embedding'])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1541 |
|
| 1542 |
-
#
|
| 1543 |
-
st.
|
| 1544 |
else:
|
| 1545 |
st.error("Failed to extract embeddings. Please try again with a clearer image.")
|
| 1546 |
else:
|
|
@@ -1570,6 +1605,25 @@ def main():
|
|
| 1570 |
# Añadir nuevo modelo
|
| 1571 |
st.session_state.face_database[person_name]['models'].append(model_name)
|
| 1572 |
st.session_state.face_database[person_name]['embeddings'].append(embedding['embedding'])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1573 |
|
| 1574 |
st.success(f"Face registered successfully for {person_name}!")
|
| 1575 |
|
|
|
|
| 1538 |
# Añadir nuevo modelo
|
| 1539 |
st.session_state.face_database[person_name]['models'].append(model_name)
|
| 1540 |
st.session_state.face_database[person_name]['embeddings'].append(embedding['embedding'])
|
| 1541 |
+
|
| 1542 |
+
# Incrementar contador
|
| 1543 |
+
st.session_state.face_database[person_name]['count'] += 1
|
| 1544 |
+
else:
|
| 1545 |
+
# Crear nueva entrada en la base de datos
|
| 1546 |
+
st.sidebar.write(f"Creating new entry for {person_name} (multiple faces)")
|
| 1547 |
+
|
| 1548 |
+
models = []
|
| 1549 |
+
embeddings = []
|
| 1550 |
+
|
| 1551 |
+
for embedding in embeddings_all_models:
|
| 1552 |
+
models.append(embedding['model'])
|
| 1553 |
+
embeddings.append(embedding['embedding'])
|
| 1554 |
+
|
| 1555 |
+
st.session_state.face_database[person_name] = {
|
| 1556 |
+
'embeddings': embeddings,
|
| 1557 |
+
'models': models,
|
| 1558 |
+
'count': 1
|
| 1559 |
+
}
|
| 1560 |
+
|
| 1561 |
+
st.success(f"Face registered successfully for {person_name}!")
|
| 1562 |
+
|
| 1563 |
+
# Guardar la base de datos actualizada
|
| 1564 |
+
if DATABASE_UTILS_AVAILABLE:
|
| 1565 |
+
save_success = save_face_database(st.session_state.face_database)
|
| 1566 |
+
if save_success:
|
| 1567 |
+
st.info("Face database saved successfully!")
|
| 1568 |
+
# Mostrar información actualizada de la base de datos
|
| 1569 |
+
print_database_info()
|
| 1570 |
+
else:
|
| 1571 |
+
st.error("Error saving face database!")
|
| 1572 |
+
|
| 1573 |
+
# Mostrar la imagen con el rostro detectado
|
| 1574 |
+
processed_image, _ = process_face_detections(image, [bboxes[0]], confidence_threshold)
|
| 1575 |
+
st.image(cv2.cvtColor(processed_image, cv2.COLOR_BGR2RGB), caption=f"Registered face: {person_name}")
|
| 1576 |
|
| 1577 |
+
# Forzar recarga de la interfaz para mostrar el rostro registrado
|
| 1578 |
+
st.rerun()
|
| 1579 |
else:
|
| 1580 |
st.error("Failed to extract embeddings. Please try again with a clearer image.")
|
| 1581 |
else:
|
|
|
|
| 1605 |
# Añadir nuevo modelo
|
| 1606 |
st.session_state.face_database[person_name]['models'].append(model_name)
|
| 1607 |
st.session_state.face_database[person_name]['embeddings'].append(embedding['embedding'])
|
| 1608 |
+
|
| 1609 |
+
# Incrementar contador
|
| 1610 |
+
st.session_state.face_database[person_name]['count'] += 1
|
| 1611 |
+
else:
|
| 1612 |
+
# Crear nueva entrada en la base de datos
|
| 1613 |
+
st.sidebar.write(f"Creating new entry for {person_name}")
|
| 1614 |
+
|
| 1615 |
+
models = []
|
| 1616 |
+
embeddings = []
|
| 1617 |
+
|
| 1618 |
+
for embedding in embeddings_all_models:
|
| 1619 |
+
models.append(embedding['model'])
|
| 1620 |
+
embeddings.append(embedding['embedding'])
|
| 1621 |
+
|
| 1622 |
+
st.session_state.face_database[person_name] = {
|
| 1623 |
+
'embeddings': embeddings,
|
| 1624 |
+
'models': models,
|
| 1625 |
+
'count': 1
|
| 1626 |
+
}
|
| 1627 |
|
| 1628 |
st.success(f"Face registered successfully for {person_name}!")
|
| 1629 |
|