d on the plane, the
all the points of this
)=0 (2)
an be taken from the
d" (x. yz) are
by calculating the
=AT-A.
culated by:
(4)
vith one ridge
ge in three kinds of
id saltbox roof. For
is fitted which is
is the adjusted line
e points of the roof
heights along the
ey are located on a
rs of 0,55€, and
o clouds by judging
. plane: if there is
) is located on the
.,C,] ; while it is
E the plane
these two clouds to
ulated respectively.
ds, those points are
it are shorter than a
ered directly as the
is intersected with
n a plane is fitted
current point cloud,
ated. According to
nce is smaller than
he plane patch and
this plane patch.
| group. The same
] as well.
group is empty, if
contains points of
of. In this case, the
| into two groups
ay, the points on a
led or saltbox roof)
or four (hipped roof) segments which are corresponding to the
plane patches of the roof.
3.2.3 The process of segmentation
The process is described here by taking a complicated roof as an
example. For instance, there are À (k € R, k » 2) 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.
3.2.4 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; (i1) outline is extracted by
computing a 2D a-shape of the points projected on the horizon;
(ui) the outline is simplified using the recursive Douglas-
Peucker line simplification algorithm; (1v) 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.
4. 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
99
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 and 6) which have only first level roof ridge,
while the other three house have two levels of roof ridges.
i
>
i
od
=
Se.
5% 7
AS x
SP x
a :
at GRE
atleta n mE
sata at aie sx»
. 2X.
>
iur
se
"e
A
++
me
EM
*
ae b So
pas A
caca *
es an amin ef +
iij "m > * » :
s * $9. ya 2
i Tine" > +
ob it : :
ap m$ + x
s = Ln EC
Peep
€
em y. :
* + De
* Phd sg op x
2, De
» eue,
get soc o»
» «e v gs» ®
* so, A lee *
..
= 0 e 9359 PR
x 5 ® Pur , +.
El, > s *
* s >. * *
UCET PUE
Fs P TU, st.
at * es .
Figure.3. Segmentation for four example houses