Spaces:
Running
Running
import sys | |
import os.path as osp | |
import streamlit as st | |
root_path = osp.abspath(osp.join(__file__, osp.pardir)) | |
sys.path.append(root_path) | |
from registry_utils import import_registered_modules | |
from app_utils import ( | |
is_image, | |
is_video, | |
process_image_and_vizualize_data, | |
process_video_and_visualize_data, | |
set_frames_processed_count_placeholder, | |
set_input_image_on_ui, | |
set_input_video_on_ui, | |
set_page_info_and_sidebar_info, | |
) | |
import_registered_modules() | |
def main(): | |
cols, video_path, uploaded_file, pupil_selection, tv_model, blink_detection = set_page_info_and_sidebar_info() | |
if uploaded_file is not None: | |
try: | |
file_extension = uploaded_file.name.split(".")[-1] | |
except Exception: | |
file_extension = video_path.split(".")[-1] | |
st.session_state["file_extension"] = file_extension | |
if is_image(file_extension): | |
input_img = set_input_image_on_ui(uploaded_file, cols) | |
st.session_state["input_img"] = input_img | |
elif is_video(file_extension): | |
video_frames, video_path = set_input_video_on_ui(uploaded_file, cols) | |
st.session_state["video_frames"] = video_frames | |
st.session_state["video_path"] = video_path | |
set_frames_processed_count_placeholder(cols) | |
if st.sidebar.button("Predict Diameter & Compute CAM", type="primary"): | |
if uploaded_file is None: | |
st.sidebar.error("Please select / upload an image or video") | |
else: | |
with st.spinner("Analyzing..."): | |
if is_image(st.session_state.get("file_extension")): | |
input_img = st.session_state.get("input_img") | |
process_image_and_vizualize_data(cols, input_img, tv_model, pupil_selection, blink_detection) | |
elif is_video(st.session_state.get("file_extension")): | |
video_frames = st.session_state.get("video_frames") | |
video_path = st.session_state.get("video_path") | |
process_video_and_visualize_data( | |
cols, video_frames, tv_model, pupil_selection, blink_detection, video_path | |
) | |
if __name__ == "__main__": | |
main() | |
# run: streamlit run app.py --server.enableXsrfProtection false | |