A NOVEL APPROACH FOR SEGMENTATION OF AIRBORNE LASER SCANNING POINT CLOUD LOCATED ON ROOF STRUCTURE

This paper is addressed to an approach for segmenting airborne laser scanning point cloud. It aims to detect and cluster point cloud of an input roof into several segments that are corresponding to plane patches of the roof. The algorithm is developed based on the assumption that every non-flat roof can be decomposed into a set of gabled and/or hipped roof. The process detects roof ridges at first, and then detects points along each roof ridge. The experiments shows high efficiency and low error segmentation of the algorithm. * Corresponding author. hongchao.fan@geog.uni-heidelberg.de


INTRODUCTION
Recent technological advances such as aerial photogrammetry, laser scanning, terrestrial measurement, 3D computer graphics etc. have greatly eased data acquisition, construction and visualization of detailed 3D building models.Hence 3D building reconstruction has been an active research topic for almost two decades.
In general, approaches for 3D building reconstruction can be distinguished between image-based and point cloud based.Most image-based approaches have focused on the reconstruction of specific building models: rectilinear shapes (Roux and McKeown, 1994;Noronha and Nevatia, 1997;Chen et al. 2004), flat roofs (Lin et al. 1994;Jaynes et al. 1997;Noronha and Nevatia, 2001;Shi et al. 2011) or parametric models (Fischer et al., 1998;Suveg and Vosselman, 2002;Hammoudi and Dornaika, 2011).But building roofs reveal a hug variety in structure and shape.Therefore, many of them fall beyond the predefined models.
The image-based approach has the advantage of extracting outlines of roofs.It is hence suitable for detection roofs with simple shape or structure, e.g.flat roof, shed roof and simply gabled or hipped roof.But it can fragment or miss the line segments inside of the outlines, due to low contrast, occlusions, and bad perspectives.Therefore, it is not appropriate for roofs with complicated shape and structure, e.g.multi-gabled or hipped roof, or roofs with dormer windows.
In the point cloud based approach, building roofs are measured by LIDAR (LIght Detecting and Ranging) with 3D geometries directly and represented as a number of 3D points.Building detection and construction from LIDAR data has also been studied by several researchers.Most methods start by converting the LIDAR point cloud to a depth image (Vosselman 1999;Alharthy and Bethel 2002;You et al. 2003) and then use well known image segmentation techniques to detect buildings as rectilinear shapes.In further, a detailed literature review about the various approaches to extract buildings using imagery and LIDAR data can be found in Hu et al. (2003).
On the other hand, several approaches are raised for 3D roof reconstruction by operating the 3D LIDAR data directly.In the early stage, most of the approaches (Weidner and Förstner, 1995;Baillard and Zisserman, 1999;Nevatia and Price, 2002;Vinson and Cohen, 2002;Kim and Nevatia, 2004) reconstruct polyhedral roof structures based on determination of model primitive that will fit a dense and detailed 3D roof point cloud best.
In recent years, some researchers tried to reconstruct roof structures without model primitives, since many roof structures go beyond the types of model primitives.The most common approach for the point segmentation is based on the assumption that a roof can be decomposed into several plane segments.Dorninger and Pfeifer (2008) give a comprehensive study on 3D roof reconstruction based on Laser scanning point cloud and present an automated for point segmentation.In their work, Hebel and Stilla (2011) clustered the point cloud according to the Local Principal Component Analysis (PCA) and made the segmentation by method of region growing; finally, the planes are detected and fitted in each segment using the RANSAC techniques.But these approaches seem computation consumed, because all points have to be involved in iteration of the seed cluster determination.
In this work, an automatic approach for point segmentation is proposed by detecting roof ridges first of all.It is based on the assumption that individual roof structures can be modeled properly by a composition of a set of planar faces.Although building roofs (especially in European countries) reveal a hug variety in structure, they can be categorized into two types: flat roofs and non-flat roofs.The process begins from the initial step for judging the types of the input roof point cloud and consists thereafter of four steps: (i) in the initial step, it is judged whether the input roof is a flat roof or non-flat roof; (ii) in the first step, roof ridges are detected and segmented into line segments; (iii) the points are identified and segmented so that they are belonging to the plane patches which are intersected in a line segment of a roof ridge; (iv) in the fourth step, the rest points are clustered into several groups according to the geometric distances among them.For each group, the abovementioned process (from the initial step to the fourth step) is carried out.The process terminates when there are only few points or no point in the rest group.
The key novelty of this contribution is that the roof ridge is detected at first and roof planes are extracted along their corresponding roof ridges.This kind of approach makes the search scale smaller while fitting the roof planes.At the same time, the proposed approach follows the principle of bisection method.In each iteration, the point cloud is divided into two groups by the plane contains the roof ridge and vertical to the ground plane.Whereby, point groups where fitting and segmenting takes place are getting smaller along the iteration.In a consequence, much computation cost is reduced.
The abovementioned process is implemented and tested on the airborne laser scanning data provided by the ISPRS test project on urban classification and 3D building reconstruction.Some experimental results are shown in this work.
The rest of this paper is structured as follows.In the second section, the study area and data used in the experiments are described.Then the methodologies are explained in the third section.Section 4 presents and discusses some experimental results and gives some future works.

