File size: 1,837 Bytes
d93eadc
 
 
 
 
 
 
 
fc9aeb0
d93eadc
a75636d
 
d93eadc
 
 
 
 
 
 
 
 
 
 
 
 
 
06c2dae
 
 
 
 
 
 
 
 
 
 
 
d93eadc
 
1ab536b
 
 
 
33eda9a
d93eadc
 
bb0e5b8
1516bfe
d93eadc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
06c2dae
d93eadc
 
 
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
57
58
59
60
61
62
63
64
65
66
67
68
69
import os
import streamlit as st
import numpy as np
import PIL.Image
#from PIL import Image
from fastai.vision.all import * 
import pathlib

import matplotlib.pyplot as pt

plt = platform.system()
if plt == 'Windows': pathlib.PosixPath = pathlib.WindowsPath

model = load_learner('ksl_model.pkl')

def predict(image_path):
    # load the image and convert into
    # numpy array
    #image= Image.open(image)
    # image = Image.open(image)
    # PIL images into NumPy arrays
    pred_label= model.predict(image_path)

    return pred_label


# def show_likelihood(pred_label):
#     class_probs = pred_label[9].numpy()
#     classes = pred_label[9]
#     class_labels = [classes[i] for i in range(len(class_probs))]
#     fig = pt.figure(figsize=(10, 10))
#     pt.barh(class_labels, class_probs)
#     pt.ylabel("Class")
#     pt.xlabel("Probability")
#     pt.title("Class Probabilities")
#     pt.xlim(0, 1)
#     pt.ylim(-1, len(class_probs))
#     st.pyplot(fig)

def main():
    

    # Add an image to your app
    image = "ksl1.jpg"
    st.image(image)

    st.write("# KSL Image Classification App")
    st.write("This app allows you to upload a KSL image and have it classified by a pre-trained machine learning model into one of 9 classes.")
    

    uploaded_file = st.file_uploader("Upload an image", type=["jpg", "png", "jpeg"])
    if uploaded_file is not None:

        image = PIL.Image.open(uploaded_file)

        image_path = os.path.join("tempDir",uploaded_file.name)

        with open(image_path, "wb") as f: 
          f.write(uploaded_file.getbuffer())

        st.image(image, caption="Uploaded Image", use_column_width=True)
        pred_label = predict(image_path)
        st.write("The image was classified as:", pred_label[0])

        # show_likelihood(pred_label)

if __name__ == '__main__':
    main()