top of page

Automated rooftop solar panel detection through Convolutional Neural Networks

ML Tags

Convolutional Neural Networks

U-Net

Topic Tags

Remote Sensing / Object Detection

> Software & Plug-ins Used 


  • QGIS, GDAL plugin, and R for generating and processing data                                                                  

  • Python using TensorFlow and Keras library for data processing and for constructing the CNN in a Google Colab-Notebook

  • Google Earth Engine using JavaScript for post-processing

> Workflow



Thesis Report Figure 3.1: Overview of workflow

> Summary


This thesis attempts to construct a semantic segmentation model that recognizes PV systems in aerial photos to stress the importance of area-specific properties for training data and CNN hyperparameters. The thesis also investigates the effects of land use type, rooftop color, near-infrared data, and low-resolution images on detecting PV panels. The Convolutional Neural Network (CNN) uses the U-Net architecture.


The CNN computes the semantic segmentations of images. The inputs of the CNN are the aerial images which were manually labelled to indicate which regions represent PV panels.


The steps followed to train the CNN are:

  • Selection of an area of interest using QGIS

  • Collection of ground truth data using QGIS by manually annotating PV panels with high accuracy to be used as training data for the CNN

  • Processing the ground truth data and aerial images of the same area so that the ground truth tags are overlaid unto the image

  • Defining the dimensions of input patches according to the U-Net architecture and spatial resolution

  • Splitting data into training, validation, and testing data sets

  • Augmentation of patches

  • Grouping augmented data sets into batches and defining a fixed number of iterations to run the model

  • Utilization of U-Net architecture allowing training the model on few batches


The steps followed to evaluate the prediction of PV panels:

  • After training a model for each area to learn area-specific properties, perform a semantic segmentation for each area respectively

  • Conduct a performance evaluation of the U-Net based on the testing data set

  • Visual and quantitative interpretation of the semantic segmentation and the corresponding reflectance values in the aerial images


LIMITATIONS: Due to the manual collection of ground truth data, there was a small amount of input data used for training. It is not clear what the impact of random weights is on the learning process when compared to the use of pre-trained weights.

> Additional Visuals



Thesis Report Figure 5.4: Detection of black PV panels in suburbs

> Possible Applications


For ideas on how to implement some of the above mentioned techniques, please see

‘Possible applications for students to try with Convolutional Neural Networks’

bottom of page