This project is a deep learning-based food image classification system designed to recognize food items and estimate their nutritional facts. The model leverages transfer learning with the DenseNet201 architecture, pre-trained on ImageNet, to classify images into 101 food categories.
- Classification of 101 different food categories.
- Robust data augmentation to improve model generalization.
- Transfer learning using DenseNet201 for efficient training.
- Interactive visualizations of training and validation performance.
The dataset used in this project is the Food-101 dataset. It is a large dataset of food images organized by food type and includes:
- Size: 101 food categories with 750 training and 250 test images per category, making a total of 101,000 images.
- Quality: Labels for the test images have been manually cleaned, while the training set contains some noise.
- Context: This dataset is ideal for testing computer vision techniques and is also available on the ETH Zurich website.
- Source: Detailed in the paper "Food-101 – Mining Discriminative Components with Random Forests" by Lukas Bossard, Matthieu Guillaumin, and Luc Van Gool.
-
Clone the repository:
git clone https://github.com/KenanSh/Food-Recognition-and-Nutrition-Facts-Estimation-Fixed-Values
-
Install required dependencies:
pip install -r environment.yaml
This project has demonstrated the potential of deep learning for food classification but also highlighted key limitations:
- Accuracy Challenges: The classification accuracy is limited (48%) due to the large number of classes and insufficient samples per class.
- Inefficient Nutritional Estimation: The current method relies on static information for each food class, which is not scalable or practical.
- Planned Improvements:
- Develop a solution to estimate the weight of food items in images.
- Build or source a dataset specifically designed for nutritional facts estimation.