# 🧠 Food-Image-Classification-AI-Model A Food image classification model fine-tuned on the Food-101 dataset using the powerful facebook/deit-base-patch16-224 architecture. This model classifies images into one of 101 popular food categories such as pizza, ramen, pad thai, sushi, and more. --- ## ✨ Model Highlights - 📌 Base Model: facebook/deit-base-patch16-224 - 📚 Datasets: Food-101 Data - 🌿 Classes: 101 food categories (e.g., pizza, ramen, steak, etc.) - 🔧 Framework: Hugging Face Transformers + PyTorch --- ## 🧠 Intended Uses - ✅ Food image classification in apps/web - ✅ Educational visual datasets - ✅ Food blog/media categorization - ✅ Restaurant ordering support systems --- ## 🚫 Limitations - ❌ May not perform well on poor-quality or mixed-food images - ❌ Not optimized for detecting multiple food items per image --- ## 🏋️‍♂️ Training Details | Attribute | Value | |--------------------|----------------------------------| | Base Model | facebook/deit-base-patch16-224 | | Dataset | Food-101-Dataset | | Task Type | Image Classification | | Epochs | 3 | | Batch Size | 16 | | Optimizer | AdamW | | Loss Function | CrossEntropyLoss | | Framework | PyTorch + Transformers | | Hardware | CUDA-enabled GPU | --- ## 📊 Evaluation Metrics | Metric | Score | | ----------------------------------------------- | ----- | | Accuracy | 0.97 | | F1-Score | 0.98 | | Precision | 0.99 | | Recall | 0.97 | --- --- 🚀 Usage ```python from transformers import AutoImageProcessor, AutoModelForImageClassification from PIL import Image import torch from torchvision.transforms import Compose, Resize, ToTensor, Normalize # Load model and processor model_name = "AventIQ-AI/Food-Classification-AI-Model" model = AutoModelForImageClassification.from_pretrained("your-model-path") processor = AutoImageProcessor.from_pretrained("your-model-path") def predict(image_path): device = torch.device("cuda" if torch.cuda.is_available() else "cpu") model.to(device) image = Image.open(image_path).convert("RGB") transform = Compose([ Resize((224, 224)), ToTensor(), Normalize(mean=processor.image_mean, std=processor.image_std) ]) pixel_values = transform(image).unsqueeze(0).to(device) with torch.no_grad(): outputs = model(pixel_values=pixel_values) logits = outputs.logits predicted_idx = logits.argmax(-1).item() predicted_label = model.config.id2label[predicted_idx] return predicted_label # Example usage: print(predict("Foodexample.jpg")) ``` --- - 🧩 Quantization - Post-training static quantization applied using PyTorch to reduce model size and accelerate inference on edge devices. ---- 🗂 Repository Structure ``` . beans-vit-finetuned/ ├── config.json ✅ Model architecture & config ├── pytorch_model.bin ✅ Model weights ├── preprocessor_config.json ✅ Image processor config ├── training_args.bin ✅ Training metadata ├── README.md ✅ Model card ``` --- 🤝 Contributing Open to improvements and feedback! Feel free to submit a pull request or open an issue if you find any bugs or want to enhance the model.