Spaces:
Sleeping
Sleeping
File size: 1,706 Bytes
f0ecbdc e8c41c8 f0ecbdc e406126 f0ecbdc 9268827 f0ecbdc e406126 f0ecbdc e406126 9268827 f0ecbdc e406126 f0ecbdc 78435e5 e406126 f0ecbdc e65719f ae6c2da e406126 78435e5 e65719f e406126 f0ecbdc e406126 f0ecbdc e406126 f0ecbdc e406126 e65719f |
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 |
import os
import streamlit as st
import tensorflow as tf
from PIL import Image
import numpy as np
from huggingface_hub import login, hf_hub_download
# Authenticate with Hugging Face token (if available)
hf_token = os.environ.get("HF_TOKEN")
if hf_token:
login(token=hf_token)
# Download and load the model from the Hugging Face Hub
repo_id = os.environ.get("MODEL_ID", "willco-afk/tree-test-x") # Get repo ID from secret or default
filename = "your_trained_model.keras" # Updated filename
cache_dir = "./models" # Local directory to cache the model
os.makedirs(cache_dir, exist_ok=True)
model_path = hf_hub_download(repo_id=repo_id, filename=filename, cache_dir=cache_dir)
# Load the model
model = tf.keras.models.load_model(model_path)
# Streamlit UI
st.title("Christmas Tree Classifier")
st.write("Upload an image of a Christmas tree to classify it:")
uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"])
if uploaded_file is not None:
# Display the uploaded image
image = Image.open(uploaded_file)
# Updated Line:
st.image(image, caption="Uploaded Image.", use_container_width=True)
st.write("")
st.write("Classifying...")
# Preprocess the image
image = image.resize((224, 224)) # Resize to match your model's input size
image_array = np.array(image) / 255.0 # Normalize pixel values
image_array = np.expand_dims(image_array, axis=0) # Add batch dimension
# Make prediction
prediction = model.predict(image_array)
# Get predicted class
predicted_class = "Decorated" if prediction[0][0] >= 0.5 else "Undecorated"
# Display the prediction
st.write(f"Prediction: {predicted_class}") |