| --- |
| license: mit |
| language: |
| - en |
| datasets: |
| - garythung/trashnet |
| --- |
| |
| # Trash Classification CNN |
|
|
| This repository contains a Convolutional Neural Network (CNN) model designed for classifying waste images into six distinct categories. |
|
|
| ## Model Description |
|
|
| The model implements a deep CNN architecture specifically designed for waste image classification. It processes RGB images through multiple convolutional layers with increasing feature complexity, followed by dense layers for final classification. |
|
|
| ### Architecture Details |
|
|
| The model uses a progressive feature extraction architecture: |
| - Input layer for RGB images (3 channels) |
| - Three convolutional layers with increasing filters (32 → 64 → 128) |
| - MaxPooling layers after each convolution |
| - Dropout layers (0.25) for regularization |
| - Three fully connected layers (128 → 32 → 6) |
| - ReLU activation functions throughout |
| - Final layer outputs 6 classes (waste categories) |
|
|
| ### Dataset and Training |
|
|
| The model was trained on the TrashNet dataset with a careful data splitting strategy: |
| - Training set: 70% of the data |
| - Validation set: 20% of the data |
| - Test set: 10% of the data |
|
|
| The training process utilized comprehensive data augmentation techniques to improve model robustness: |
| ```python |
| transformers = transforms.Compose([ |
| transforms.Resize((224, 224)), |
| transforms.RandomHorizontalFlip(p=0.5), |
| transforms.RandomRotation(degrees=15), |
| transforms.ColorJitter(brightness=0.2, contrast=0.2, saturation=0.2), |
| transforms.ToTensor(), |
| transforms.Normalize( |
| mean=[0.485, 0.456, 0.406], |
| std=[0.229, 0.224, 0.225] |
| ) |
| ]) |