In Germany, the development towards renewable energy and solar power, in particular, has increased the solar power capacity installations from 18 GW peak to more than 50 GW peak in 2020. A large part of the installed capacity is installed on roofs of private houses. The first step for the installation of solar panels on the roofs of private houses is to make an offer for the amount of panels that will fit on the roof. This requires an estimation of the available area for solar panels. While this process is very time consuming when performed by humans, automation can reduce the solar panel planning process significantly.
The automated estimation of available area for solar panels requires the automated processing of roof images to detect objects, e.g. chimneys or windows, and to calculate the area of the roof taking into account the inclination of the roofs. Moreover, the most southern facing side of the roof has to be detected. This can be accomplished by a machine learning model, that processes high resolution satellite images and images made by the customers to be able to detect non-roof objects and to calculate the roof area considering the roof angle.
The task of object detection and classification in images can solved by an image segmentation model, for which usually convolutional neural networks (CNN) are used, such as U-Net and Mask R-CNN algorithms. These networks allow the classification of each image pixel, so the roof corners and non-roof areas can be identified. The steepness of the roof can be estimated using projective geometry, since the provided image data are 2-dimensional representations of the roofs.