3vort3x's picture
add requirements.txt
6c4eae2
raw
history blame contribute delete
No virus
2.23 kB
import streamlit as st
import pandas as pd
import numpy as np
import tensorflow as tf
from pathlib import Path
st.set_page_config(page_title="Traffic sign prediction", page_icon="⛔", layout='centered', initial_sidebar_state="collapsed")
label_csv = pd.read_csv('./labels.csv', sep=',')
labels = {row[1]['ClassId']:row[1]['Name'] for row in label_csv.iterrows()}
print(labels)
def main():
# title
html_temp = """
<div>
<h1 style="color:DarkRed;text-align:left;"> Traffic sign prediction ⛔ </h1>
</div>
"""
st.markdown(html_temp, unsafe_allow_html=True)
col1,col2 = st.columns([2,2])
with col1:
with st.expander(" ℹ️ Information", expanded=True):
st.write("""
Automatic traffic sign detection is an important role in self-driving car innovation.
""")
with col2:
df = pd.DataFrame()
upload_file = st.file_uploader("Choose a file of traffic sign.")
if upload_file is not None:
bytes_data = upload_file.getvalue()
fd = open("./img_to_predict.jpg", "wb")
fd.write(bytes_data)
fd.close()
st.image(bytes_data)
if st.button('Predict'):
loaded_model = tf.keras.models.load_model("./model.h5", compile=True)
loaded_model.summary()
if Path("./img_to_predict.jpg").exists():
img = tf.keras.preprocessing.image.load_img("./img_to_predict.jpg", target_size=(128, 128), interpolation='lanczos')
img = tf.keras.preprocessing.image.img_to_array(img)
pred = loaded_model.predict(np.array([img]))
pred_label = np.argsort(pred)
for i in pred_label[0]:
st.write(f"{labels[i]} : {pred[0][i]*100:0.2f} %")
st.warning("Note: This A.I application is for educational/demo purposes only and cannot be relied upon.")
hide_menu_style = """
<style>
#MainMenu {visibility: hidden;}
</style>
"""
hide_menu_style = """
<style>
#MainMenu {visibility: hidden;}
</style>
"""
st.markdown(hide_menu_style, unsafe_allow_html=True)
if __name__ == '__main__':
main()