Let's Build!

By Travis Lange

Ready -> Set -> GO!

In case you hadn’t heard, my partner and I will be working to create a mobile application that can be used to enable a low cost smart recycling bin this quarter. I’m excited for this project as it will push both my frontend design and backend architecture skills that I have developed throughout the Oregon State post-bacc program. 

Now let’s talk a bit about our system!

To start we have decided to segment this system into two distinct modules. The first module will be a lightweight mobile application built in Dart using the Flutter framework. The reason we choose to use Flutter for this project is because applications built on Flutter are inherently portable and can be deployed with minimal modifications to both Android and the iOS platforms. This is a huge benefit to our team as we don’t have the time to create a separate application for Android and iOS separately and as a result would not be able to reach as wide of an audience if we only built an app for one platform. Lastly Flutter has the benefit of being open source and having a large community of developers. This is beneficial to us as it gives us the freedom to customize our implementation where needed and a large community we can reach out to if we encounter a bug.

The second half of our project will be a machine learning powered backend that will be hosted remotely and can be accessed by the frontend through a standard REST interface. This service will primarily function as an assessment tool that will allow systems to submit an image and then receive a response indicating the type of product and likelihood that it is recyclable. As this service is going to live fully in the backend we’ve chosen to build it in Python and host it on the cloud using a provider that offers free hosting to small projects (e.g. Heroku). Python was chosen as the language for this service as it is the well adopted by the machine learning community and will allow us to leverage some well built open source libraries (e.g. Tensorflow and PyTorch) which will allow us to focus on honing the accuracy of our models and not just on re-implementing the existing models in another language. 


It is important to note that our team is leaning towards using the Tensorflow library for this project as it is beginner friendly and comes with some pre-trained models that we plan to use as a baseline when assessing our systems implementation. With that said we’ve seriously considered using PyTorch as the base library for the backend and may still switch to it depending on how our experience with Tensorflow is. The main reason for this is that we’ve heard PyTorch executes more quickly than Tensorflow which may be helpful for us as we plan to deploy our solution as a consumer facing application where users will be looking for a highly responsive and fast experience.

My role in this project will primarily be focused on designing and developing the back end and I am jazzed for it! Specifically I love how separate our backend is from the frontend. By building and hosting the backend on a remote server we turn it into a portable service that can be swapped with another model if a more effective and efficient model is developed that we want to apply to the frontend. Additionally, while it is not always the most efficient language for certain app types, Python lends itself well to machine learning projects as it is incredibly easy to write and has wide support from the community. As a result I think it will be fun building the backend as we’ve described.

Tune in in two weeks to read more on how the project is going!

Print Friendly, PDF & Email

Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *