Recycling is a big problem in the United States. In New York alone, recycling takes up $4.76 billion from the city's budget. The cost of recycling largely comes from massive factories and manual work that is required to properly separate the trash into their respective categories.
What it does
Bin aims to solve the problem of recycling using the power of computer vision and convolutional natural networks. With Bin, a user can simply place their trash in the bin and allow our machine to automatically categorized and dispose of the trash correctly.
How we built it
We used Apple's CoreML to train our own model that classifies a trash into 3 categories; landfill, plastic, and recyclables (glass, cardboard, paper). To do this, we fed ~1 million images of trash (augmented + real) into a convolutional neural network, trained with the help of transfer machine learning.
With the trained model, we are able to distinguish the category of a trash by taking a picture from an iPhone. After categorizing the item, we used gRPC to control the servos attached to the Raspberry Pi in order to guide the trash in to the correct bin.
The Bin is powered by a Raspberry Pi. The Pi in turn controls the 3 servos + foam boards that guide where the trash will fall into.
Challenges we ran into
Because we had very limited time and machine resources, we were not able to tune the hyper-parameters to our satisfaction. In addition, the number of augmented images had to be limited in order to train the neural network in a reasonable amount of time. However, with the amount of resources & time we had, we think the model turned out half decent :D
The biggest problem was that the servos we were using were not of the best quality. While they were able to handle the foam board and guide the trash into the right bins, the servos were shakey and often unpredictable.
Accomplishments that we're proud of
- Training a neural network with ~1 million images within 24 hours
- Building a mechanized trash bin with guidance flaps
- Building a full iOS app that is able to utilize gRPC to execute functions on the Raspberry Pi.
What we learned
- Cheap servos are not reliable
- Training a neural network for longer with more augmented images is not always the best
- Bring a Philips screw head next time we do a hardware hack