Inspiration
We all live in Selly Oak, where there have been ongoing issues over refuse collection. The council have not collected recycling from many streets in over 5 weeks, claiming that the materials were either missorted or soiled. Whether the entire population of Selly Oak are missorting the rubbish, or if the Council are avoiding taking refuse for other reasons, we don't know. However, we knew we wanted to create some sort of program that would solve the ongoing issue, regardless of root cause.
What it does
As such, we developed Snaptrash, an application that takes an image and assigns it one of ten recycling categories, taken from the Birmingham City Council recycling help page. The user opens the web application, submits an image, and the application returns a message, telling the user the likely category the pictured item belongs to, and providing instructions on whether the item can be put in the domestic recycling bin, and if not how else it can be disposed of.
How we built it
The application is built around a machine learning model developed with the Google Cloud Platform Vision AutoML API. It is a single label classifier, meaning each image is only given one label. We wrote the back end in python, using flask and a virtual environment. We trained the model on nearly 3,000 data points, and used the AutoML auto training feature to train it over 4 hours. When the training was complete, we tested the model, resulting in a precision score of 94.31%, and a recall score of 93.97%. Happy with the success of our model, we deployed it to the Google Cloud, where we could then interface between the model and flask, to offer a user friendly interface to our model.
Challenges we ran into and the accomplishments that we're proud of
At the beginning of this Hackathon, none of us had ever used a Google Cloud API before. While we all knew python at various levels, none of us had used flask or virtual environments, and none of us had any HTML experience. We are therefore impressed (and slightly incredulous) that in the space of 25 hours, we gained these skills and used them to develop a working application that ultimately may help our community.
What we learned
We brushed up on our python skills, and learnt how to use flask and virtual environments. We learnt about the Google Cloud and its APIs in general, as well as gaining direct experience using the AutoML API. We learnt about creating balanced and diverse datasets, about labelling data, and how to test the models we create from it. We were also lucky to be able to attend a number of talks this weekend from volunteers and sponsors, such as the BJSS talk on AI in Healthcare and Voice Assisted Living. It was interesting to learn how we can make a positive impact on tomorrows medicine. We were also given food for thought about the possible negative implications of this technology, such as encouraging children to be rude in daily life, by mimicking the blunt way we are required to communicate with voice assistants.
What's next for Snaptrash
We'd like to learn how to develop this application into an app, as opposed to a web interface, as we feel this would be more relevant to our original audience. We'd also like to incorporate wider features, such as push notifications for when residents ought to put their bins out, possibly by data scraping the BCC website. We'd also like to add google maps functionality; where the pictured item is not suitable for home disposal, we currently give recommendations for alternative disposal means, e.g local recycling centre. We would like to include google maps functionality so that when this scenario occurs, we can give directions to the closest recycling centre etc.
Log in or sign up for Devpost to join the conversation.