--- license: apache-2.0 datasets: - ewanlong/Food_Classification_Dataset language: - en base_model: - google/siglip2-base-patch16-224 pipeline_tag: image-classification library_name: transformers tags: - food - class - biology - indian - western --- ![fffffff.png](/static-proxy?url=https%3A%2F%2Fcdn-uploads.huggingface.co%2Fproduction%2Fuploads%2F65bb837dbfb878f46c77de4c%2FjNpPqvnYKDNV-LqGpgnI-.png) # **Indian-Western-Food-34** > **Indian-Western-Food-34** is an image classification vision-language encoder model fine-tuned from **google/siglip2-base-patch16-224** for a single-label classification task. It is designed to classify food images into various Indian and Western dishes using the **SiglipForImageClassification** architecture. ```py Classification Report: precision recall f1-score support Baked Potato 0.9912 0.9780 0.9846 1500 Crispy Chicken 0.9811 0.9707 0.9759 1500 Donut 0.9893 0.9893 0.9893 1500 Fries 0.9742 0.9827 0.9784 1500 Hot Dog 0.9830 0.9735 0.9783 1548 Sandwich 0.9898 0.9673 0.9784 1500 Taco 0.9327 0.9427 0.9377 1500 Taquito 0.9624 0.9387 0.9504 1500 Apple Pie 0.9666 0.9540 0.9602 1000 Burger 0.9114 0.9940 0.9509 331 Butter Naan 0.9691 0.9186 0.9431 307 Chai 0.9801 1.0000 0.9899 344 Chapati 0.9188 0.9694 0.9435 327 Cheesecake 0.9573 0.9640 0.9606 1000 Chicken Curry 0.9610 0.9850 0.9728 1000 Chole Bhature 0.9841 0.9867 0.9854 376 Dal Makhani 0.9698 0.9797 0.9747 295 Dhokla 0.9959 0.9959 0.9959 245 Fried Rice 0.9485 1.0000 0.9736 350 Ice Cream 0.9569 0.9770 0.9668 1000 Idli 0.9934 1.0000 0.9967 302 Jalebi 0.9931 1.0000 0.9965 288 Kaathi Rolls 0.9640 0.9606 0.9623 279 Kadai Paneer 0.9848 0.9731 0.9789 334 Kulfi 0.9810 0.9673 0.9741 214 Masala Dosa 0.9890 0.9890 0.9890 273 Momos 0.9908 0.9969 0.9938 323 Omelette 0.9829 0.9790 0.9810 1000 Paani Puri 0.9281 0.9861 0.9562 144 Pakode 0.9738 0.9665 0.9701 269 Pav Bhaji 0.9901 0.9803 0.9852 305 Pizza 0.9647 0.9927 0.9785 275 Samosa 0.9878 0.9959 0.9918 244 Sushi 0.9969 0.9800 0.9884 1000 accuracy 0.9729 23873 macro avg 0.9719 0.9775 0.9745 23873 weighted avg 0.9731 0.9729 0.9729 23873 ``` --- The model categorizes images into 34 food classes: ### **Western Foods** - **Class 0:** "Baked Potato" - **Class 1:** "Crispy Chicken" - **Class 2:** "Donut" - **Class 3:** "Fries" - **Class 4:** "Hot Dog" - **Class 5:** "Sandwich" - **Class 6:** "Taco" - **Class 7:** "Taquito" - **Class 8:** "Apple Pie" - **Class 9:** "Burger" - **Class 13:** "Cheesecake" - **Class 18:** "Fried Rice" - **Class 19:** "Ice Cream" - **Class 27:** "Omelette" - **Class 31:** "Pizza" - **Class 33:** "Sushi" ### **Indian Foods** - **Class 10:** "Butter Naan" - **Class 11:** "Chai" - **Class 12:** "Chapati" - **Class 14:** "Chicken Curry" - **Class 15:** "Chole Bhature" - **Class 16:** "Dal Makhani" - **Class 17:** "Dhokla" - **Class 20:** "Idli" - **Class 21:** "Jalebi" - **Class 22:** "Kaathi Rolls" - **Class 23:** "Kadai Paneer" - **Class 24:** "Kulfi" - **Class 25:** "Masala Dosa" - **Class 26:** "Momos" - **Class 28:** "Paani Puri" - **Class 29:** "Pakode" - **Class 30:** "Pav Bhaji" - **Class 32:** "Samosa" --- # **Run with Transformers🤗** ```python !pip install -q transformers torch pillow gradio ``` ```python import gradio as gr from transformers import AutoImageProcessor from transformers import SiglipForImageClassification from transformers.image_utils import load_image from PIL import Image import torch # Load model and processor model_name = "prithivMLmods/Indian-Western-Food-34" model = SiglipForImageClassification.from_pretrained(model_name) processor = AutoImageProcessor.from_pretrained(model_name) def food_classification(image): """Predicts the type of food in an image.""" image = Image.fromarray(image).convert("RGB") inputs = processor(images=image, return_tensors="pt") with torch.no_grad(): outputs = model(**inputs) logits = outputs.logits probs = torch.nn.functional.softmax(logits, dim=1).squeeze().tolist() labels = { "0": "Baked Potato", "1": "Crispy Chicken", "2": "Donut", "3": "Fries", "4": "Hot Dog", "5": "Sandwich", "6": "Taco", "7": "Taquito", "8": "Apple Pie", "9": "Burger", "10": "Butter Naan", "11": "Chai", "12": "Chapati", "13": "Cheesecake", "14": "Chicken Curry", "15": "Chole Bhature", "16": "Dal Makhani", "17": "Dhokla", "18": "Fried Rice", "19": "Ice Cream", "20": "Idli", "21": "Jalebi", "22": "Kaathi Rolls", "23": "Kadai Paneer", "24": "Kulfi", "25": "Masala Dosa", "26": "Momos", "27": "Omelette", "28": "Paani Puri", "29": "Pakode", "30": "Pav Bhaji", "31": "Pizza", "32": "Samosa", "33": "Sushi" } predictions = {labels[str(i)]: round(probs[i], 3) for i in range(len(probs))} return predictions # Create Gradio interface iface = gr.Interface( fn=food_classification, inputs=gr.Image(type="numpy"), outputs=gr.Label(label="Prediction Scores"), title="Indian & Western Food Classification", description="Upload a food image to classify it into one of the 34 food types." ) # Launch the app if __name__ == "__main__": iface.launch() ``` --- # **Intended Use:** The **Indian-Western-Food-34** model is designed to classify food images into Indian and Western dishes. Potential use cases include: - **Restaurant & Food Delivery Apps:** Enhancing food recognition for better menu recommendations. - **Health & Nutrition Apps:** Tracking calorie intake and diet preferences. - **Food Blogging & Social Media:** Auto-tagging food items in posts. - **Educational Purposes:** Teaching AI-based food classification.