VTS / app.py
thanhhiepvos's picture
Upload 10 files
28037b0 verified
import streamlit as st
import os
from core.ui import show_choosing_pic_bar, show_right_sidebar
from core.model import load_model, run_yolo_inference
from core.helpers import get_image_list, show_note_for_classes, show_hyperparameters
def main():
st.set_page_config(layout="wide")
st.title("Vietnam Traffic Sign Deployment")
model = load_model()
st.success("Model load successfully!")
# Left sidebar for image selection
images = get_image_list()
img_folder = "test_dataset/images"
show_choosing_pic_bar(images, img_folder)
if "selected_image" in st.session_state:
selected_image = os.path.join(img_folder, st.session_state.selected_image)
st.subheader("๐Ÿ–ผ๏ธ Selected Image")
st.image(selected_image, caption=f"Original Image {st.session_state.selected_image}", use_container_width=True)
# Now create 2 columns below the Selected Image
middle_part, right_bar = st.columns([4, 1], gap="large")
# Right sidebar for thresholds
conf_threshold, iou_threshold, conf_show = show_right_sidebar(right_bar)
with middle_part:
st.subheader("๐Ÿ” Detection Result")
detected_img, classes_with_conf = run_yolo_inference(model, selected_image, conf_threshold, iou_threshold, conf_show)
st.image(detected_img, caption="Detected Objects", use_container_width=True)
show_hyperparameters(conf_threshold, iou_threshold)
show_note_for_classes(classes_with_conf)
if __name__ == "__main__":
main()