File size: 1,537 Bytes
615e9f1
 
 
 
ebef706
813fdb6
00a4c90
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ebef706
00a4c90
ebef706
00a4c90
 
 
ebef706
 
00a4c90
ebef706
00a4c90
 
 
cc5f9e3
 
00a4c90
c3f2df0
 
00a4c90
 
 
 
615e9f1
 
 
 
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
import streamlit as st
from torchvision.transforms import functional as F
import gc
import numpy as np

from modules.streamlit_utils import *





def main():
    is_mobile, screen_width = configure_page()
    display_banner(is_mobile)
    display_title(is_mobile)
    display_sidebar()
    initialize_session_state()

    cropped_image = None

    img_selected = load_example_image()
    uploaded_file = load_user_image(img_selected, is_mobile)
    if uploaded_file is not None:
        cropped_image = display_image(uploaded_file, screen_width, is_mobile)

    if cropped_image is not None:
        get_score_threshold(is_mobile)
        if st.button("πŸš€ Launch Prediction"):
            launch_prediction(cropped_image, st.session_state.score_threshold, is_mobile, screen_width)
            st.session_state.original_prediction = st.session_state.prediction.copy()
            st.rerun()
    
    if 'prediction' in st.session_state and uploaded_file:
        #if st.button("πŸ”„ Refresh image"):
            #st.rerun()

        with st.expander("Show result of prediction"):
            with st.spinner('Waiting for result display...'):
                display_options(st.session_state.crop_image, st.session_state.score_threshold, is_mobile, int(5/6 * screen_width))

        if not is_mobile:
            modify_results()

        modeler_options(is_mobile)
                
        
        display_bpmn_modeler(is_mobile, screen_width)

    gc.collect()

if __name__ == "__main__":
    print('Starting the app...')
    main()