Inspiration
As a frequent grocery shopper, we often found ourselves throwing away expired food and wasting money. According to the United Nations, one-third of all food produced globally is lost or wasted. We realized that many people face the same problem and that there must be a better way to manage food expiration dates. This sparked the idea for FreshEye, a mobile app designed to help users keep track of their food's freshness and reduce waste.
What it does
FreshEye is an innovative mobile app that uses AI-powered computer vision to predict the shelf life of food. Here's how it works:
Snap a photo: Simply take a picture of the food item using your smartphone camera. AI-powered analysis: Our cloud-based vision AI analyzes the image to identify the food type, its condition, and estimates its shelf life. Expiration prediction: FreshEye generates an estimated expiration date and time, so you know exactly when the food is likely to go bad. Reminders: Receive personalized reminders before the food expires, ensuring you use it before it's too late.
How we built it
FreshEye was built using the following technologies:
Mobile App: Flutter for building the Android app (iOS version coming soon!) Backend: Flask for building the RESTful API Languages: Dart for the mobile app, Python for the backend Version Control: GIT for managing code changes and collaborations Computer Vision: Google Cloud Vision API for image recognition and analysis Database: SQLite for storing food items and their expiration dates
Architecture
Here's a high-level overview of the architecture:
The user takes a picture of the food item using the FreshEye mobile app. The image is sent to the Google Cloud Vision API for analysis. The API identifies the food type, its condition, and estimates its shelf life. The API sends the results back to the FreshEye backend. The backend stores the food item and its expiration date in the SQLite database. The backend sends the results back to the mobile app. The mobile app displays the expiration date and time to the user. The app sends reminders to the user before the food expires.
Challenges we ran into
Food Detection and Classification: One of the biggest challenges we faced was accurately detecting the food item and classifying it correctly. This required fine-tuning the Google Cloud Vision API and training it on a large dataset of food images. Expiration Date Estimation: Estimating an accurate expiration date or shelf life was another challenge. We had to develop a complex algorithm that takes into account various factors such as food type, storage conditions, and handling practices. API Integration: Working with the Google Cloud Vision API and integrating it with our backend was a challenge. We had to handle errors, optimize API calls, and ensure seamless communication between the API and our app. Android Development: Building the mobile app for Android was also a challenge. We had to optimize the app for different screen sizes, handle device-specific issues, and ensure a smooth user experience.
Accomplishments that we are proud of
Food Detection: We are happy that we are able to detect food and also get rough estimate of expiration. User-Friendly Interface: We designed a user-friendly interface that makes it easy for users to take a picture of their food, view expiration dates, and receive reminders. Seamless API Integration: We successfully integrated the Google Cloud Vision API with our backend, ensuring seamless communication and good results. Robust Database Management: We designed a robust database management system using SQLite, allowing users to store and manage their food items and expiration dates efficiently. First Version Release: We successfully released the first version of FreshEye, marking a significant milestone in our project.
What we learned
- We learned a lot about the properties of many models as we needed to find a model that could suit our specific needs for the application
- There were a lot of things learned about API integration from the backend how we could connect it to the flutter frontend
- Some members learned about how to use Flutter for the first time and learned about mobile development and mobile deployment
- Flutter developing mainly and a lot of teamwork and how to produce the project, time management and some mobile development
What's next for FreshEye
We're excited to continue improving and expanding FreshEye to make it an even more valuable tool for our users. Some of our future plans include:
Expanding to iOS: We're working on releasing an iOS version of FreshEye to reach a wider audience. Adding More Features: We're exploring new features, such as integration with popular meal planning and grocery shopping apps, to enhance the user experience. Improving Accuracy: We're continually working to improve the accuracy of our food detection and expiration date estimation algorithms to ensure the best possible results for our users.