Instructions to use rootstrap-org/waste-classifier with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- fastai
How to use rootstrap-org/waste-classifier with fastai:
from huggingface_hub import from_pretrained_fastai learn = from_pretrained_fastai("rootstrap-org/waste-classifier") - Notebooks
- Google Colab
- Kaggle
| datasets: | |
| - rootstrap-org/waste-classifier | |
| library_name: fastai | |
| tags: | |
| - classification | |
| - waste | |
| - fastai | |
| - resnet | |
| license: mit | |
| --- | |
| ### Model Description | |
| A machine learning model for waste classification | |
| - **Developed by:** rootstrap | |
| - **Model type:** classifier | |
| - **License:** mit | |
| ## Waste Classifier Model | |
| The aim is to build a model for waste classification that identifies among the different classes: | |
| - cardboard | |
| - compost | |
| - glass | |
| - metal | |
| - paper | |
| - plastic | |
| - trash | |
| This machine learning model will help people to improve their decision when classifying trash | |
| The model was built using **Fastai** is a deep learning library which provides high-level components that can quickly and easily provide state-of-the-art results in standard deep learning domains. | |
| It has two main design goals: | |
| To be approachable and rapidly productive | |
| To be also configurable. | |
| ### Model Sources | |
| - **Repository:** [https://github.com/rootstrap/fastai-waste-classifier](https://github.com/rootstrap/fastai-waste-classifier) | |
| ## Uses | |
| At Rootstrap we classify waste. We found that people were struggled to classify correctly, | |
| and then we end up not recycling most of the generated waste at the office, since if there were items in the wrong basket, | |
| all the basket should not be classified. | |
| Because of this reason, we created an app to help people at our company to classify waste. | |
| ### Direct Use | |
| ```bash | |
| model = load_learner("result-resnet50.pkl") | |
| model.predict() | |
| ``` | |
| ## Bias, Risks, and Limitations | |
| Take into account that the model has been trained firstly trained with images that mostly have white background that contains only one object. In a further training the model was trained with a more varied range of images, which improved the bias a little bit. But the model still is incapable of detecting more than one object per image. So, | |
| you won't be able to classify several objects at the same time, or pictures that have one object above another. | |
| This does not aim to replace humans to classify trash, at least for now, instead it is a tool to help them to better classify. | |
| ## Training Details | |
| ### Training Data | |
| The data is already splitted in train and test folders. Inside each folder contains one folder for each class. Those images were obtained using Bing searcher using the api HTTP. | |
| You can find the code used to download the images at [this](https://colab.research.google.com/drive/1JvAYFx1DIEi1MMyI-tuCfE2eHMSKisKT?usp=sharing) Google Colab. | |
| You can find the final dataset splitted into train and test [rootstrap-org/waste-classifier](https://huggingface.co/datasets/rootstrap-org/waste-classifier) in a Google Drive folder. | |
| Split into train/test | |
| You can find the code for the classifier [resnet-model.ipynb](https://github.com/rootstrap/fastai-waste-classifier/blob/main/resnet-model.ipynb) | |
| load the model [result-resnet50.pkl](https://huggingface.co/rootstrap-org/waste-classifier/blob/main/result-resnet50.pkl) | |
| The model has been trained to classify waste into 6 classes. | |
| This repository contains the dataset that we collected. | |
| The dataset used for the first training consisted of 2527 images: | |
| - 501 glass | |
| - 594 paper | |
| - 403 cardboard | |
| - 482 plastic | |
| - 410 metal | |
| - 137 trash | |
| The dataset was built joining images search on the internet using Bing plus some images taken manually, in addition to images from [Trashnet dataset](https://github.com/garythung/trashnet) | |
| If you are using the dataset, please give a citation of this repository. The dataset can be downloaded at [rootstrap-org/waste-classifier](https://huggingface.co/datasets/rootstrap-org/waste-classifier). | |
| In the second training, another set of images was collected using the [TACO dataset](http://tacodataset.org/) as a starting point, along with other datasets in the web. | |
| A selection of proper training images was made from those datasets to build the training dataset. | |
| ### Training Procedure | |
| You can find the code for training at [resnet-model.ipynb](https://github.com/rootstrap/fastai-waste-classifier/blob/main/resnet-model.ipynb) | |
| Training the model by fine tuning resnet50, a convolutional neural network that has 50 layers. It is pretrained on ImageNet dataset and can classify images into 1000 object categories. | |
| The expected input size is 224x224. | |
| ## Evaluation and Results | |
| After the first training, the model reached an accuracy of 0.98. | |
| However, that first model had a lot of bias and limitations. | |
| The final model trained with more images, many of them from the TACO dataset, reached an accuracy of 89%. | |
| That model still has some limitation, but it's a lot more flexible than the first one. |