Spaces:
Sleeping
Sleeping
import streamlit as st | |
import json | |
import requests | |
import base64 | |
from PIL import Image | |
import io | |
def get_prediction(image_data): | |
#replace your image classification ai service URL | |
url = 'https://askai.aiclub.world/9e64ab8b-95e4-40fa-9529-b13d9e1b4761' | |
r = requests.post(url, data=image_data) | |
st.write(r) | |
response = r.json()['predicted_label'] | |
score = r.json()['score'] | |
#print("Predicted_label: {} and confidence_score: {}".format(response,score)) | |
return response, score | |
#creating the web app | |
#setting up the title | |
st.title("Cats and Dogs Image Classifier")#change according to your project | |
#setting up the subheader | |
st.subheader("File Uploader")#change according to your project | |
#file uploader | |
image = st.file_uploader(label="Upload an image",accept_multiple_files=False, help="Upload an image to classify them") | |
if image: | |
#converting the image to bytes | |
img = Image.open(image) | |
buf = io.BytesIO() | |
img.save(buf,format = 'JPEG') | |
byte_im = buf.getvalue() | |
#converting bytes to b64encoding | |
payload = base64.b64encode(byte_im) | |
#file details | |
file_details = { | |
"file name": image.name, | |
"file type": image.type, | |
"file size": image.size | |
} | |
#write file details | |
st.write(file_details) | |
#setting up the image | |
st.image(img) | |
#predictions | |
response, scores = get_prediction(payload) | |
col1, col2 = st.columns(2) | |
with col1: | |
st.metric("Prediction Label",response) | |
with col2: | |
st.metric("Confidence Score", max(scores)) | |