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]}')