-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.py
67 lines (52 loc) · 2.29 KB
/
app.py
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
import streamlit as st
import requests
from streamlit_lottie import st_lottie
from PIL import Image
import numpy as np
from st_aggrid import AgGrid, GridOptionsBuilder
from st_aggrid.shared import GridUpdateMode
import pandas as pd
import cv2
from PIL import Image, ImageOps
import tensorflow as tf
st.set_page_config(page_title="image classification project", page_icon=":tada:", layout="wide")
def load_lottieurl(url):
r = requests.get(url)
if r.status_code != 200:
return None
return r.json()
# Use local CSS
def local_css(file_name):
with open(file_name) as f:
st.markdown(f"<style>{f.read()}</style>", unsafe_allow_html=True)
# ---- LOAD ASSETS ----
lottie_coding = load_lottieurl("https://lottie.host/16608717-26ef-424f-b7f1-5eeeff8d4f81/EspV8rVdyG.json")
lottie_H = load_lottieurl("https://assets9.lottiefiles.com/packages/lf20_ha3tc6tl.json")
# ---- HEADER SECTION ----
with st.container():
st.subheader("Hi there, I am Abdalrahman Shahrour :bar_chart:")
# logatta
# st_lottie(logatta, height=300, key="codi")
left_column, right_column = st.columns(2)
with left_column:
st.title("Project : image classification project accuracy_score = 88.2")
# st.write(
# "My data contains about 24,000 records"
# )
st.write("[My Kaggle accaunt >](https://www.kaggle.com/abdalrahmanshahrour)")
st.write("[My LinkedIn accaunt >](https://www.linkedin.com/in/shahrour/)")
with right_column:
st_lottie(lottie_coding, height=300, key="coding")
uploaded_file = st.file_uploader("Upload the image to be classified U0001F447", type=["jpg", "png"])
st.set_option('deprecation.showfileUploaderEncoding', False)
if uploaded_file is not None:
def imagetopredict(image):
size = (32,32)
image = ImageOps.fit(image, size)
image = np.asarray(image)
return np.vstack([image])
image = Image.open(uploaded_file)
p = imagetopredict(image)
new_model = tf.keras.models.load_model('cnnmodel')
lable = ['airplane', 'car', 'cat', 'dog', 'flower', 'fruit', 'motorbike', 'person']
st.subheader(lable[int(np.argmax(new_model.predict(np.array([p]))))])