Inspiration

It was really hard to come up with an idea at first. We wanted to do something with CV, because none of us had really made a project with it before. Ultimately it was our love for the environment (and food) that led us to FoodPrint.

What it does

FoodPrint is a mobile app that allows users to view and track carbon emissions of the food they eat every day. This app uses CV to scan food items and LLMs to get carbon emission info about those items. The front-end, built with react native, clearly displays this image, and users can upload pictures of food to their account in order to compare their carbon emissions with other users on the leaderboard.

How we built it

We started by testing out the capabilities of openCV and YOLO with a simple food-detecting python script. After that, we tried out a bunch of frontends, trying react native, swift, and even considered flutter and kotlin. We were about to ditch the mobile idea and just build a frontend for web, but we eventually found a way to get the frontend for mobile working. We then further implemented the backend with flask and cerebras API to get carbon emission info on detected foods. Our prompt had to be specific and we required that the llm return us a json with certain information. Finally, we connected frontend and backend (was such a pain not gonna lie) and made sure they could interface well, added user auth, and polished the front-end.

Challenges we ran into

One of the main challenges we ran into was getting our CV view to display on the frontend. We split our efforts to where two of us worked on the backend and CV stuff while the other two worked on the front-end, and getting the two sides of the project to interface was really challenging. The PennApps wifi also didn’t allow us to connect our code to our phones easily, so we had to use personal hotspots in order to test code on our phone.

Accomplishments that we're proud of

We are proud of a lot of things from this project but to name a few: Successfully implementing an idea that took a long time to come up with Trying out CV for the first time Building and learning react native Implementing the backend python script using new libraries like YOLO and openCV Very nice looking front-end despite the network hurdles at first

What we learned

We learned a lot about CV, cerebras, and a lot of other libraries/APIs. Most of our time was spent trying to get all the different libraries to work well with each other and form a cohesive app. Specifically, openCV was very difficult to get working, but finally getting it felt great. We also learned a lot about working with new people. We are all from very different locations geographically, but we were able to come together and make something cool.

What's next for FoodPrint

We realized that FoodPrint is very limited by its food detection AI. By upgrading or training a new model with a better dataset, FoodPrint would get much better at recognizing more complex dishes with multiple ingredients which would significantly expand its functionality.

It’s also very possible to expand this technology further beyond just food. By scanning items like laptops, cars, etc. it could be very educational and eye-opening for users. Fleshing out the ‘alternative suggestions’ section more would also help encourage and educate users to be more climate-friendly.

Built With

Share this project:

Updates