itircapsto / src /streamlit_app.py
handecarkci's picture
Update src/streamlit_app.py
b8f49f2 verified
import streamlit as st
import numpy as np
from PIL import Image
from tensorflow.keras.models import load_model
class_names = {
0: "Speed limit (20km/h)",
1: "Speed limit (30km/h)",
2: "Speed limit (50km/h)",
3: "Speed limit (60km/h)",
4: "Speed limit (70km/h)",
5: "Speed limit (80km/h)",
6: "End of speed limit (80km/h)",
7: "Speed limit (100km/h)",
8: "Speed limit (120km/h)",
9: "No passing",
10: "No passing for vehicles over 3.5 metric tons",
11: "Right-of-way at the next intersection",
12: "Priority road",
13: "Yield",
14: "Stop",
15: "No vehicles",
16: "Vehicles over 3.5 metric tons prohibited",
17: "No entry",
18: "General caution",
19: "Dangerous curve to the left",
20: "Dangerous curve to the right",
21: "Double curve",
22: "Bumpy road",
23: "Slippery road",
24: "Road narrows on the right",
25: "Road work",
26: "Traffic signals",
27: "Pedestrians",
28: "Children crossing",
29: "Bicycles crossing",
30: "Beware of ice/snow",
31: "Wild animals crossing",
32: "End of all speed and passing limits",
33: "Turn right ahead",
34: "Turn left ahead",
35: "Ahead only",
36: "Go straight or right",
37: "Go straight or left",
38: "Keep right",
39: "Keep left",
40: "Roundabout mandatory",
41: "End of no passing",
42: "End of no passing by vehicles over 3.5 metric tons"
}
model = load_model("src/capstone_model.h5")
st.title("German Traffic Sign Recognition")
uploaded_file = st.file_uploader("Bir trafik işareti yükle", type=["jpg", "png"])
if uploaded_file is not None:
image = Image.open(uploaded_file).convert('RGB').resize((64, 64))
st.image(image, caption="Yüklenen Görüntü", width=300)
img_array = np.array(image) / 255.0
img_array = np.expand_dims(img_array, axis=0)
prediction = model.predict(img_array)
predicted_class = np.argmax(prediction)
confidence = np.max(prediction) * 100
predicted_label = class_names.get(predicted_class, "Bilinmeyen Sınıf")
st.success(f"🚦 Tahmin Edilen Trafik Levhası: **{predicted_label}**")
st.info(f"📊 Güven Skoru (Confidence): **{confidence:.2f}%**")