File size: 2,967 Bytes
55ab1b6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import streamlit as st
from fastai.learner import load_learner
from fastai.vision.all import Resize, ResizeMethod
from PIL import Image

# Function to load the learner
@st.cache(allow_output_mutation=True)
def load_model(path):
    return load_learner(path)

# Function to resize the image
def resize_image(img):
    resize_transform = Resize(256, method=ResizeMethod.Squish)
    return resize_transform(img)

# Title of the Streamlit app
st.title("Food Image Classifier")
food_d = [
 'แกงเขียวหวานไก่', 'แกงเทโพ', 'แกงเลียง', 'แกงจืดเต้าหู้หมูสับ', 'แกงจืดมะระยัดไส้',
 'แกงมัสมั่นไก่', 'แกงส้มกุ้ง', 'ไก่ผัดเม็ดมะม่วงหิมพานต์', 'ไข่เจียว', 'ไข่ดาว',
 'ไข่พะโล้', 'ไข่ลูกเขย', 'กล้วยบวชชี', 'ก๋วยเตี๋ยวคั่วไก่', 'กะหล่ำปลีผัดน้ำปลา',
 'กุ้งแม่น้ำเผา', 'กุ้งอบวุ้นเส้น', 'ขนมครก', 'ข้าวเหนียวมะม่วง', 'ข้าวขาหมู',
 'ข้าวคลุกกะปิ', 'ข้าวซอยไก่', 'ข้าวผัด', 'ข้าวผัดกุ้ง', 'ข้าวมันไก่',
 'ข้าวหมกไก่', 'ต้มข่าไก่', 'ต้มยำกุ้ง', 'ทอดมัน', 'ปอเปี๊ยะทอด',
 'ผัดผักบุ้งไฟแดง', 'ผัดไทย', 'ผัดกะเพรา', 'ผัดซีอิ๊ว', 'ฟักทองผัดไข่',
 'ผัดมะเขือยาวหมูสับ', 'ผัดหอยลาย', 'ฝอยทอง', 'พะแนงไก่', 'ยำถั่วพลู',
 'ยำวุ้นเส้น', 'ลาบหมู', 'สังขยาฟักทอง', 'สาคูไส้หมู', 'ส้มตำ',
 'หมูปิ้ง','หมูสะเต๊ะ', 'ห่อหมก', 'หมูกรอบ', 'ผัดเปรี๊ยวหวาน', 'น้ำพริกกะปิปลาทู', 'ก๋วยเตี๋ยวเรือ'
]
# Upload an image
uploaded_file = st.file_uploader("Choose an image...", type="jpg")

if uploaded_file is not None:
    # Open and display the image
    img = Image.open(uploaded_file)
    st.image(img, caption='Uploaded Image.', use_column_width=True)
    st.write("")
    st.write("Classifying...")

    # Resize the image
    img_resized = resize_image(img)

    # Load the model
    learner = load_model('export.pkl')

    # Predict the class
    pred_class, pred_idx, outputs = learner.predict(img_resized)

    # Display the results
    st.write(f'Predicted class: {food_d[pred_idx]}')