In America, there is a massive problem with not using food and just throwing it out after it has expired. We believe that part of the issue as to why people do this is because they don't know what to do with the food they have. With this app, users will be able to know what to make no matter the ingredients they have in their kitchen, and not have it go to waste.

What it does

Users who have the ReciPic app will take photos of all of the ingredients they have/want to use. The app will then process the ingredient images with opencv to find what the user is trying to use and suggest a recipe that has the most ingredients in common with what the user sent in.

How we built it

We constructed an android app within android studio that will be responsible for taking and sending images via sockets. The images taken will then be sent to a python server and be run through an opencv classifier used to identify vegetables, and produce a dictionary of all the ingredients that are present. After the dictionary is built, it is run through a comparison algorithm against a csv containing 12,000 recipes to find the recipe that a) has the most ingredients in common with the input and b) has the highest proportion of available ingredients (i.e. if two recipes have 4 ingredients in common with the input set, but one has half the needed ingredients as the other, the first recipe will be chosen). This data is then sent back to the app via another socket and displayed to the user

Challenges we ran into

-Communicating and sending images between the app and python server -Finding and using a vegetable classifier -Trying to make an ideal algorithm -Setting up android studio and getting that to work

Accomplishments that we're proud of

-Building an Android Studio application

-Actually establishing a connection and sending data from app to server

-Successfully processing and identifying images of vegetables

-Constructing a search algorithm that will produce, in our opinion, the best results for the given ingredients

What we learned

-Better understanding of android studio

-Python libraries like opencv, keras, numpy, pandas

-socket connections

-integrating frontend-backend

What's next for ReciPic

-iOS app

-Adding recipe labels (vegitarian, gluten-free, etc.)

-Establish more reliable connections between app and server

-Optimize search algorithm

-Expand beyond just vegetables (construct and train our own better classifiers for all kinds of food)

-Move all operations to a database and have the ability to scrape internet for new recipes

Built With

Share this project: