image_to_food / main.py
mdhameem's picture
work of nayon
6555329 verified
raw
history blame contribute delete
No virus
3.48 kB
# import streamlit as st
# import tensorflow as tf
# import numpy as np
# from flask import Flask, jsonify, request
# import requests
# # Create a Flask app
# app = Flask(__name__)
# # Tensorflow Model Prediction
# def model_prediction(test_image):
# model = tf.keras.models.load_model("image_to_food_model1.h5")
# image = tf.keras.preprocessing.image.load_img(test_image, target_size=(256, 256))
# input_arr = tf.keras.preprocessing.image.img_to_array(image)
# input_arr = np.array([input_arr]) # convert single image to batch
# predictions = model.predict(input_arr)
# return np.argmax(predictions) # return index of max element
# # Define an endpoint to handle predictions
# @app.route('/', methods=['POST'])
# def predict():
# test_image = request.files['file']
# result_index = model_prediction(test_image)
# # Reading Labels
# with open("labels.txt") as f:
# content = f.readlines()
# label = [i.strip() for i in content]
# prediction = label[result_index]
# return jsonify({"prediction": prediction})
# # Sidebar
# st.sidebar.title("Dashboard")
# app_mode = st.sidebar.selectbox("Select Page", ["Prediction"])
# # Main Page
# # if app_mode == "Home":
# # st.header("Food Recipe")
# # image_path = "home_page.jpg"
# # st.image(image_path)
# # Prediction Page
# if app_mode == "Prediction":
# st.header("Model Prediction")
# test_image = st.file_uploader("Choose an Image:")
# if st.button("Show Image"):
# st.image(test_image, width=4, use_column_width=True)
# # Predict button
# if st.button("Predict"):
# st.write("Our Prediction")
# # Send image to backend for prediction
# files = {'file': test_image.getvalue()}
# response = requests.post('http://localhost:8501', files=files)
# prediction = response.json()["prediction"]
# st.success("Model is Predicting it's a {}".format(prediction))
import streamlit as st
import tensorflow as tf
import numpy as np
#Tensorflow Model Prediction
def model_prediction(test_image):
model = tf.keras.models.load_model("image_to_food_model1.h5")
image = tf.keras.preprocessing.image.load_img(test_image,target_size=(256,256))
input_arr = tf.keras.preprocessing.image.img_to_array(image)
input_arr = np.array([input_arr]) #convert single image to batch
predictions = model.predict(input_arr)
return np.argmax(predictions) #return index of max element
#Sidebar
st.sidebar.title("Dashboard")
app_mode = st.sidebar.selectbox("Select Page",["Prediction"])
# #Main Page
# if(app_mode=="Home"):
# st.header("Food Recipe")
# image_path = "home_page.jpg"
# st.image(image_path)
#Prediction Page
if(app_mode=="Prediction"):
st.header("Model Prediction")
test_image = st.file_uploader("Choose an Image:")
if(st.button("Show Image")):
st.image(test_image,width=4,use_column_width=True)
#Predict button
if(st.button("Predict")):
st.snow()
st.write("Our Prediction")
result_index = model_prediction(test_image)
#Reading Labels
with open("labels.txt") as f:
content = f.readlines()
label = []
for i in content:
label.append(i[:-1])
st.success("Model is Predicting it's a {}".format(label[result_index]))