import streamlit as st import os, sys import json st.set_page_config(layout="wide") # ===================== # Sidebar: scene / object # ===================== target_scenes = ["00814-p53SfW6mjZe", "00848-ziup5kvtCCR", "00891-cvZr5TUy5C5"] DATA_BASE = "https://huggingface.co/datasets/bo-miao/LangMap_Demo/resolve/main" @st.cache_data def load_data(): with open(os.path.join("src/compare_langmap_goat_matching.json"), "r") as f: annot_data = json.load(f) # list of dict with open(os.path.join("src/correspondence.json"), "r") as f: corre_data = json.load(f) # dict dict dict return annot_data, corre_data annot_data, corre_data = load_data() with st.sidebar: # select scene and object scene_name = st.selectbox("Scene", target_scenes) included_oids = sorted([x['Object_id'] for x in annot_data if x['Scene']==scene_name], key=int) obj_id = st.selectbox("Object", included_oids) # ===== load related data (outside sidebar) ===== scene_annot_data, scene_corre_data = [x for x in annot_data if x['Scene']==scene_name], corre_data[scene_name] scene_annot_data_dict = {x["Object_id"]: x for x in scene_annot_data} # load related data related_regions, related_objects, related_region2objects = scene_corre_data[obj_id]['regions'], scene_corre_data[obj_id]['objects'], scene_corre_data[obj_id]['region2objects'] lang_text, goat_text, lang_match, goat_match = (scene_annot_data_dict[obj_id]['LangMap_Concise'], scene_annot_data_dict[obj_id]['GOAT_Bench'], scene_annot_data_dict[obj_id]['LangMap_Correct'], scene_annot_data_dict[obj_id]['GOAT_Correct']) st.markdown(""" """, unsafe_allow_html=True) def show_desc(title, text, ok): mark = "✓" if ok else "✗" cls = "ok" if ok else "bad" if title != "LangMap": st.markdown( f"""