What is Recycam?

We mainly developed Recycam with the use of Python, Swift, and Google Colab. Our project has two main functions–classifying the recyclability of an item and providing the user with general insight about recyclable items.

How does it work?

We have three parts to Recycam! The first is a mobile application and the other is a Python file for searching recycability and the other is a model for image submission. First, the classification part was implemented using open-source Computer Vision model on Hugging Face. We specifically used Tag2Text, a vision language pre-training (VLP) framework, to help us identify the names, materials, and colors of the objects in the image. Then we fetched the result from the model and calculated the recyclability score based on the number of tags that have a match in the list of items that are recyclable, which we collected through web scraping. This final score decides whether or not the object goes in the recycling, or the trash. To give users more comprehensive information about recyclability of items in different materials, we added a content page where users can look through before actually uploading the model to find out its recyclability. To implement this, we combined web scraping, selenium, panda dataframes, and an image tagging model. We web scraped the City of Philadelphia website for reliable information on what objects are recyclable, what to avoid recycling, instructions on what to remove before recycling, and examples of each category of recycling. Similarly, selenium was used to open an automated browser upon the user’s search to decide recyclability. This data was collected and restructured into JSON format for easier data retrieval in the Swift environment.

Challenges we ran into

It was a challenge learning how to connect Python and Swift for a more interactive, full-fleshed app. We encountered difficulties in running the model through the app, as the model we used does not support API connections. We also had some difficulty trying to save what the model prints out and splitting tags by multiple delimiters, but we managed to solve it in the end.

What we learned

Being completely new to Swift, our team learned the language and tips and tricks of Swift to develop an interactive, practical app. We also learned how to work together as a team with varying levels of experience in the variety of languages and concepts we were putting together.

What's next for Recycam?

We hope to further develop Recycam’s efficiency and its interactions with more complicated situations. Specifically, we hope to work to incorporate more features especially with deeper machine learning and AI. We would also like to expand Recycam’s outreach and introduce its features to even more friends around the world.

Built With

Share this project:

Updates