-
Notifications
You must be signed in to change notification settings - Fork 108
Expand file tree
/
Copy pathapp.py
More file actions
72 lines (59 loc) · 2.48 KB
/
Copy pathapp.py
File metadata and controls
72 lines (59 loc) · 2.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import streamlit as st
from perceptionmetrics.utils.torch import get_device_info
from tabs.dataset_viewer import dataset_viewer_tab
from tabs.evaluator import evaluator_tab
from tabs.inference import inference_tab
from tabs.tasks.image_detection.sidebar import render_image_detection_sidebar
from tabs.tasks.image_segmentation.sidebar import render_image_segmentation_sidebar
from tabs.tasks.lidar_segmentation.sidebar import render_lidar_segmentation_sidebar
st.set_page_config(page_title="PerceptionMetrics", layout="wide")
PAGES = {
"Dataset Viewer": dataset_viewer_tab,
"Inference": inference_tab,
"Evaluator": evaluator_tab,
}
best_device, available_devices = get_device_info()
# Shared state
st.session_state.setdefault("task", "Image Detection")
st.session_state.setdefault("dataset_path", "")
st.session_state.setdefault("split", "test")
st.session_state.setdefault("device", best_device)
# Image detection state
st.session_state.setdefault("dataset_type", "YOLO")
st.session_state.setdefault("config_option", "Manual Configuration")
st.session_state.setdefault("confidence_threshold", 0.5)
st.session_state.setdefault("nms_threshold", 0.5)
st.session_state.setdefault("max_detections", -1)
st.session_state.setdefault("batch_size", 1)
st.session_state.setdefault("evaluation_step", 5)
st.session_state.setdefault("detection_model", None)
st.session_state.setdefault("detection_model_loaded", False)
# Image segmentation state
st.session_state.setdefault("segmentation_model", None)
st.session_state.setdefault("segmentation_model_loaded", False)
st.session_state.setdefault("segmentation_model_type", "Torch Model File")
st.session_state.setdefault("segmentation_model_path", "")
st.session_state.setdefault("segmentation_config_path", "")
st.session_state.setdefault("segmentation_ontology_path", "")
with st.sidebar:
task = st.selectbox(
"Task",
["Image Detection", "Image Segmentation", "Lidar Segmentation"],
key="task",
help="",
)
if task == "Image Detection":
render_image_detection_sidebar(available_devices)
elif task == "Image Segmentation":
render_image_segmentation_sidebar(available_devices)
elif task == "Lidar Segmentation":
render_lidar_segmentation_sidebar(available_devices)
else:
st.error(f"Unsupported task: {task}")
tab1, tab2, tab3 = st.tabs(["Dataset Viewer", "Inference", "Evaluator"])
with tab1:
dataset_viewer_tab()
with tab2:
inference_tab()
with tab3:
evaluator_tab()