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.") # Modeli yükle model = load_model("src/dates_classifier_model.h5") # Sınıf isimleri — modelin çıktı sayısıyla birebir uyumlu olmalı class_names = ['Ajwa', 'Medjool', 'Sokari'] file = st.file_uploader("Resim seç", type=["jpg", "jpeg", "png"]) if file is not None: 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) / 255.0 img = np.expand_dims(img, axis=0) prediction = model.predict(img) predicted_class = np.argmax(prediction) # Hatalı index durumuna karşı koruma if predicted_class < len(class_names): st.success(f"Tahmin: {class_names[predicted_class]}") else: st.error("⚠️ Tahmin edilen sınıf, sınıf isimleriyle eşleşmiyor. Lütfen modelinizi kontrol edin.") except Exception as e: st.error(f"⚠️ Hata oluştu: {str(e)}") if __name__ == "__main__": main()