STUDY AREA AND DATA
The presented work is supposed to participate in the ISPRS test project on urban classification and 3D building reconstruction.In order to test the proposed algorithms, Airborne Laserscanner (ALS) data in the area A of Vaihingen test data is selected, since the roof structures in this area are more complicated in comparison with those in other test areas.
According to the organization of the test project (http://www.itc.nl/ISPRS_WGIII4/tests_datasets.html), the Vaihingen test data set consists of 10 ALS strips acquired on 21 August 2008 by Leica Geosystems using a Leica ALS50 system with 45° field of view and a mean flying height above ground of 500°m.The average strip overlap is 30%, and the median point density is 6.7 points per square meter.The entire DGPF data set 4 points per square meter.The original point clouds were postprocessed by strip adjustment to correct for systematic errors in georeferencing.
The points cloud represent all objects including buildings, vegetation, water bodies, and other city facilities in Vaihingen.At first, classification is conducted for these points by using MicroStation.Then buildings are extracted and separated, whereby buildings close to each other are treated as a big building.The proposed algorithm starts from the point cloud of an individual building.

Detection and segmentation of roof ridges
In the building construction, a roof ridge is defined as the line intersection at the top between the opposite slopes or sides of a roof.Although non-flat building roofs (especially in European countries) reveal a hug variety in structure, they could be one type of the six primitive roofs (Figure 1), or might be a combination of these primitives.Therefore, the roof ridge is one line segment in case that a roof is a gabled, hipped, shed or saltbox roof, while there are two intersected line segments in case of a cross gabled or cross hipped roof.For a more complicated roof structure, there will be three or even more line segments which are intersected with a main ridge or in an "end to end" form.

Figure 1. six types of non-flat roofs
Inputting the unorganized laser scanning point cloud of a roof, the process of detection and segmentation of roof ridges starts from the step of extracting all the points that are located on the roof ridges.In the proposed approach, the point cloud is clustered into many (or N ) layers.In the ideal case, the points in the highest layer represent then the roof ridge(s).But in some cases the highest layer contains also points on the top of a chimney, and points of error measurements.These points are normally located with a distance to the roof ridge, while a point on the roof ridge has shorter distance to its nearest neighborhood.Therefore, they can be removed easily.
After the noise points are removed from the highest layer, all the remaining points are then belonging to the roof ridge.They will be projected on the XY-plane.Then they are segmented into several line segments using the line-growth method as following: (a) All the points are sorted according to their x-value.The first point is taken as (e) For the points in every cluster, the process is repeated from the step (a) to (c).
(g) The process terminates for a cluster when there are less than 5 points in the rest group.
The process descript above is called line-growth method in our work, because points on a line segment are found out iteratively.After this process, the unorganized points on roof ridges are segmented into several line segments.In fact, there are only one or two roof ridges for most of residential buildings in European cities.For most of public or historic buildings there are normally three or more roof ridges.The process is illustrated using an example in Figure 2.

Segmentation of points into individual roof plane patch
In the proposed approach, we assume that the roof of a house can be decomposed of a set of planar patches.The process of the segmentation is then to fit the planes and find the points on their corresponding plane patches.In this section, it is introduced how a plane is fitted for a set of points at first.Then the process of the segmentation is described.

Method of plane fitting
All the points of a roof part should belong to the same planar patch.The plane can be defined by using the following equation:

,z ,y x
is located on the plane, the plane of equation ( 1) can be reformed for all the points of this plane as follows: 0 For the planar patch, the point ) ( 0 0 0 ,z ,y x can be taken from the centroid of all the points of the roof part.Equation ( 2) can be represented as:

Segmentation of points of a roof with one ridge
As shown in Figure 1, there is only one ridge in three kinds of roofs, namely, gabled roof, hipped roof and saltbox roof.For the points of the roof ridge, a plane r F is fitted which is perpendicularly to the horizon and contains the adjusted line segment of this roof ridge.In this work, the points of the roof ridge are duplicated and given different heights along the vertical direction, in order to ensure that they are located on a plane perpendicularly to the horizon.Assume that the plane r F has the parameters of In the next step, the distances of points in these two clouds to the line segment of the roof ridge are calculated respectively.For the points in one of the two point clouds, those points are selected if their distances to the line segment are shorter than a given threshold.These points will be clustered directly as the points located on the plane patch which is intersected with another plane patch at the roof ridge.Then a plane is fitted using these points.For all the points in the current point cloud, their distances to the fitted plane are calculated.According to the roughness of most of roofs, if the distance is smaller than 0.2 meter, the point is certainly located on the plane patch and identified as a point in the segment of this plane patch.Otherwise, it will be classified in the rest group.The same process is conducted for the other point cloud as well.
In case of a gabled or saltbox roof, the rest group is empty, if there is no error measurement, while it still contains points of two plane patches, if the roof is a hipped roof.In this case, the points in the rest group will be clustered into two groups representing the hipped roof parts.In this way, the points on a gabled roof can be segmented into two (gabled or saltbox roof) or four (hipped roof) segments which are corresponding to the plane patches of the roof.

The process of segmentation
The process is described here by taking a complicated roof as an example.For instance, there are k ) 2 , (    k k roof ridges detected from the point cloud of a roof.The segmentation is carried out as follows: Step 1: for every detected roof ridge, the points are detected for the two plane patches which are intersected at the roof ridge.
Step 2: The rest points are clustered into several groups according to the distance of their nearest neighboring points, so that the distance of the nearest points between two groups is larger than a given distance.
Step 3: for the points in every group, an adjusted plane is fitted at first.If the mean value of the Euclidean distances of the points to the adjusted plane is smaller than 0.2 meter, all the points are belonging to the same segment, since they are located on the same plane.Otherwise, the points might represent the roof of a dormer window or a lower cross gabled/hipped roof.In this case, the roof ridge(s) is detected at first, the process goes back to step 1.
Step 4: the process for a group in step 2 terminates, when there are fewer than 10 points in the rest group, because a plane patch with 10 points is smaller than a roof element normally.

Reconstruction of polygonal roof model
After the points are clustered for all the roof planes, outline is extracted for each cluster of roof plane according to the following steps: (i) projecting points on a roof plane (which belong to a cluster) on the horizon; (ii) outline is extracted by computing a 2D -shape of the points projected on the horizon; (iii) the outline is simplified using the recursive Douglas-Peucker line simplification algorithm; (iv) the plane is regressed for the original points in the cluster in 3D; (v) project the simplified outline extracted the third step on the plane.As a result, the simplified roof polygon is obtained.After all the polygons are extracted for a roof structure, they could be written in CityGML or AutoCAD format in the further step.

EXPERIMENTAL RESULTS AND DISCUSSION
The proposed approach has been implemented using Matlab (R2010a) and tested on the buildings in area A of the German City Vaihingen Enz.The results show that the algorithm can segment point cloud of a roof into several clusters, whereby points in a cluster should be located on the same roof plane and can be used for extracting roof polygon.It works very well for buildings that are scanned with high quality (completely scanning for every plane patch of roof parts and with few noises).The experiments shows high efficiency and low error segmentation of the algorithm.
For a selection of examples see the figures (Figure 3, 4, 5 and 6) below.As indicated in Section 3, roof ridges are classified into several levels according to their heights at first.In the most cases, there is only one level which is corresponding to the main roof ridge.In some cases, there are two levels of roof ridges, whereby the first level of roof ridge indicates the main roof ridge at the highest level while the second level of roof ridge refers to the ridges of dormer roof or side house.After the roof ridges are detected, the points on the roof planes which are intersected in the corresponding roof ridge are extracted and segmented.
Taking the house in Figure 3d as an example, the main roof ridge (the intersection line of planes of green and blue points) is detected at first.Then the points on the two roof planes along this roof ridge are extracted and segmented.After this step, there are two groups of points which are corresponding to the two dormer roofs.For the points in each group, the roof ridge is detected at first, and then the points on the two roof planes are extracted and segmented.
In the following example results, there are four houses (Figure 2a, 2b, Figure 4  In Figure 3, roof points are segmented in plane patches for four houses.In Figure 3a, the segmentation of a hipped roof is represented.Figure 3b shows the segmentation of roof points for a gabled roof, whereas the blue and cyan points indicate the covers of two roof windows.Figure 3c and 3d shows the results of the segmentation for a cross gabled roof and a roof with two dormers respectively.The roofs from Figure 3a to 3d become more and more complicated.Nevertheless, the proposed algorithm can cluster points to their corresponding plane patches. In the following, experimental results are shown for segmenting roof points and extracting polygon for each roof plane patch by taking three houses as examples.In Figure 4, 5 and 6, the extracted polygons can represent their roof structures very well.However, the situation seems totally differently for the three houses in Figure 3 (Figure 3b, 3c and 3d), because the main polygons of these roofs are too complicated to be extracted exactly using the current algorithm.
So far, the topologies among roof polygons are not yet adjusted, neither their corresponding geometries near the sharing sides of polygons; therefore, there are gaps among roof polygons.This will be improved in the nearest future.

P
is then calculated.During the calculation, it is judged whether the line is parallel to x or y-axis.(c) The points are selected, when they are located on the line or very close to the line.The rest are treated as a group.(d)The points in the rest group are clustered into several clusters according to their distances to the nearest neighboring points.

Figure 2 .
Figure 2. an example of detecting roof ridges


is the normal vector of the plane and d is the closest distance of the plane to the origin of the coordinate system.
points can be easily divided into two clouds by judging the vectors of the points to the adjusted plane: if there and 6) which have only first level roof ridge, while the other three house have two levels of roof ridges. .Segmentation for four example houses

Figure. 4 .
Figure.4.Segmentation of roof points for a simple gabled roof