Daniel Cerda Escobar
Update app file
c72147b
raw
history blame
2.23 kB
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)
)