File size: 2,225 Bytes
39debef
3170d22
 
 
0715e8c
 
3170d22
 
 
 
0715e8c
39debef
8ed86f2
3170d22
8ed86f2
3cf084f
3170d22
8ed86f2
3170d22
 
cf4de60
 
c9b5f79
8c0dd07
0715e8c
76a2d16
cf4de60
4d1e216
6494a0c
4d1e216
 
76a2d16
3170d22
76a2d16
96b4bfb
4d1e216
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c72147b
 
 
 
 
 
 
 
 
 
 
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
73
import streamlit as st
from PIL import Image
import random
import sahi.utils.file
import pandas as pd

IMAGE_TO_URL = {
    'factory_pid.png' : 'https://d1afc1j4569hs1.cloudfront.net/factory-pid.png',
    'plant_pid.png' : 'https://d1afc1j4569hs1.cloudfront.net/plant-pid.png',
    'processing_pid.png' : 'https://d1afc1j4569hs1.cloudfront.net/processing-pid.png'
    }

st.set_page_config(
    page_title="P&ID Object Detection",
    layout="wide",
    initial_sidebar_state="expanded"
    )

st.title('P&ID Object Detection')
st.subheader(' Identify valves and pumps with deep learning model ', divider='rainbow')
st.caption('Developed by Deep Drawings Co.')

col1, col2, col3 = st.columns(3, gap='medium')
with col1:
    with st.expander('How to use it'):
        st.markdown(
        '''
        1) Upload your P&ID or select example diagrams  πŸ“¬
        2) Set confidence threshold πŸ“ˆ
        3) Press to perform inference   πŸš€
        4) Visualize model predictions  πŸ”Ž
        '''
        )   

st.write('##')
   
col1, col2, col3, col4 = st.columns([1, 2, 2, 1], gap='large')
with col2:
    st.markdown('##### Input File')
    # set input image by upload
    image_file = st.file_uploader("Upload your diagram", type=["pdf"])
    # set input images from examples
    def radio_func(option):
        option_to_id = {
            'factory_pid.png' : 'A',
            'plant_pid.png' : 'B',
            'processing_pid.png' : 'C',
        }
        return option_to_id[option]
    radio = st.radio(
        'Or select from the following examples',
        options = ['factory_pid.png', 'plant_pid.png', 'processing_pid.png'],
        format_func = radio_func,
    )
with col3:
    st.markdown('##### Preview')
    # visualize input image
    if image_file is not None:
        image = Image.open(image_file)
    else:
        image = sahi.utils.cv.read_image_as_pil(IMAGE_TO_URL[radio])
    with st.container(border = True):
        st.image(image, use_column_width = True)

st.write('##')

col1, col2, col3 = st.columns(3, gap='medium')
with col2:
    st.markdown('#### Set model parameters')
    postprocess_match_threshold = st.select_slider(
        'Select confidence threshold',
        value = (0,1)
    )