| | import streamlit as st |
| | from tensorflow.keras.models import load_model |
| | from PIL import Image |
| | import numpy as np |
| | import cv2 |
| |
|
| | |
| | model = load_model('traffic_classifier.h5') |
| |
|
| | def process_image(image): |
| | img=np.array(image) |
| | if img.shape[-1] == 4: |
| | img = img[:,:,:3] |
| | img=cv2.resize(img,(30,30)) |
| | img=img/255.0 |
| | img=np.expand_dims(img,axis=0) |
| | return img |
| |
|
| | st.title('Traffic Sign Image Classifier') |
| | st.write('Upload a image and model will predict which traffic sign it is.') |
| |
|
| | file = st.file_uploader('Choose a image...', type=['jpg', 'jpeg', 'png']) |
| | if file is not None: |
| | img = Image.open(file) |
| | st.image(img, caption='Uploaded Image') |
| |
|
| | image = process_image(img) |
| | prediction = model.predict(image) |
| | predicted_class = np.argmax(prediction) |
| |
|
| | class_names = [f"Class {i}" for i in range(43)] |
| | st.write(f"Predicted class index: {predicted_class}") |
| | st.write(f"Predicted class: {class_names[predicted_class]}") |