File size: 1,656 Bytes
ed2886e e1b0813 c919903 2673557 c919903 ed2886e c919903 b3b1355 c919903 2673557 473a909 b68ebd5 473a909 2836436 c919903 473a909 7ec83f2 b68ebd5 7ec83f2 b68ebd5 7ec83f2 b68ebd5 7ec83f2 b68ebd5 1471e11 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
import streamlit as st
from PIL import Image
import numpy as np
from tensorflow.keras.models import load_model
import io
def main():
st.set_page_config(page_title="Hurma Sınıflandırıcı")
st.title("📷 Hurma Resmi Sınıflandırma")
st.write("Bir hurma resmi yükleyin ve hangi tür olduğunu tahmin edelim.")
try:
model = load_model("src/dates_classifier_model.h5")
except Exception as e:
st.error("❌ Model yüklenemedi.")
st.stop()
class_names = [
'Rutab',
'Meneifi',
'Sokari',
'Galaxy',
'Shaishe',
'Medjool',
'Ajwa',
'Nabtat Ali',
'Sugaey'
]
file = st.file_uploader("Resim seç", type=["jpg", "jpeg", "png"])
if file:
try:
image = Image.open(io.BytesIO(file.read())).convert("RGB")
st.image(image, caption="Yüklenen Resim", use_container_width=True)
img = image.resize((224, 224))
img = np.array(img)
img = img / 255.0 # Bu adımı kaldırman gerekebilir, model eğitimine göre!
img = np.expand_dims(img, axis=0)
prediction = model.predict(img)
predicted_class = np.argmax(prediction)
st.success(f"Tahmin: {class_names[predicted_class]}")
# Debug için tahmin sonuçlarını göster
st.subheader("Tahmin Skorları (Softmax Çıkışı):")
for i, score in enumerate(prediction[0]):
st.write(f"{class_names[i]}: {score:.4f}")
except Exception as e:
st.error(f"Hata: {str(e)}")
if __name__ == "__main__":
main()
|