File size: 2,544 Bytes
39debef 3170d22 0715e8c d6675dc 0715e8c 3170d22 0715e8c 39debef 8ed86f2 3170d22 8ed86f2 3cf084f 3170d22 8ed86f2 3170d22 cf4de60 56e0661 8c0dd07 0715e8c 76a2d16 cf4de60 4d1e216 6494a0c 4d1e216 76a2d16 3170d22 76a2d16 96b4bfb 4d1e216 9af4bab 4d1e216 9af4bab 4d1e216 c72147b 9af4bab 9448fdb 7520ea1 1fc6f1f 82792a7 9af4bab 9448fdb 82792a7 9448fdb 56e0661 762f858 56e0661 |
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 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
import streamlit as st
from PIL import Image
import random
import sahi.utils.file
import pandas as pd
import numpy as np
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 = st.columns(3, gap='large')
with col1:
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 col2:
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)
with col3:
st.markdown('##### Set model parameters')
postprocess_match_threshold = st.slider(
label = 'Select confidence threshold',
min_value = 0.0,
max_value = 1.0,
value = 0.75,
step = 0.25
)
postprocess_match_metric = st.slider(
label = 'Select IoU threshold',
min_value = 0.0,
max_value = 1.0,
value = 0.75,
step = 0.25
)
st.write('##')
col1, col2, col3 = st.columns([4, 3, 4])
with col2:
submit = st.button("π Perform Prediction")
|