JAI03's picture
Update app.py
de81738 verified
import streamlit as st
import tensorflow
from tensorflow.keras.models import load_model
import numpy as np
from PIL import Image
import pandas as pd
import os
# Load the saved TensorFlow model
model = load_model('traffic-sign-detection-model3.h5')
inputBasePath = 'D:\\traffic_Data\\'
path = 'D:\\traffic_Data\\DATA'
testingFolder = 'D:\\traffic_Data\\TEST'
classes = pd.read_csv('labels.csv')
# Function to preprocess the image
def preprocess_image(image):
# Preprocess the image as required for your model
# (e.g., resize, normalize pixel values)
resized_image = image.resize((100,100))
preprocessed_image = np.array(resized_image) / 255.0 # Normalize pixel values
return preprocessed_image
# Function to make predictions
def predict(image):
preprocessed_image = preprocess_image(image)
prediction = model.predict(np.expand_dims(preprocessed_image, axis=0))
return prediction
# Streamlit app
def main():
st.title('Traffic Sign Detection')
uploaded_image = st.file_uploader("Upload Image", type=['jpg', 'png', 'jpeg'])
if uploaded_image is not None:
# Display the uploaded image
image = Image.open(uploaded_image)
st.image(image, caption='Uploaded Image', use_column_width=True)
# Predict button
if st.button('Predict'):
# Make prediction
prediction = predict(image)
predicted_class = np.argmax(prediction, axis=1)
#st.write(predicted_class)
class_mapping = dict(zip(classes['ClassId'], classes['Name']))
predicted_label = class_mapping.get(predicted_class[0])
# st.write(predicted_label)
# st.write(predicted_class)
# Display prediction result
st.write('Prediction:', predicted_label)
if __name__ == '__main__':
main()