0
Gp = pp 08,8) = -Aexp(-(@* +4") — (n
We can find a derivative in an arbitrary 0 direction using follow-
ing filter function, Gpe = cos(0)Gpo + sin(0)G,z
We convolve our DSM with this derivative filter in 0 € [0, 7/12,
…, 23/12] directions as follows, Je = D(x, y) * Gpe
If 0 angle is perpendicular to the building ridge-line orientation,
then one side of the building rooftop gives positive response, and
the other side of the building rooftop gives negative response
to filter. Assuming B’(x,y) is the jth connected component
in B(z, y) binary building segment matrix, we assume that two
sides of the building rooftop (RP; and RN}) can be extracted as
follows,
RP) — B'(z,y) x (Je » 0) (8)
RN] — B'(z,y) x (Ja « 0) (9)
Since we have no pre-information about building orientations,
we should do the derivative filtering in all possible orientations.
Therefore, we calculate >, RL; for 0 € [0,7/12, ..., 237/12]
directions. Building ridge-line will be extracted in 0; filtering
angle which is almost perpendicular to the ridge-line orientation.
However the ridge-line will be also detected in 0; — 7/12 and
6; + 7/12 neighbor filtering directions. Therefore, the ridge-line
will have a value of higher than 2 in the ) , RL} result. As a
result, ridge-line of jth building rooftop can be obtained by cal-
culating R (z,y) = Y_, RL), > 2 and eliminating connected
components which are less than 10 pixels in order to eliminate
redundant information coming from small objects on rooftop.
Next, we use detected ridge-lines for roof-type classification and
three-dimensional rooftop model reconstruction purposes. We
benefit from detected roof ridge-lines to classify rooftops as "flat
roof’ or ’gable roof’ type. If there is no ridge-line detection re-
sult on a building segment, we assume that building as flat roof.
If there is a ridge-line on the jth building segment, then we calcu-
late mean of DSM height values on ridge-line location by calcu-
lating > RI (z,y) x D(x,y)/M, where M is the total number
(zy)
of ridge-line pixels in R? (z, y) binary matrix. We also calculate
mean of DSM height values on building border by calculating
S sv) B?(z,y) x D(z,y) /N, where N holds the total num-
ber of building border pixels in B?(z, y) binary matrix. If the
difference between these two mean values is lower than 2 me-
ters, then we assume the rooftop as a flat rooftop. Otherwise, it
is assumed as gable rooftop. 'This 2 meters criteria 1s obtained by
observing gable rooftop characteristics over test area.
3.1.3 Obtaining Three-Dimensional Representation We start
with generating a zero matrix D»(z, y) with the same size with
D(z,y) matrix. New height values belonging to objects in the
city will be stored in D»(x, y) matrix. In order to eliminate noise
in non-built regions, we apply median filtering to the original
DSM (D(z, y)) by using a 3 x 3 pixel size window obtaining
a filtered DSM (D;(z, y)). For non-builtup areas, or in other
areas for (x, y) coordinates which satisfy B(x,y) = 0, we ap-
ply Do(z,y) — Dy(x,y). That means: we assign smoothed
ground height values for non-built regions. As building wall,
we insert single height value to each building boundary which is
International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, Volume XXXIX-B3, 2012
XXII ISPRS Congress, 25 August — 01 September 2012, Melbourne, Australia
stored in B(z, y) binary building shape matrix. For each build-
ing, the building height value is assigned by calculating the mean
of D(z, y) values on all building boundary pixels. After smooth-
ing the noise on the ground and inserting sharp building walls,
finally rooftop height values are assigned to D»(zx,y) matrix,
Rooftop height assignment is done by considering the roof-type.
If the roof is classified as a flat roof, then only a single height
value is assigned to all building area which is equal to building
wall heights. If the rooftop is classified as a gable-roof, we fol-
low different approaches depending on the building complexity.
If the building is not detected as a complex building as struc-
ture type (if the Euler number is equal to 1), then we can find
polygons which defines the rooftop in three-dimensional space.
To this end, we detect corners of building segment using Har-
ris corner detection algorithm (Harris and Stephens, 1988) over
panchromatic image of the test region. Besides, we also detect
endpoints of the building ridge-line. We pick each building cor-
ner one by one. Then, we find the closest ridge-line endpoint.
A line between building corner and the closest ridge-line end-
point can divide the rooftop into polygons. A detailed demon-
stration of this approach is illustrated in (Sirmacek et al., 2011).
Height values of rooftop polygons are assigned to corresponding
pixels in D(z, y) matrix. If the building is detected as a com-
plex structure or if the building ridge-line could not be extracted
properly, unfortunately we cannot use the same idea for building
rooftop reconstruction and more advanced rooftop reconstruction
approaches are needed. Herein we leave the building rooftop re-
construction at this level. For complex building rooftops and for
rooftops for which we cannot extract the ridge-line properly, we
only insert corresponding pixel values from D ; (x, y) matrix.
3.2 Hierarchical Generation of 3D Prismatic Models of Build-
ings
An approach is presented to extract 3D model of buildings ac-
cording to LODI (Level-of-Detail 1) based on CityGML standard
(Kolbe et al., 2005). The approach starts with approximation and
regularization of the building boundaries. Two algorithms are
proposed for approximation of the building polygons based on
the main orientation of the buildings (Arefi et al., 2007). The
algorithms are selected according to the number of main orienta-
tions of the buildings and implemented as follows:
e If the building is formed by a rectilinear polygon, i.e., sides
are perpendicular to each others from the top view, a method
based on Minimum Bounding Rectangle (MBR) is applied
for approximation. This method is a top-down, and model-
based approach that hierarchically optimizes the initial rec-
tilinear model by fitting MBR to all details of the data set.
Principles of MBR based polygon approximation is presented
in Figure 5.
Accordingly, after determination of the main orientation, the
building polygon is rotated to the main orientation, as shown
in Figure 5(a). In the next step the MBR image (Fig. 5(b))is
subtracted from the rotated building region. After subtrac-
tion, new regions will be produced (Fig. 5(c)). For any of
those regions a MBR will be calculated (Fig. 5(d)). They are
again subtracted from their corresponding regions produced
in the previous step (Fig. 5(e)). As illustrated in Figure 5(e)
some small regions are created. The process is followed
by computing new MBR regions and subtracts them from
their corresponding regions. This hierarchical procedure i5
continued until "no regions" are produced any more. That
means the progress stops when either no new regions cre:
ated any more or the size of produced regions is less than
predefined threshold. After convergence the final polygons
As
ith;
ings
Cor
ith;
In
pol;
Fig,
Inte
pro