Spaces:
Running
Running
from PIL import Image | |
import matplotlib.pyplot as plt | |
import gradio as gr | |
from transformers import pipeline | |
from transformers import AutoModelForImageClassification, AutoImageProcessor | |
image_processor = AutoImageProcessor.from_pretrained("./Mymodel/") | |
model = AutoModelForImageClassification.from_pretrained("./Mymodel/") | |
food_info = { | |
'Breakfast Burrito': { | |
'Description': "Wrap up your mornings with a burst of flavor β the breakfast burrito, where every bite is a sunrise in your mouth!", | |
'Calories and Health Info': "The calorie count can vary depending on ingredients, but incorporating whole-grain tortillas, lean proteins, and veggies can make it a balanced and nutritious choice for a hearty breakfast." | |
}, | |
'Caesar Salad': { | |
'Description': "Crispy, creamy, and utterly satisfying β the Caesar Salad, where freshness meets indulgence in every crunchy bite!", | |
'Calories and Health Info': "While delicious, be mindful of the dressing and croutons. Opt for a lighter dressing and whole-grain croutons to keep it healthier. Loaded with vitamins and greens, it's a generally nutritious option." | |
}, | |
'Chicken Quesadilla': { | |
'Description': "Cheesy, savory, and filled with zest β the chicken quesadilla, because life is better when wrapped in a warm tortilla!", | |
'Calories and Health Info': "Moderation is key. Choose lean chicken and load up on veggies to make it a protein-packed, flavorful treat. Use whole-grain tortillas for added nutritional value." | |
}, | |
'Club Sandwich': { | |
'Description': "Layers of delight stacked high β the club sandwich, where every layer tells a story of taste and texture!", | |
'Calories and Health Info': "Opt for whole-grain bread, lean proteins, and plenty of veggies. The club sandwich can be a balanced choice with a mix of carbohydrates, proteins, and essential nutrients." | |
}, | |
'Donuts': { | |
'Description': "Ring-shaped bliss, glazed with happiness β donuts, where every bite is a moment of pure joy!", | |
'Calories and Health Info': "A sweet indulgence best enjoyed in moderation. High in sugars and fats, it's a treat for special occasions rather than an everyday choice." | |
}, | |
'Fish And Chips': { | |
'Description': "Crispy ocean delights paired with golden perfection β fish and chips, a symphony of crunch and flavor!", | |
'Calories and Health Info': "While delicious, it can be high in calories and fats. Opt for baked or grilled fish and consider sweet potato fries for a healthier twist." | |
}, | |
'Hamburger': { | |
'Description': "Juicy, savory, and the epitome of handheld happiness β the hamburger, where every bite is a taste of tradition!", | |
'Calories and Health Info': "Choose lean meats, whole-grain buns, and load up on veggies for a more balanced option. Moderation is key to enjoying this classic." | |
}, | |
'Pizza': { | |
'Description': "A slice of heaven in every bite β pizza, where the melding of cheese, sauce, and crust creates an edible masterpiece!", | |
'Calories and Health Info': "Balance is key. Opt for thin crust, load up on veggies, and consider lean protein toppings for a more nutritious pizza experience." | |
}, | |
'Samosa': { | |
'Description': "A crispy pocket of delight β samosa, where every fold tells a tale of spices and flavors!", | |
'Calories and Health Info': "While a tasty snack, samosas are often fried. Enjoy in moderation and consider baked versions with a variety of fillings for a healthier option." | |
}, | |
'Waffles': { | |
'Description': "Crisp on the outside, fluffy on the inside β waffles, turning breakfast into a golden affair!", | |
'Calories and Health Info': "Opt for whole-grain or alternative flours, and top with fresh fruits or yogurt for added nutrition. Enjoying waffles in moderation can be part of a balanced breakfast." | |
} | |
} | |
title = "Foodie π" | |
description = " Image classification model capable of accurately predicting 10 different foods." | |
article = "Can predict the following 10 classes: Breakfast Burrito, Caesar Salad, Chicken Quesadilla, Club Sandwich, Donuts, Fish And Chips, Hamburger, Pizza, Samosa and Waffles." | |
import os | |
folder_path = "Images" | |
example_list = [] | |
if os.path.exists(folder_path) and os.path.isdir(folder_path): | |
file_paths = [os.path.join(folder_path, file_name) for file_name in os.listdir(folder_path)] | |
for file_path in file_paths: | |
example_list.append([file_path]) | |
def predict(my_image): | |
image = Image.fromarray(my_image.astype('uint8')) | |
pipe = pipeline("image-classification", | |
model=model, | |
feature_extractor=image_processor) | |
pred = pipe(image) | |
res = {} | |
for i in pred: | |
res[i['label'].replace('_', ' ').title()] = round(i['score']) | |
return res, food_info[pred[0]['label'].replace('_', ' ').title()]['Description'],food_info[pred[0]['label'].replace('_', ' ').title()]['Calories and Health Info'] | |
iface = gr.Interface(fn=predict, | |
inputs='image', | |
outputs=[gr.Label(num_top_classes=5, label="Predictions"), | |
gr.Text(label='Description'), | |
gr.Text(label='Calories and Health Info')], | |
title=title, | |
description=description, | |
article=article, | |
examples=example_list) | |
iface.launch() | |