We thought that reusing waste items should be a frictionless experience. Today, there is a need for adapting reusability practices which are simple and easy due to the following reasons
- hyper-consumerism in 21st century
- lots of waste
- oceans polluted with plastics
- climate change
- reusing is time consuming for people
- recycling not always an option
Can be used as an educational tool by teachers to impart practical/real-life environmental education. During times of COVID, co-curricular activities, labs are not being held like before as classes are remote, so teachers can use Snap N' Reuse to encourage kids to make DIY stuff, utilize waste items at home, which'll also help in reducing their carbon footprint and they'll be encouraged to lead a greener, sustainable life from a young age.
It also helps in reducing waste on earth, reducing carbon footprint, reduce ocean pollution due to plastic, increasing Circular economy. Educating people of all age groups about the importance of reusing, especially youngsters.
What it does
Our app takes images of waste items as input, passes them to an ML model for predictions, and then gives recommendations on how to reuse that item to make something useful. This helps in increasing reusability of waste household items which people normally throw away.
The UI of our webapp has a simple 3 step process:
- application takes an image of a waste item from the user
- our custom ML model runs inference on the image and predicts the waste item.
- based on the type of waste item, curated instructables are fetched for reusing that item
How we built it
Used TensorflowJS for our custom ML model. Python for scraping images and article links. Made webapp with HTML,CSS,JS. Deployed via Github+Netlify.
First, we gathered a total of ~500 images belonging to 6 categories of waste items (cardboard, paper,glass jar, plastic bottle, plastic container, glass bottle) from Google images. Then we trained our ML model on these images and got an accuracy of 90% and converted this Tensorflow/Keras model (.h5 format file) to a tensorflow.js model(which is in our github repo).
We also gathered links to curated instructables on "how to reuse" the above 6 waste items and stored it in a JSON file (which is in our github repo)
Then we built the webapp with html,css,JS in which the user will be able to upload images or click images from webcam, phone camera and get recommendations on how to reuse that item.
Challenges we ran into
- We were training our own ML models on our own datasets. Initially, our model had really bad accuracy and was not ideal for deployment. Also, though we had experience with ML, we hadn't used Tensorflow/Keras much (as we mostly use PyTorch). Some issues were ML related and some issues were just due to some depreciated code (tensorflow 1.0 vs tensorflow 2.0 errors).
Eventually, we were able to figure out solutions to these challenges by going through tensorflow documentation, github issues, and stackexchange. We got a model accuracy of 90% and also learnt Tensorflow along the way!
Accomplishments that we're proud of
What we learned
We learnt how to train ML models using Tensorflow-Keras and then converting those models to Tensorflow.JS format, which can then be easily integrated in a web application.
What's next for Snap N' Reuse
There are a lot of future prospects and scope for additional features.
- multi-object detection to make the user experience even better. A user will be able to detect multiple different items in one image and get recommendations to reuse all the items in the image!
- add a social layer, gamification to increase participation of people.
- build an open public database for spreading awareness among the general public against generating a lot of waste