|
import streamlit as st |
|
from fastai.learner import load_learner |
|
from fastai.vision.all import Resize, ResizeMethod |
|
from PIL import Image |
|
|
|
|
|
@st.cache(allow_output_mutation=True) |
|
def load_model(path): |
|
return load_learner(path) |
|
|
|
|
|
def resize_image(img): |
|
resize_transform = Resize(256, method=ResizeMethod.Squish) |
|
return resize_transform(img) |
|
|
|
|
|
st.title("Food Image Classifier") |
|
food_d = [ |
|
'แกงเขียวหวานไก่', 'แกงเทโพ', 'แกงเลียง', 'แกงจืดเต้าหู้หมูสับ', 'แกงจืดมะระยัดไส้', |
|
'แกงมัสมั่นไก่', 'แกงส้มกุ้ง', 'ไก่ผัดเม็ดมะม่วงหิมพานต์', 'ไข่เจียว', 'ไข่ดาว', |
|
'ไข่พะโล้', 'ไข่ลูกเขย', 'กล้วยบวชชี', 'ก๋วยเตี๋ยวคั่วไก่', 'กะหล่ำปลีผัดน้ำปลา', |
|
'กุ้งแม่น้ำเผา', 'กุ้งอบวุ้นเส้น', 'ขนมครก', 'ข้าวเหนียวมะม่วง', 'ข้าวขาหมู', |
|
'ข้าวคลุกกะปิ', 'ข้าวซอยไก่', 'ข้าวผัด', 'ข้าวผัดกุ้ง', 'ข้าวมันไก่', |
|
'ข้าวหมกไก่', 'ต้มข่าไก่', 'ต้มยำกุ้ง', 'ทอดมัน', 'ปอเปี๊ยะทอด', |
|
'ผัดผักบุ้งไฟแดง', 'ผัดไทย', 'ผัดกะเพรา', 'ผัดซีอิ๊ว', 'ฟักทองผัดไข่', |
|
'ผัดมะเขือยาวหมูสับ', 'ผัดหอยลาย', 'ฝอยทอง', 'พะแนงไก่', 'ยำถั่วพลู', |
|
'ยำวุ้นเส้น', 'ลาบหมู', 'สังขยาฟักทอง', 'สาคูไส้หมู', 'ส้มตำ', |
|
'หมูปิ้ง','หมูสะเต๊ะ', 'ห่อหมก', 'หมูกรอบ', 'ผัดเปรี๊ยวหวาน', 'น้ำพริกกะปิปลาทู', 'ก๋วยเตี๋ยวเรือ' |
|
] |
|
|
|
uploaded_file = st.file_uploader("Choose an image...", type="jpg") |
|
|
|
if uploaded_file is not None: |
|
|
|
img = Image.open(uploaded_file) |
|
st.image(img, caption='Uploaded Image.', use_column_width=True) |
|
st.write("") |
|
st.write("Classifying...") |
|
|
|
|
|
img_resized = resize_image(img) |
|
|
|
|
|
learner = load_model('export.pkl') |
|
|
|
|
|
pred_class, pred_idx, outputs = learner.predict(img_resized) |
|
|
|
|
|
st.write(f'Predicted class: {food_d[pred_idx]}') |