Incorrectly sorted garbage is costing Canada's recycling programs millions of dollars per year. Furthermore, Canada is struggling to meet the standard for the amount of contamination in recyclables set by China (0.5%), the world's biggest importer of recyclable materials. All of these are costing Canada's economy a huge amount of resources which can be instead used for developing other services such as healthcare and transportation systems.

What it does

It is called "ZeroWaste", an interactive and engaging educational app which aims to motivate people to recycle correctly. It has a few different features:

  • Input real time pictures and categorize them into correct trash sorting labels
  • Approximate contents in the trash
  • Waste tracker
  • Socially interactive Facebook Messenger game

How we built it

The backend image classification is based on Microsoft Azure's Cognitive Services Custom Vision API. The front end is built using JavaScript, HTML5, Angular JS.

Challenges we ran into

We have no experience in front end developing such as JavaScript, Angular JS. It took us a lot of time to pick up these different languages within short period of time. Also, Azure's Cognitive Services API doesn't not recognize HTTP request in Python and it's c# library is still in development with many failing library functions, so we had to consider alternative ways to make HTTP request.

Accomplishments that we're proud of

  • Learning how to use Azure's machine learning portal
  • Building a HTTP request that connects Azure portal to facebook messenger
  • A workable prototype which helps sustainability

What we learned

  • We learned web development and UI design.
  • We learned to use the Microsoft's Azure Cognitive Services to leverage the power of AI to build something socially meaningful.
  • We learned how to produce a workable prototype under pressure and sleep deprived :).

What's next for Zero waste

  • We want to be able to calculate the weight and size of object being categorized to determine how much waste is thrown out.
  • Improve ML model's precision by training on images with noisy backgrounds
  • Image tagging functionality where we can categorize different garbages in a single image
  • Image segmentation functionality where we can recover only the object of interest
Share this project: