Inspiration

The idea for BinBuddy was born out of a desire to address a pressing environmental challenge: improper waste disposal. With recycling systems often compromised by contamination, we saw an opportunity to make a meaningful difference by harnessing technology. We envisioned an app that could guide individuals and even assist robots in classifying trash correctly—helping ensure that recyclable and compostable materials don’t end up in landfills due to simple human error.

What it does

BinBuddy is a mobile application that makes recycling intuitive and efficient. Users can take a photo of an item they wish to discard, and the app quickly analyzes the image to determine whether the item belongs in a recycling, compost, or trash bin. Using a highly accurate image classification model, BinBuddy helps users make the right disposal choice in real time. This simple but powerful functionality promotes proper waste sorting, which can lead to significant improvements in recycling systems and environmental sustainability.

How we built it

We developed BinBuddy using Flutter, which allowed us to create a smooth and responsive mobile experience across platforms. The backend is powered by Flask, which acts as the intermediary between the app and our machine learning model. Images captured through the app are sent to the Flask API, which processes the request and returns a classification prediction. The core of the app’s intelligence lies in our use of Google’s pre-trained Vision Transformer model, which we fine-tuned on a custom dataset of trash images to achieve high accuracy. This integration of frontend design, backend logic, and machine learning forms the backbone of the BinBuddy experience.

Challenges we ran into

As with any ambitious project, we encountered several technical hurdles along the way. One of the early issues involved dealing with corrupt files in our dataset, which interfered with our ability to train the model effectively. Once resolved, we faced another challenge: getting the Vision Transformer model to perform consistently across diverse image inputs. This required iterative debugging and experimentation with different tuning methods. Additionally, integrating the backend API with our Flutter frontend introduced a new layer of complexity. We had to troubleshoot several issues related to sending and receiving image data through Flask, ensuring the app delivered real-time and reliable responses.

Accomplishments that we're proud of

Despite the challenges, we’re incredibly proud of what we accomplished. Our fine-tuned Vision Transformer achieved an impressive 98% classification accuracy, demonstrating the potential of this technology in a real-world use case. We successfully built a fully functioning app with a clean, user-friendly interface and integrated backend services. Perhaps most rewarding, we were able to bring together multiple technologies and skillsets—machine learning, app development, and API communication—into a cohesive product that serves a meaningful purpose.

What we learned

This project was an incredible learning experience for both of us. Working as a team under time constraints taught us how to collaborate effectively, communicate openly, and make fast decisions. On the technical side, we learned valuable techniques for fine-tuning machine learning models, handling real-world datasets, and building robust backend services. We also gained a deeper appreciation for user-centric design and the nuances of building and deploying a cross-platform mobile application.

What's next for BinBuddy

Looking ahead, we have exciting plans to expand BinBuddy’s capabilities. One major goal is to implement object detection, allowing the app to not only classify but also locate trash in images—especially useful in field cleanup efforts. We also aim to build a global server infrastructure so our model can serve requests from users anywhere in the world. Lastly, we plan to incorporate a feedback loop within the app, enabling users to confirm or correct classifications. This feature will help continuously improve the model’s accuracy and adaptability over time.

Built With

Share this project:

Updates