Inspiration

We believe that when thinking about current climate problems and whether to take action, many who choose not to act do so due to a lack of personal involvement or stake in the issue. Therefore, we wanted to create something that allowed people to more clearly understand just how much the environment right around them are contributing to the problem.

What it does

By taking photos of the surrounding streets and vehicles, the software can detect vehicles and estimate yearly gas emissions from those vehicles based on data from the United States Environmental Protection Agency.

How we built it

We wanted to make an app that has both frontend and backend, which it can consistently communicate between. To do so, we employed 2 separate languages. For the frontend, we used Flutter in hopes of creating an app that is both web and mobile compatible. And for the backend, we used Python in conjunction with FastAPI to create endpoints that could be accessed through web requests. And in order to achieve its computer vision capabilities, we used OpenCV for image processing and deep learning frameworks like TensorFlow for vehicle detection. To take it one step further, we wanted to make our backend API publicly accessible for use, so we used a library called ngrok to temporarily host our backend server.

Challenges we ran into

Generally, since we were both unfamiliar with Flutter, we didn't have the smoothest time getting the app to work as intended, but after racking our brains on it for hours and consulting various tutorials, guides, we were able to make it work piece by piece.

Another problem we ran into was with CORS. This occurred when we were trying to get communications between frontend and backend working. We realized that communications between different origins, especially localhost to web server, required different headers and authentications.

Accomplishments that we're proud of

We feel like building an application that has both a frontend and backend is something worth being proud of, especially because creating this foundation allows for so much more freedom in future improvements. Also, just working through all the problems that come with learning a new language like Flutter is an accomplishment for us.

What we learned

We learned a lot more about Flutter and its capabilities as well as limitations. And through the various back-and-forth with frontend and backend adjustments, we became more familiar with web requests and communications.

What's next for Vehicle Emission with Computer Vision

There are several paths to proceed from here. Obviously, this is a very very rough prototype. The main features we want to add is actually allowing users to take photos and upload those photos to the server. The frontend can use some aesthetic improving, and the backend could be hosted in a more permanent server like Heroku. We could also create add more features that can more accurately predict the carbon emissions of vehicles through images.

Built With

Share this project:

Updates