| --- |
| license: apache-2.0 |
| tags: |
| - image-classification |
| - computer-vision |
| - vegetables |
| - pytorch |
| - food |
| datasets: |
| - Custom |
| metrics: |
| - accuracy |
| - confusion_matrix |
| model-index: |
| - name: VeggieNet |
| results: |
| - task: |
| type: image-classification |
| name: Image Classification |
| dataset: |
| name: Custom Vegetable Dataset |
| type: image |
| metrics: |
| - type: accuracy |
| value: 91.63% |
| - type: confusion_matrix |
| value: included |
| --- |
| |
| # π₯ VeggieNet: Vegetable Image Classifier |
|
|
| **VeggieNet** is a deep learning model trained in PyTorch for classifying vegetable images into categories like tomato, carrot, potato, etc. It uses a fully connected neural network with regularization (BatchNorm and Dropout) to prevent overfitting and improve generalization. |
|
|
| ## π§ Model Architecture |
|
|
| The network takes 128x128 RGB images and passes them through the following layers: |
|
|
| ```python |
| nn.Sequential( |
| nn.Flatten(), |
| nn.Linear(3 * 128 * 128, 512), |
| nn.BatchNorm1d(512), |
| nn.ReLU(), |
| nn.Dropout(0.3), |
| nn.Linear(512, 256), |
| nn.BatchNorm1d(256), |
| nn.ReLU(), |
| nn.Dropout(0.3), |
| nn.Linear(256, 128), |
| nn.BatchNorm1d(128), |
| nn.ReLU(), |
| nn.Dropout(0.3), |
| nn.Linear(128, num_classes) |
| ) |
| ``` |
|
|
| - **Loss Function**: `CrossEntropyLoss` |
| - **Optimizer**: `Adam` |
| - **Input Size**: `3x128x128` |
| - **Output**: `num_classes` (one per vegetable category) |
|
|
| ## π Dataset |
|
|
| This model is trained on a custom dataset from kaggle of vegetable images organized into: |
|
|
| ``` |
| vegetables_dataset/ |
| βββ train/ |
| βββ val/ |
| βββ test/ |
| ``` |
|
|
| Each subfolder represents a vegetable class (e.g., `carrot/`, `tomato/`, etc.). To download [Click Here](https://www.kaggle.com/datasets/misrakahmed/vegetable-image-dataset?select=Vegetable+Images) |
|
|
| ## π Training & Evaluation |
|
|
| - Trained for **10 epochs** |
| - Batch size: 16 |
| - Includes validation + test evaluation |
| - Final accuracy on test set: **~91.63%** |
| - Confusion matrix is included in the evaluation |
|
|
| ## β
Intended Use |
|
|
| - Educational projects |
| - Computer vision experiments |
| - Simple food classification tasks |
|
|
| ## π« Limitations |
|
|
| - Not robust to background noise or very similar vegetables |
| - May underperform on unseen real-world data if distribution differs |
|
|
| ## π‘ Future Improvements |
|
|
| - Replace FC layers with a CNN for better spatial feature learning |
| - Use transfer learning (e.g., ResNet18) |
| - Increase dataset diversity and quantity |
|
|
| ## π License |
|
|
| This model is available under the **Apache-2.0 License**. |
|
|
| ## βοΈ Author |
|
|
| - Created by: *Arun Arunisto* |
| - GitHub: [arun-arunisto](https://github.com/arun-arunisto) |
|
|