AmanSengar's picture
Create README.md
97fd5d7 verified
# 🧠 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.