Return to site

3D roof models from stereo imagery

At READAAR we use 3D roof models as input data for our asbestos roof detection and building information products. Currently, we extract roof models from LiDAR (AHN2). But what if LiDAR is outdated or not available at all? Can we use widely available stereo imagery instead? During his master thesis at READAAR and TU Delft Martijn Vermeer investigated just this, and came up with a highly efficient method to produce 3d roof models directly from stereo imagery.

Stereo matching

A common technique to retrieve 3D information from stereo imagery is stereo matching . Most methods used in GEO-Information applications require large areas to be processed to a huge 3D point cloud at once. This in an expensive process to apply if we would like to evaluate a limited number of buildings over an entire country.

Therefore we use a more focused approach: We use the building footprint to optimally select 2 images and from these images only select the part in which the building is visible. These two images now form what we call a stereo-pair (see figure 1). After rectification this stereo pair can be matched to retrieve a disparity map. The disparity map gives the shift in x coordinate between matching pixels in the two images. Objects closer to the camera have a higher shift than objects further away. In this way the disparity gives information about the depth and adds the 3rd dimension. Via triangulation the disparity map can be used to create a pointcloud of the building (see figure 2).

stereo image pair and disparity map

Figure 1. Stereo image pair and disparity map

point cloud from stereo image matching

Figure 2. Point cloud from stereo matching

3D roof segment extraction

The second part is to retrieve roof segments from the matched stereo images. The most straightforward approach would be to use the pointcloud resulting from the stereo matching directly. Normal vectors for each point can be determined based on a neightborhood of points, subsequently the points can be grouped based on their normals. However, by doing so color information is not exploited. Furthermore, pointclouds resulting from matching of two images tend to be noisy, making the normals often inaccurate.

Therefore, a two step segmentation approach is used. First, color segments are retrieved by segmenting a single aerial image on color. Second, these color segments are clustered based on the height data to find complete roof segments. Finally these roof segments are vectorized and reconstructed in 3D to form a 3D roof model. This process is shown in Figure 3.

3D roof segment extraction from stereo imagery

Figure 3. 3D roof segment extraction from stereo imagery


Figure 4 below shows an aerial image of an area with terraced houses. In this area about 93% percent of the roof segments larger than 1m2 are detected. The extracted segments are visualized in figure 5. Segments that are not detected are mostly smaller segments. One of the most common error sources is the presence of shadows on the imagery. In shaded areas on the image the contrast is low, making it difficult to find matching pixels, resulting in errors. Furthermore, color boundaries can often not be identified in shaded areas.

The average processing time for a single building is 0.25s or 14,400 buildings per hour on a consumer grade laptop equipped with an Intel i7 2.8GHz quadcore processor. For reference, the average municipality in the Netherlands has approximately 25.000 buildings.

Aerial image of terraced houses in the Netherlands

Figure 4. Aerial image of terraced houses in the Netherlands

3D roof models for terraced houses

Figure 5. 3D roof models for terraced houses


The designed method to generate 3d roof models is both scalable and efficient. This makes the method suitable for processing large amounts of buildings efficiently. Furthermore, the method only relies on stereo imagery and building footprints. This allows to process areas for which LiDAR data is not available, but stereo imagery is. Even though the majority of segments is extracted, there is still room for improvement. Especially in shaded areas, segmentation problems are common. Readaar is currently integrating this new method with their existing 3D roof models from LiDAR to provide an optimal combination of the most recent data, accuracy and coverage.

All Posts

Almost done…

We just sent you an email. Please click the link in the email to confirm your subscription!

OKSubscriptions powered by Strikingly