Inspiration

How many times have you seen that your produce (fruits/veggies) has gone rotten or has been aimlessly sitting around in your fridge? Every year, about 17% of fresh produce goes to waste for this reason; but it doesn’t have to be this way. FreshVision aims to solve this problem and to make cooking with healthy ingredients easier, all to ensure we minimize food waste, keep people healthy, and make peoples’ lives easier. We also aim to help achieve SDG 12: Responsible Consumption and Production in this way.

What it does

FreshVision solves this waste problem by making sure you know when your food is ripe and suggests recipes for you to use so that your food doesn’t sit around and go to waste. By using antifreeze cameras installed in your fridge, photos of your produce will be taken every 3 hours and sent to a machine learning model and web app to determine if anything is ripe. Whenever the model notices that something is ripe, the web app sends an SMS text message telling the user. The web app also accesses a recipe database that will showcase recipes for the ripe food to the user. As mentioned earlier, this will encourage users to cook with their produce, minimize food waste, and encourage healthy eating. The web app also contains an About Us and Contact page, fit for users to learn more about us and our mission.

*Due to hardware limitations, the prototype currently accepts image uploads rather than taking them from antifreeze cameras.

How we built it

The machine learning model was built and trained from scratch in Kaggle using Python. The current dataset contains apples, oranges, and bananas, and we plan on expanding this dataset in the future. The web app was built using HTML, CSS, and a Flask template in VS Code. The backend was made using MongoDB and sqlite3. The machine learning model and web app are connected through VS Code and GitHub. Our SMS system relies on the Textbelt API and Windows Command Prompt.

Challenges we ran into

Throughout the development of the project, our machine learning model spent a lot of time training. This was difficult to overcome as it hindered our progress but eventually, the model finally finished training and was working completely fine. Another challenge we ran into was finding an SMS API to use, as all APIs on the web are not free (eg. Twilio, Vonage, etc.). To overcome this challenge, we had to use a free Python Textbelt workaround using Command Prompt, which satisfies our needs.

Accomplishments that we're proud of

We are very proud of the UI of our web app and our machine learning model. We are also very proud of the recipe suggestion feature as it adds an extra layer of easiness to our product (since it gives users food they can make with what they already have). Another thing we are proud of is our SMS system as it sends notifications very quickly and works perfectly.

What we learned

Throughout the creative process, we learned the value of time in regards to machine learning models. As mentioned before, the model took a while to train and when errors occurred, we had to start training again. Moreover, we learned how to create our own SQL database, for our recipe database. There were no sufficient recipe databases online so we had to create our own and store it in the web app so that it would suggest recipes based on keywords (the keywords being the fruit detected).

What's next for FreshVision

FreshVision has numerous ambitions for the future, all surrounding improving our product and making it easier for our customers to use. Firstly, we plan on adding more images to our dataset so that the machine learning model can be even more accurate than it currently is. We also plan on expanding our dataset to include more fruits and veggies. We would then train the model with this new expanded dataset. We also plan on expanding our recipe database to include recipes for the new fruits/veggies in the expanded dataset. Moreover, we want the website to also show instructions for the recipe, as it currently just shows the ingredients. Something else we want to do is purchase a subscription to an SMS API such as Twilio or Vonage as they allow as many messages to be sent whenever needed. We also plan on finding the materials for the antifreeze cameras that would go in the fridge so that we can eliminate the image upload feature in the web app. Finally, we plan on making FreshVision a mobile app so that customers can use it easier (this is not possible for us at the moment as a license/subscription must be purchased to publish apps on most app stores). This mobile app would also provide the opportunity to use notifications rather than SMS messaging.

Built With

Share this project:

Updates