| # π§ 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. | |