Screenshots from application
One major problem faced when recycled materials are processed is the differentiation between plastic and glass products.
What it does
Our project proposes a solution to this problem through the aid of a neural network. The user has the option to take an image of a bottle to either add the image to the training data for glass or plastic, or test to see if the bottle is plastic or glass.
How we built it
Our program was split into three components: the Android app, Firebase, and our neural network. For the android app, we used XML to design a screen with multiple button inputs with camera functionality. Using java in Android Studio, we were able to implement a program which can take photos and send them to Firebase to be processed, and subsequently receive and display info on whether the sent image was a glass or plastic bottle.
For Firebase, we created a directory to hold the images sent from the application. These photos hold JSON attributes that the program will access.
For our neural network, we started with ResNet 50, which is an architecture that already exists. We then had the network receive the test and training data. We then convert the received data into the correct image type for training or testing, and then use google cloud to test or train the data. When testing, the value found is then sent to the phone.
Challenges we ran into
In order to simplify processes within the neural network, inputted images had to be cropped to a 1:1 aspect ratio. However, this proved to be a challenge because Android does not automatically provide a method to do so. Another Problem we faced was the neural network would not interpret the images correctly, resulting in a 50% accuracy. This was fixed by changing the neural network architecture to ResNet 50.
Accomplishments that we're proud of
An accomplishment we are proud of is the way in which we made Firebase interface with the other components of our program, including the Android application and the neural network. Furthermore, our biggest accomplishment is the implementation of the neural network to determine the bottle type.
What we learned
We learned how to design an Android application that can interface with the cloud via Firebase. We also learned how to use Firebase to send and receive data from our neural network. Lastly, we learned how to use a neural network to train and test data.
What's next for Bottle Composition Detector
The next step for this project would be to implement a physical piece of machinery that utilizes this algorithm to separate bottles. In order to further improve the algorithm, it would be beneficial to feed the neural network more data and implement ways to prevent over-fitting to increase the accuracy of the network.