|
import streamlit as st |
|
from roboflow import Roboflow |
|
from PIL import Image |
|
import numpy as np |
|
|
|
rf = Roboflow(api_key="uhog8pgJ2wfEPN5SrmBG") |
|
project = rf.workspace().project("arabic-sl") |
|
model = project.version(17).model |
|
|
|
|
|
|
|
st.title("Image Classification with Streamlit") |
|
|
|
option = st.selectbox( |
|
'Select the approach to test the model', |
|
('UploadImage', 'CameraInput')) |
|
|
|
|
|
if option == 'UploadImage': |
|
uploaded_image = st.file_uploader("Upload an image", type=["jpg", "jpeg", "png"]) |
|
if uploaded_image is not None: |
|
with open("uploaded_image.png", "wb") as f: |
|
f.write(uploaded_image.read()) |
|
st.success("Image saved successfully!") |
|
|
|
saved_image = st.image("uploaded_image.png", caption='Uploaded Image.', use_column_width=True) |
|
|
|
predicted = model.predict( |
|
"uploaded_image.png", |
|
confidence=20, overlap=30).json() |
|
st.write("Predicted Class:", predicted) |
|
elif option == 'CameraInput': |
|
st.write("Camera Input") |
|
picture = st.camera_input("Take a picture") |
|
if picture is not None: |
|
img = Image.open(picture) |
|
st.image(img, caption='Uploaded Image.', use_column_width=True) |
|
img_array=np.array(img) |
|
img_array.resize((640, 640)) |
|
|
|
predicted = model.predict(img_array, |
|
confidence=20, overlap=30).json() |
|
st.write("Predicted Class:", predicted) |
|
|