Jump to Content
AI & Machine Learning

Sunny spells: How SunPower puts solar on your roof with AI Platform

May 10, 2019
Nour Daouk

Product Manager, SunPower

Editor’s Note: Today’s post comes from Nour Daouk, Product Manager at SunPower. She describes how SunPower uses AI Platform to provide users with useful models and proposals of solar panel layouts for their home, with only a street address for user input.


Have you ever wondered what solar panels would look like on your roof? At SunPower, we’re helping homeowners create solar designs from the comfort of their home. Specifically, we use deep learning and high-resolution imagery as inputs to models that design and visualize solar power systems on residential roofs. Read on to learn how and why we built this technology for our customers, called SunPower Instant Design.

Homeowners typically spend a significant amount of time online researching solar panels and running calculations to understand their potential savings and  the number of panels they need for their home. There are no quick answers because every roof is different and every house requires a customized design. With SunPower Instant Design, homeowners can create their own designs in seconds, which improves their buying experience, reduces barriers to going solar, and ultimately increases solar adoption.

Instant Design’s 3D model of a roof with obstructions in red (left), satellite image with panel layout (middle), and input satellite image (right)

How we help
Designing a solar power system for a home is a process that relies on factors unique to each home. First, we model the roof in three dimensions to account for obstructions such as chimneys and vents. Second, we lay legally-mandated access walkways and place solar panels on the roof segments. Finally, we model the angle and exposure of sunlight hitting the roof to calculate the system’s potential energy production. With Instant Design, we replicate this same process by leveraging tools including machine learning and optimization. Below, we’ll explain how we used deep neural networks to obtain accurate three-dimensional models of residential roofs.

The data: guiding the design with both color and depth imagery
It is probably possible to design a three-dimensional model of a roof with satellite imagery alone, but design accuracy improves greatly with the use of a height map. For Instant Design, we partnered with Google Project Sunroof for access to both satellite and digital surface model (DSM) data. We used our database of manually generated designs as a base for our labeled data, and projected those onto the RGB and depth channels for the training, validation, and test sets. We also generated augmentations—including rotation and translation—to reduce overfitting.  

Roof segmentation
To reconstruct a roof, we model each roof segment with its corresponding pitch and azimuth in three dimensions. We began to identify roof segments by applying image processing and edge detection on both the satellite and depth data, but we quickly realized that semantic segmentation would yield much better results, as similar edges were detected successfully with that method in research literature.

Image processing result (left), neural network-based result (middle) and input satellite image (right)

After some experimentation, we chose to perform semantic segmentation, and then selected a version of a U-net that works well with our type of imagery at high speeds. The U-net architecture was a solid starting point, with a few tweaks for better results. For instance, we added batch normalization to each convolutional layer for regularization and selected the Wide Residual Network as our encoder for improved accuracy. We also created a domain-specific loss function to get the model to converge to meaningful outcomes.

U-net diagram (click for source)

What gets in the way: chimneys, vents, pipes, and skylights
In an effort to avoid mistakenly placing panels on obstructions such as chimneys, vents, pipes, skylights, and previously-installed panels, our next step is to detect those obstructions as separate items on the roof. Our main challenge here was that we had to handle both the quantity and size of the obstructions, and address any imbalance in class representation. Indeed, there are more roof pixels than obstruction pixels in our images. Due to the difference in shape and scale of chosen classes we decided to use a separate model from the segmentation model to detect obstructions, although both models are similar in structure.

Roof with detected obstructions outlined in red

Speed and scale via Cloud AI Platform
Once we had built a satisfactory proof of concept, we quickly realized that we would need to iterate on our model in order to deliver an experience that was ready for homeowners. We needed to build a development pipeline that could quickly bring modeling ideas from conception to deployment, so we chose AI Platform to help us scale. Our initial training setup was on our own servers, and the training process was slow: training a new model took a week. In contrast, on AI Platform, we were able to train and test a new model in a single day. Moreover, we took full advantage of the ability to train multiple models simultaneously to conduct a vast hyperparameter search. For our prediction, we used NVIDIA V100 GPU-enabled virtual machines on GCP with nvidia-docker, which helped us achieve prediction times of around one second.

SunPower empowers homeowners to understand the amount of energy they can generate with solar, now with just a few clicks. Our team was able to start work on this exciting project due to advances in aerial imagery and machine learning. And AI Platform helped us focus on the core design problem, achieve our goals faster, and create designs quickly.

We are changing how we offer solar power to homeowners by giving them immediate answers to their questions. While we have more work to do, we are optimistic that SunPower Instant Design will transform the solar industry when our first product featuring this technology launches this summer.

To learn more about how SunPower is using the cloud, read this blog post from Google Cloud CEO Thomas Kurian.

Posted in