## 💡 Inspiration💡

According to the City of Toronto, "contaminated recycling is currently costing the City millions annually. Approximately one third of what is put in the Blue Bin doesn’t belong there or was ruined as a result of the wrong items being put into the bin." Missing out on being able to recycle one third of what is put in the Blue Bin is huge, especially when this issue can be solved by spreading more actionable awareness to the city's residents. Furthermore, Toronto cannot be the only place in the world that is having these issues. Thus, it becomes increasingly important for us to become mindful citizens of the world we inhabit, for the benefit of our communities and most importantly, for the wildlife and world around us!

## ? What is PlanetPal ?

PlanetPal is a gamified recycling app that is designed to promote good recycling habits and spread more awareness about recycling correctly. Users subscribe to the app monthly, paying upwards of $10 per month, where every time they recycle, they build progress to recovering the money put towards their description. Everytime the user recyles something, they earn Green tokens (our exclusive currency), which can be redeemed for real world money. Furthermore, completing monthly challenges and consistently recycling awards users with a limited monthly challenge badge that displays their dedication to the environment. By collecting these badges, users will have the opportunity to earn even more tokens! Users are given recycling instructions when they take a picture of their trash, their trash is classified with a CNN into 6 categories. The user is then told how to recycle the item that they are holding. After disposing of the item, the user gains progress towards the monthly challenge, as well as tokens.

## 🔧 How we built it 🔧

Our front end mobile application is developed with React Native and Expo, using packages such as React Native Paper to speed up the development process. Additionally, we used React Navigation for smooth UI transitions, and Expo Camera to take photos.

Our back end is built with Python and Flask, which hosts our CNN that classifies images of trash into 6 different categories. We manage the player's progress, badges, and in-game currency, as well as classify the images passed from the front end mobile app. Moreover, the logic behind generating advice on proper recycling lies here, where we passed the classified object into Cogenerate's command-nightly generative AI model.

Our machine learning model is a CNN transfer learning model built on VGG19, a model trained on ImageNet. We chose to build on VGG19 in the interest of time, while guaranteeing relatively high accuracy. We used a Kaggle dataset, Garbage Classification, to train the VGG19 model and fine tune it. Our model classifies images correctly at around 82.31%!

![traintest](https://github.com/markestiller/PlanetPal/assets/117526873/4e3cc498-c984-4c5b-8030-dc684c5c2e0d)

## 🤔 Challenges we ran into 🤔

Since this was our first time ever training a machine learning model, we initially decided to train our model directly on Kaggle, where we had access to cloud GPUs. Unfortunately, we realized that we could not actually download our model! We also ran into issues in terms of figuring out how to implement our machine learning model into our backend code so that we could actually run it to classify new images that it has not seen before. Since we did not have unlimited processing power, training the model also took significant time.

For some of our team members, this project marked their first experience with React Native and Flask. This added another layer of complexity to the development process as they were learning and adapting to these technologies on the fly.

## 🏆 Accomplishments that we're proud of 🏆

Despite our team's limited experience in mobile app development, we are proud to have successfully created a functional and aesthetically pleasing UI. We are also extremely proud to say that our machine learning model is able to identify recyclable materials to a fairly high percentage of accuracy.

## 🤓 What we learned 🤓

Our team was split into 3 separate roles: frontend, backend and machine learning model. All of our members decided to work with a Framework that they had not used before, or develop something completely brand new. Specifically, one of our members spent many hours researching machine learning models, before being able to implement, and connect our own model to the backend of our project. Other members had the opportunity to experience the mobile app development process. Overall, each member of the team was able to learn something new from this project.

## 👀 What's next for PlanetPal 👀

We are currently looking at ways to incentivize users to consistently recycle. Implementing actual challenges such as recycling a certain amount of materials each month, or a daily streak mechanism would help users stay engaged. In order to improve our application, a database containing usernames, emails, and tokens would help this app be more accessible on multiple platforms. Another aspect we are considering is optimizing the app's interface for various screen sizes, ensuring a seamless user experience whether they're accessing it from a smartphone, tablet, or other mobile devices.
## Inspiration

Real-time news reporting is almost here—if only there was real-time censoring technology.

## What it does

Feed in an audio file with cuss words, outputs the audio file with the cuss words silenced, in real time.

## How we built it

In Java, we translated speech to text using IBM Watson's Speech-To-Text function, then silenced the parts of the audio corresponding to the blacklisted word.

## Challenges we ran into

Stereo audio doesn't work with the audio reader/writer.

## Accomplishments that we're proud of

We worked with things that we weren't familiar with (IBM Watson), and this is the first software hack for one of our members.

## What we learned

We learned how to work with Git, Maven, HTTP, IBM Watson, audio processing.

## What's next for AutoCensor

We are trying to auto-censor songs, and allow compatibility with other audio formats and even video.
## Inspiration for Recyclable

We come across many instances when we don’t know if we can recycle an item and have to look it up on the web intensively to get to a conclusion. Whether it’s an used electrical appliance to a piece of broken furniture, there are ways to recycle these items; all it takes is a little research. However, not everyone has the access and enough time to research for recycling and they end up throwing away potentially recyclable materials creating a void in circular economy.
But, everyone now has a smartphone with a camera, so the answer to “is this recyclable” should be made easy with the minimal possible efforts from user end, with these contexts, we have developed **recyclable**, an user-friendly mobile application that tells you if the item is recyclable or not after a single camera click!

## How it works?

CAPTURE an item’s image, let recyclable, the app quickly identify your object and provide fast recommendations on whether the item is recyclable or not.

## How we built it

**Technologies used**: Figma (for design), Typescript, React Native, React Navigation, Tensorflow,
Tensorflowjs, OpenCV, Ascend AI, Mindspore, Mindspore XAI, Expo, Expo camera.

This is developed as a mobile application which is supported in 2 platforms - Android and ios.
We trained an image classification model to classify between different materials which can either be recyclable or non recyclable. We used latest MobileNetv2 architecture which is very lite and compatible in smaller devices, This model predicts with very good accuracy at the same time it is very fast. We trained our model on both Tensorflow as well as on Ascend AI platform using Mindspore.

## Challenges we ran into

Developing and deploying AscendAI model was new to us and understanding the vivid documentation needed time. However, we made sure to improve the performance in any possible way.
We achieved an accuracy of 93.75 on googlenet and 91.11 accuracy with MobileNetv2.
The above results depicts the power of MobileNetv2 which gave high accuracy with less parameters.

## Accomplishments that we're proud of

Developing a societal good solution has a potential market with evolving technologies simplifying the long-existing problems. We are proud about our first step towards ameliorating the environment, as we all play a crucial role in the future of our planet. We have developed a platform that offers greener and sustainable solutions to the users in a comprehensive manner.

## What we learned?

We learned new technologies like AscendAI, Expo, OpenCV while practicing our application development skills in React Native. We leveraged the GoogleNet network from Mindspore.
We have applied different optimizers like Adam, Adam weight decay, SGD etc. We had the best experience of Using Ascend AI Platform which is very simple to use and faster computation.
We also learned various business aspects to enhance the offered features.

## What's next for recyclable?

We can extend the features like:
*COMMUNITY* a platform to showcase your personalized uniquely recycled material and promote the sense of responsibility while celebrating the work.
*RESOURCES* allowing users to access research works on recycling.
*BONUS POINTs* for recyclers.
*EXPLORE* where your items can be recycled based on your location.
*FACILITIES* to see a map view of all recycling facilities close by.
etc.