Inspiration
Research has shown that noise pollution in large cities leads to an increase in the stress of residents and a decrease in their quality of life. Enabling city planners to easily identify noise pollution hotspots and their sources will not only raise awareness of the problem but provide the data we need to monitor city noise in real time and take active measures to reduce its negative impacts on the residents.
What it does
Our idea was to attach IoT kits enabled with GPS and microphones to city share bicycles, cache recordings of noise over a decibel threshold, and load data when the bicycle is returned to it's wifi-enabled public station. We plot the data as a heat-map that is superimposed on top of a city map in order to visualize the noise pollution hotspots. The user of this front-end web app can interact with the map by filtering noise pollution based on time as well as viewing the classified source of each noise and how accurate the classification is. Finally, the concept was extended to alert the user of potential emergency noises in the city such as sirens or gunshots.
How we built it
- The noise pollution monitoring kit is implemented as an Android App in Java which listens, records, and sends noise pollution events back to our server.
- The backend is built using Python and the sound classification is done by our very own 4 layer CNN (Neural Network) built on Keras, Python! We store the noise pollution data points in a Firebase DB.
- The interactive heat-map display is built out as a single-page web application using ReactJS.
Challenges we ran into
- The location data for each recording from the Android App needed to be refined several times in order to make the map coordinates accurate a location has to been very accurate to show heat densities correctly.
- Training and building a custom neural network was difficult because of the large amount of data used to train the model. We ended up having to use a personal GPU on the cloud. It was also hard to configure the NN from the scratch.
- Deciding on heat mapping tools and which was best suited for our needs took time. We chose to use the Google Maps API as it provided us with excellent control over the mouse position as a latitude and longitude point on the map. Managing asynchronous component state and data loading was also a challenge.
Accomplishments that we're proud of
We are proud that we were able to fully connect the three components of our hack such that the heat-map live updates when new data is published to the DB from the client app. This combined three completely different areas of programming into one product and gave us a very holistic view of client and server side development.
What we learned
- How to run background processes in android phones.
- How to model the data and feed it into a Neural Network.
- How to work with Google Maps API and heat mapping tools.
- How to load data asynchronously with ReactJS.
What's next for City Vibes
When converting this from an Android App to an IoT kit to be payed on vehicles, we would need to use a Network to get real time data and avoid having to wait for bicycles to be places back into their wi-fi enabled stations before we can access their recordings. An option for this would be Bell's upcoming LTE-M network enabled for IoT. Another great step would be to take advantage of the emergency noise alert feature in order to help speed up emergency response situations. Finally, we could extend this idea to place kits on not only bicycles but also public transit and vehicles (if the owners opt-in).
Log in or sign up for Devpost to join the conversation.