Spaces:
Sleeping
Sleeping
| import os, sys | |
| sys.path.append(os.getcwd()) | |
| import multiprocessing | |
| import streamlit as st | |
| from app_utils.color_selection_ui import color_selection_ui | |
| from app_utils.depth_selection_ui import depth_selection_ui | |
| from app_utils.device import device | |
| from app_utils.sod_selection_ui import sod_selection_ui | |
| class MODE: | |
| IMAGE = "image" | |
| VIDEO = "video" | |
| WEBRTC = "webrtc" | |
| DEMO = "demo" | |
| TITLE = "S-MultiMAE: A Multi-Ground Truth approach for RGB-D Saliency Detection" | |
| st.set_page_config( | |
| page_title=TITLE, | |
| page_icon="🧊", | |
| layout="wide", | |
| # initial_sidebar_state="expanded", | |
| # menu_items={ | |
| # 'Get Help': 'https://www.extremelycoolapp.com/help', | |
| # 'Report a bug': "https://www.extremelycoolapp.com/bug", | |
| # 'About': "# This is a header. This is an *extremely* cool app!" | |
| # } | |
| ) | |
| st.title(TITLE) | |
| with st.expander("INTRODUCTION"): | |
| st.text( | |
| f"""Demo for S-MultiMAE. | |
| Device: {device.type} | |
| Number of CPU(s): {multiprocessing.cpu_count()}""" | |
| ) | |
| st.image("docs/figures/proposed_method_v5.drawio.png", use_column_width="always") | |
| with st.expander("SETTINGS", expanded=True): | |
| col1, col2 = st.columns(2) | |
| with col1: | |
| mode = st.radio( | |
| "Mode", | |
| ( | |
| MODE.IMAGE, | |
| # MODE.VIDEO, | |
| # MODE.WEBRTC, | |
| # MODE.DEMO, | |
| ), | |
| ) | |
| st.markdown("---") | |
| color = color_selection_ui() | |
| with col2: | |
| depth_model = depth_selection_ui() | |
| st.markdown("---") | |
| sod_model, da = sod_selection_ui() | |
| with st.expander("HOW TO USE", expanded=True): | |
| st.text( | |
| "(1) You can change the model type (using different backbones) in the settings." | |
| ) | |
| st.text("(2) Upload an RGB image.") | |
| st.text( | |
| "(3) (Optional) Provide its corresponding depth. If not present, a pseudo-depth will be inferred by a rgb2depth model." | |
| ) | |
| st.text( | |
| "(4) You may try a different number of sets of salient objects the model can produce." | |
| ) | |
| st.text("""(5) Click "Predict Salient Objects".""") | |
| if mode == MODE.IMAGE: | |
| from app_utils.image_inference import image_inference | |
| image_inference(depth_model, sod_model, da, color) | |
| # elif mode == MODE.VIDEO: | |
| # from video_inference import video_inference | |
| # video_inference(depth_model, sod_model, color) | |
| # elif mode == MODE.WEBRTC: | |
| # from webrtc_app import webrtc_app | |
| # webrtc_app(depth_model, sod_model, color) | |
| # elif mode == MODE.DEMO: | |
| # from demo import demo | |
| # demo() | |