We really enjoyed the fact that the event coordinators made an effort to organize a sustainable event. Thus, we wanted to create a project following the same idea. We also were concerned about the amount of food wasted, as one third of the global food production is thrown away. We decided to create a website that helps with this significant issue. Knowing that household leftovers are a major contribution to this problem, we aimed at a user-friendly program to impact a wider audience.

What it does

Our food waste reducer keeps track of the grocery items you keep into your fridge. Every time you buy an item, your fridge scans its UPC code, grabs the item's name, stores the data, and automatically notifies you when it's nearing its expiration date.

How we built it

We developed a bar code and food scanner in python using OpenCV, pyzbar and sklearn. The bar codes were detected using image processing, and were decoded using a database to get the names of the items and add them to the fridge queue. A machine learning model (sklearn) to identify items that do not have a barcode. Following this, a web application in JavaScript and HTML was created to display the items in the fridge and keep track of their expiration dates. Items enter and leave the fridge all throughout the day, so we created a dynamic mySQL database and linked it with our python code using Flask. The video feed from the webcam scanner is also streamed to the website using flask, giving to a complete and easy to use app that is accessible from multiple platforms.

Challenges we ran into

While training the model, we didn't have powerful enough hardware, which led to several crashes of one of our laptops. We thus had to train it on a smaller dataset regarding the categories (3 types of fruits instead of 101 in the original database) and the number of images for each one (300 instead of 1600 per type). This led to a huge inaccuracy and a massive waste of time to train the model during development, as we couldn't find a pre-trained model that fits our project well.

We also had difficulties combining different part of code together. We split the project into 3 different parts: bar-code analysis, item recoginization and GUI developing. Every subteam have their own coding habit and it is hard to get everybody's code together and still work well.

Debugging, debugging,debugging....

Accomplishments that we're proud of

We did our best utilizing our knowledge sets while developing the program in a very limited time. We like how our project is creative and feasible at the same time, and believe that this idea will develop into a real product with positive impacts on the environment. Overall, we feel like each member of the group contributed significantly to the creation of the project.

What we learned

We learned how to interact between html page and Python program using Flask. We discovered that using Pyzbar, we could extract barcodes and verify them later with a database. It was also our first time creating a real-time computer vision web application. We then studied deep-learning and trained a computer-vision model for the first time. We developed communication skills while helping each other as a team.

What's next for I Better Munch'it [IBM]

Considering the limited time for the creation of the project, the limited hardware and the idea of training a model that could recognize various fruits and vegetables, we didn't have the time to integrate a lot of possibilities. With a more powerful computer, we could train the model for longer, and with much bigger data sets, that would increment greatly its accuracy.

We would also spend more time polishing the User Interface, with a color code for the different expiration dates.

To be as available as possible, it would be optimal for the project to be developped as a smartphone app. This way, users will have access to information of their food items from their pockets anytime. To go even further, the app could give a personal recommendation for recepies according to food close to its expiration date in the fridge. This would make it easier for the customers to stay sustainable.

Share this project: