Spaces:
Sleeping
Sleeping
| 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}%**") | |