Daniel Cerda Escobar
Update app file
d6675dc
raw
history blame
2.28 kB
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, 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',
options = np.linspace(0,1,10),
value = 0.8
)