farhanalimagsi's picture
Upload 4 files
83363e3
import tensorflow as tf
import streamlit as st
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
from sklearn.metrics import classification_report
st.set_option('deprecation.showfileUploaderEncoding', False)
@st.cache_resource()
def load_model():
model = tf.keras.models.load_model('model.h5')
return model
def predict_class(image, model):
image = tf.cast(image, tf.float32)
image = tf.image.resize(image, [224, 224])
image = tf.expand_dims(image, axis=0)
prediction = model.predict(image)
return prediction
model = load_model()
st.title("Food Vision Classification")
file = st.file_uploader("Upload an iamge of food", type=["jpg", "jpeg", "png"])
col1, col2 = st.columns(2)
col1.subheader("Image to be Predicted")
col2.subheader("Results")
if file is None:
st.text("Waiting for upload....")
else:
test_image = Image.open(file)
slot = st.empty()
col1.image(test_image, caption="Input Image", width=300)
slot.text('Running inference.....')
pred = tf.squeeze(predict_class(test_image, model))
class_names = pd.read_csv("class_names.txt")
class_names = np.array(class_names["labels"])
result = class_names[tf.argmax(pred)]
slot.text('Done')
output = 'The image is a ' + result
col2.success(output)
st.subheader("Metrics")