The ability to easily know how much you could save by installing solar panels. Solar panels can make a big difference in fighting climate change, yet many people in sunny areas who could install solar panels on their roof are not aware of the difference they could make and are not incentivised enough to look up what their impact could be. We wanted to make this process as easy as possible with a simple web interface.

What it does

Users can enter their address on the website. The website gets a satellite image of the home from Google Maps and uses a Machine Learning algorithm to detect the 2D surface of the roof. Based on the address it fetches the local price of electricity and the amount of sunlight hours in that area from different APIs. Based on this, the user is presented with several statistics on what their impact could be, if they were to install solar panels on their roof.

How I built it

opencv for image segmentation, scikit-learn for extra filtering/more accuracy, the Google Maps API for satellite image querying, flask for the web app, US government's API to estimate solar irradiance, Italian pizza, coffee...

Challenges I ran into

It was tricky to write / find a sufficiently well performing algorithm for segmentation given that there was no time to train our own model for the hackathon. Algorithms easily tended to select unintended parts such as driveways or adjacent houses. In the end we found an algorithm that performed reasonably well with a trade-off of speed.

Accomplishments that I'm proud of

Making a working app that promotes the use of renewable energy and allows the user take profitable decisions.

What I learned

Working with opencv's segmentation and different types of segmentation algorithms, implementing vision-oriented web applications.

What's next for Solar RoofTops

More robust roof estimation, more features, expanding to more countries (currently limited to the USA).

Share this project: