Automatic Reconstruction of Roof Overhangs for 3D City Models
Steffen Goebbels
a
and Regina Pohle-Fröhlich
Institute for Pattern Recognition, Faculty of Electrical Engineering and Computer Science,
Niederrhein University of Applied Sciences, Reinarzstr. 49, 47805 Krefeld, Germany
Keywords:
Building Reconstruction, CityGML, Oblique Aerial Images, Airborne Laser Scanning Point Clouds.
Abstract:
Most current 3D city models, created automaticall y from cadastral and remote sensing data and represented in
CityGML, do not include roof overhangs, alt hough these overhangs are very characteristic for the appearance
of buildings. This paper describes an algorithm that procedurally adds such overhangs. When a CityGML
model is t extured, the size of the overhangs is determined by recognizing overhangs in facade textures. In
this case, the method only needs an already existing model in CityGML representation. Alternatively, if an
additional point cloud (e.g., from airborne laser scanning) is available, this cloud can be utilized to calculate
the overhang sizes. We compare the results of both methods.
1 INTRODUCTION
Most automatically ge nerated semantic 3D city mod-
els have a level of detail (LoD) that provides p la -
nar roof and wall surfaces that form a 3D solid,
but do not include facade details such as windows,
doors, or roof overhan gs. The models, which are
usually available in the CityGML descriptio n lan-
guage (Gröger et a l., 2012; Kutzner et al., 2 020) or in
the CityJSON
1
format in LoD 1 (flat roofs only) or
LoD 2 (more realistic roofs, mostly without details
like dormers), are truncated at the cadastral footprint
(that is included in CityGML models as the ground
surface) so that overhanging roof surfaces a re cut off.
For example, roof overhangs expand the roof area
but also lead to shadowing. Both effects can be con-
sidered as input for solar potential analysis of roofs
and facades (see (Biljecki et al., 2015) for a pplica-
tions of city models). Switzerland already uses a na-
tionwide 3D model with roof overhangs
2
, but manual
interaction was required to obtain this model.
In this paper we descr ibe an algorithm
3
that au-
tomatically adds overhangs to building a nd building
part objects in CityGML models. Thus, LoD 3 el-
ements are added to LoD 2 building representatio ns.
a
https://orcid.org/0000-0003-4313-9101
1
https://cityjson.org/specs/ (all websites accessed:
September 11, 2022)
2
https://www.swisstopo.admin.ch/de/geodata/
landscape/buildings3d2.html
3
C++ source code is available at https://github.com/
SteffenGoebbels/citygml_overhangs
Figure 1: Overhangs w ere added to a model provided by
Geobasis NRW (Oestereich, 2014).
For use in e nergy modeling of buildings, a similar tool
is presented in (Malhotra et al., 2021) that can be used
to extend a CityGML mode l from LoD 1 to LoD 2 by
replacing flat roofs with predefined roof shapes that
correspo nd to cadastral inf ormation . However, this
tool does not deal with roof overhangs.
We differentiate between overhangs inside and
outside the cadastral footprint. Overhangs in the in-
terior of the footprint occur if a roof has step edges.
But then the use of airborne laser scanning data in c re-
ating the models (cf. (Wang et al., 2018)) leads to a
situation where no distinction is made between over-
hangs an d roof sur faces of the closed building hull.
Thus, walls representing step edges may be erro-
neously placed at the end of overhangs. The position
of walls is not corrected by our algorithm. Instead, it
generates small overhangs inside the cadastral foot-
print for appearan ce and larger, realistic overhangs
along the outside of the footprint, see Figure 1. If the
model has textured walls, the size of the latter over-
hangs is determined using im a ge processing methods
on facade images showing the overhangs. Then, the
new structures are calc ulated using only a given city
model without any additional data.
Goebbels, S. and Pohle-Fröhlich, R.
Automatic Reconstruction of Roof Overhangs for 3D City Models.
DOI: 10.5220/0011604200003417
In Proceedings of the 18th International Joint Conference on Computer Vision, Imaging and Computer Graphics Theory and Applications (VISIGRAPP 2023) - Volume 1: GRAPP, pages
145-152
ISBN: 978-989-758-634-7; ISSN: 2184-4321
Copyright
c
2023 by SCITEPRESS Science and Technology Publications, Lda. Under CC license (CC BY-NC-ND 4.0)
145
With additional inf ormation , one could find other
ways to estimate the size of overhangs.
A true orthophoto can be used to determine build-
ing footprints, e.g., by applying deep neural networks
as in (Cheng et al., 2019) or (Chen et a l., 20 20).
These footprints can be compared with cadastral foot-
prints. Differences indicate roof overhang s.
If a sufficiently dense point cloud is available
(e.g., from airbor ne laser scanning o r photogram-
metry) the size can be derived from building foot-
prints (e.g. taken from fitted wall planes) and a dig-
ital surface model based on this point cloud, see
(Dahlke et al., 2015; Frommholz et al., 2017). A zero
crossing of th e second difference of surface points in
the direction of a roof plane gradient indicates a dis-
continuity and thus the end of the plane including its
overhang. In our case, roof planes are given by the
model. There fore, a straightforward approach is to
look for inlier points of these planes that are outside
the roof facet, cf. (Yan et al., 2012; Ch en et al., 2014;
Goebbels and Pohle -Fröhlich, 2020) for RANSAC-
based roof reconstruction . We use this method in ad-
dition or as an alternative to texture-based sizing for
overhangs, see Section 5.2.
All these approaches combine data from differ-
ent sourc es, which usually do not match perfectly and
lead to inevitable errors.
Our algor ithm consists of following steps:
The fir st task is to select the roof edges where
there may be roof overhangs. This step is de-
scribed in the next section.
Then, for each edge candidate, the size of a poten-
tially adjace nt overhang is either calculated or set
as a default value. To calculate the size, two m e th-
ods based on CityGML textures and o ne method
based on additional airborne laser scanning point
clouds are used, see Section 5. One texture based
method utilizes d ominant colors, the other ap-
proach evaluates an edge image.
Now, the overhangs can be constructed in a
generic way, see Section 3.
When dealing with textured c ity models, over-
hangs need to be colored consistently with the tex-
tures. We apply a median cut algo rithm. Since
the colors are also u sed in one of the methods for
calculating the overhang size, this is described in
Section 4 prior to the size estimate approaches in
Section 5.1.
Finally, the results are discussed in Section 6.
2 CANDIDATE EDGES WHERE
OVERHANGS MAY BE PLACED
For each building or building part, we analyze a di-
rected graph (V, E) with ed ges E V × V and ver-
tices v = (v.x,v.y) V R
2
which are obtained from
the 3D vertices of all roof polygons by omitting th eir
height coordinate. So we project the boundar y edges
of each roof facet onto a horizontal plane. If a roof
contains step edges, multiple 3D vertices could be
mapped to one vertex in V . The CityGML repre-
sentation ensures that each roof polygon is oriented
counter-clockwise when viewed from the outside of
the building. Thus, the edges of the 3D polygon s
are oriented. We connect u and v V with an arc
(u,v) if and o nly if there exist correspon ding 3D ver-
tices ˜u and ˜v R
3
such that a p olygon edg e con-
nects ˜u with ˜v. A c onsistent 3D solid given, each
arc (u,v) belongs to a unique polyg on edge denoted
by (L(u,v),R(u,v)) R
3
× R
3
. We use the notion
L(u,v) = (L(u,v).x,L(u,v).y,L(u,v).z) to access co-
ordinates.
Let (u,v) E be such that also (v,u) E. Then the
arc (u,v) is no t a candidate for attaching a roof over-
hang if L(u,v).z R(v,u).z or R(u,v).z L(v,u).z,
because then a roof segment of ( partially) equal or
greater height is attached. I n particular, this excludes
all ridge lines.
We also check whether the arcs are adjacent to
walls of other buildings. In this case, we also do not
attach overhangs, as they could intersect with neigh-
boring buildings. Thus, for each candidate arc (u,v),
we look for parallel 2D footprint edges with the same
orientation such that the straight lines through the arc
and footprint edge are closer than a threshold (0.4 m).
The footprint polygo ns are defined as GroundSur-
face objects in CityGML and have normals p ointing
down. Therefore, the selec ted edges belo ng to diffe r-
ent buildings or building parts and could be adjacent
to th e arc. To check th is, w e project arc (u,v) onto
the line through the footprint edge. If this edge inte r-
sects with the projected arc in its inte rior, (u,v) may
not qualify for attach ing a roof overhang. To make
a final decision, we also consider wall polygons be-
longing to the footprint edge and determine a maxi-
mum z-coo rdinate. If L(u,v).z or R(u,v).z does not
exceed this maximum co ordinate, a roof overhang for
(u,v) will intersect with the neighboring building and
is therefore omitted. We only deal with parallel foot-
print edges because this is the typical c ase of terraced
house development.
GRAPP 2023 - 18th International Conference on Computer Graphics Theory and Applications
146
3 CONSTRUCTION OF
OVERHANGS
3.1 Procedural Extension of Roof Facets
The algorithm iterates thro ugh all arcs (u, v) E of
positive length that are candida te s for attaching an
overhang. The overhang shape is determined by inco-
ming arcs (w,u) of u and outgoing arc s (v, w) of v.
If there exists exactly one incoming arc (w,u) such
that R(w,u).z = L(u,v).z, and the arc is selected for at-
taching an overhang, the n the two overhan gs are con-
nected as described in Section 3.2, creating the ver-
tices of the left side of the overhang in 2D. This is
also done at the seco nd vertex: If there exists ex a ctly
one outgoin g arc (v,w) with L(v,w).z = R(u,v).z that
also is selected to attach an overhang, then these two
overhangs are also connected as described in Section
3.2, creating vertices of the right side of the overhang
in 2D.
If there is no need to connect adjacent roof over-
hangs on the left or right or both sides, we try to
extend the roof orthogonally to (u,v) on this side
or the se sides. The n ormal ~n := (v.y u.y,v.x +
u.x)/|v u| po ints in the direction in which the over-
hang must extend. In a straightforward situation, the
2D-points u, u + d~n and/or v + d~n, v can be used to
calculate the vertices of the left and/or right side of
the overhang. The parameter d > 0 describes the
size of the overhang . Section 5 explains how to es-
timate this size. However, the use of an orthogo-
nal extension may result in overlaps with neighbor-
ing stru c tures belonging to the incoming arcs of u
or the outgoing arcs of v, see Figure 2. To avoid
this, we compute adapted shift directions for both u
and v. Let E
in
be the set of incoming arcs (w,u)
of u fo r which R(w,u).z L(u, v).z and for which
both angles between (u,w) and (u, v) as w ell as (u,w)
and ~n are less than 90
. If the set is non-empty and
if we do not connect roof overhangs at u, we use
~n
u
:=
~
d
u
/|
~
d
u
| instead of ~n to obta in the overhang
vertex u +~n
u
· d/
p
1 cos
2
(α), where
~
d
u
E
in
such
that the angle α between
~
d
u
and (u,v) is smallest.
By consid e ring outgoing arcs of v, we proceed simi-
larly to replace v + d~n by v +~n
v
· d/
p
1 cos
2
(β) for
a minim um angle β, if necessary.
The construction for con necting two overh a ngs in
the following Section 3.2 also involves a projection in
the direction ~n, which may need to be replaced by a
projection in the direction of the vectors
~
d
u
or
~
d
v
.
So far, the 2D coordinates of the vertices of the
overhang have been determined, e ither by the algo-
rithm in Section 3.2 or by the above considerations.
(w
1
, u)
(u, v)
(v, w
2
)
d
n d
n
edge!of!overhang
n
α
other!incoming!edge!(w
3
, u)
Figure 2: An orthogonal at tachment of an overhang to the
edge (u,v) might intersect with walls belonging to incoming
edge (w
1
,u) and outgoing edge (v, w
2
). In that case, the red
vertices have to be used in the construction of the overhang.
Figure 3: Equations (1)–(5) define construction points P
1
,
P
2
, and P
3
. Whereas in the left image projection points
P
3
6= P
2
are used, P
3
= P
2
holds at the corners of the other
buildings.
Finally, we need to compute z-coordin a te s (height-
values) for the new vertice s by considerin g the nor-
mal ~n
P
of the roof polygon belonging to (u, v): Us-
ing the inner prod uct, the z-coordinate of vertex (x, y)
can be computed by so lving the equation L(u, v)·~n
P
=
(x,y, z) ·~n
P
.
We merge overhang polygons, belonging to the
same roo f polygon and having a common edge. How-
ever, we avoid inner polygons by using edges that are
traversed in both directions. Su ch inner polygons de-
scribe openings that can occur if a roof consists of
a single polygon and overhangs are attached to all
edges. The merged polygons are extruded into 3D by
adding “wall” polygons with a small default height
and a ceiling polygon. These 3D solids are added to
the CityGML mod e l as buildin g installation ob je cts.
3.2 Connecting Roof Overhangs
In this section we discuss the scenario that overhangs
have to be attached to two roof ed ges that are incident
to the same vertex u in 3D, see examples in Figure
3. For simplicity, we describe the calculation for u
replaced by (0,0) so that the point u has to be added
to the re sulting 2D points, see Figure 4.
We shift the 2D roof edge indicated by ~a in Fig-
ure 4 belonging to a roof polygon with 3D normal ~n
1
by adding a 2D vector
~
d
1
that is o rthogo nal to ~a and
pointing outwards. Thus,
~
d
1
= s(~a.y,~a.x) for some
s > 0. In the same way, we deal with the edg e indi-
cated by
~
b of the sec ond polygon and shift it with
~
d
2
orthogonal to
~
b and pointing ou tward.
Automatic Reconstruction of Roof Overhangs for 3D City Models
147
d
1
d
2
a
b
(0,0)
roof!with!normal!
n
1
ridge!line!between!roof!polygons
roof!with!normal!
n
2
P
1
P
2
P
3
Figure 4: Connecting two overhangs.
We obtain the intersection point P
1
of the bound-
ary of the overhang polyg on via
P
1
= (0,0) +
~
d
1
+ s
1
~a = (0, 0) +
~
d
2
+ s
2
~
b, (1)
i.e., by solving th e two corre sponding linear equations
with Cramer’s rule. If there is no unique intersec-
tion point (~a and
~
b are parallel), then the two over-
hang segments are treated separately at this vertex if
~
d
1
6=
~
d
2
. We do not connect them. If the two vectors
are equal, we set s
1
= s
2
= 0 and can also use point
P
1
. If |P
1
| > |
~
d
1
| + |
~
d
2
| then the angle between ~a and
~
b is close to 180
, and the segments are also treated
separately.
If~n
1
=~n
2
, the edges belong to the same roof facet.
In this case, the overhangs meet at the edge between
P
1
and (0,0). Otherwise, there exists an intersection
line between the two roof facets belonging to the two
roof edges. Then we also need to find the intersection
P
2
with one of the two overhang edges. Using the
cross product, the direction of the ridge line can be
described with 2D vector
~r = ((~n
1
×~n
1
).x,(~n
1
×~n
1
).y). (2)
Then either
P
2
= s
3
~r = P
1
+ s
4
~a (3)
or
P
2
= s
5
~r = P
1
+ s
6
~
b. (4)
Both equations can be solved with Cramer ’s rule. If
a so lution does not exist, w e only co nsider the other
equation. If both solutions exist, we select one by
comparing s
4
and s
6
. If s
6
0 (or equivalently, s
4
0), we compute P
2
with ( 4). Otherwise, P
2
is given by
(3) as shown in Figure 4.
To obtain the usual appearance of overhangs, we
add an additional point P
3
:
If P
2
results from (3), we project P
2
orthogonally
onto the line P
1
+ s
~
b:
P
3
= P
2
+ s
7
~
d
2
= P
1
+ s
8
~
b. (5)
Figure 5: From top to bottom: original roof texture, texture
reduced to eight colors, and dominant color.
Then the points (0,0), P
2
, and P
3
are vertices of th e
left side of the overhang for edge
~
b, and the points P
2
and (0,0) are vertices of the right sid e of the overhang
for edg e ~a.
If P
2
is calculated with (4), we project P
2
onto the
line P
1
+ s~a:
P
3
= P
2
+ s
7
~
d
1
= P
1
+ s
8
~a. (6)
Then the points P
3
, P
2
and (0,0) are vertices of the
right side of the overhang for the edge ~a, and the
points (0 , 0) and P
2
are vertices of the left side of the
overhang for the edge
~
b.
The orthogonal projection leading to P
3
could
cause an intersection with neighboring structures. We
replace
~
d
1
or
~
d
2
similar to ~n in Section 3.1 if nece s-
sary.
4 COLOR OF OVERHANGS
For textured city models, the overhang s may not be
fully visible in the textures provided. Therefore, we
do not equip overhangs with textures from the m odel,
but with the dominant color of the corresponding roof
facet. The do minant color is determined using the me-
dian cut a lgorithm (Heckbert, 1982). This algorithm
clusters color values iteratively by comparing values
of the c hannel with the largest range to their median.
Finally, the ch a nnel-wise arithm etic mean of all co l-
ors in a cluster is used to represent their replacement
color. Applied to a textur e image, the algorithm c a n
reduce the number of colors to very few, say eight.
Then the color with the largest number of pixels is
chosen, see Figures 5 and 6.
To obtain homogeneous looking roof planes, one
could also remove a ll roof textures and use th e
correspo nding colors instead. This also removes
perspective-distorted images of structures suc h as
dormers, which are not represented in LoD 2 mod els.
GRAPP 2023 - 18th International Conference on Computer Graphics Theory and Applications
148
Figure 6: Overhangs painted with the main color of the cor-
responding roof facet.
5 SIZE OF OVERHANGS
5.1 Size Derived from Textures
For each ro of edge for which we have to construct an
overhang, we need to estimate the overhang size d,
as used in Sectio n 3.1, or the sizes |
~
d
1
| and |
~
d
2
|, as
used in Section 3.2. To th is end, we utilize textures
from CityGML models. Ma ny communities maintain
such texture d models. While the camera position and
parameters are p recisely kn own for oblique aerial im-
ages, the se data are not available for the textures. We
therefore assume and this is not far-fetched that fa-
cade images are generated from oblique aerial images
that are taken at a 45
angle. Then roof overhangs
are visible in the top of facade textures
4
, see Figure 7.
Let h > 0 be the vertical extent of this texture region,
measured in meters. We derive the size of the over-
hang using h. If h > 2, i.e, the size exceeds typical
values, we assume that the size results fro m artifacts
and that the roof facet is not clearly visible in the fa-
cade image. Then we replace h by 2 for com puting
the box- plots bu t change the value to zero for recon-
structing overh angs. I f the roof edge belongs to a flat
roof, then the size is d = h. Otherwise, let ~n be the
4
We textured a city model with oblique areal images
that were provided by the cadastral office of the city of
Krefeld.
}
h
}
h
}
h
}
h
Figure 7: Overhangs with height h are visible in facade tex-
tures.
n
α
α
}
h
}
d
45
}
d
Figure 8: Estimating the size d of an overhang with normal
~n from a texture in which the roof section has height h, see
(7).
normal of the corresponding roo f poly gon, then, see
Figure 8, tan(α) = d/(h d) a nd
d = h ·
tan(α)
1 + tan(α)
, tan(α) =
~n.z
|(~n.x,~n.y)|
. (7)
To obtain h, we create an image based on texture co-
ordinates simulating a UV-mapping by applying ei-
ther an affine transformation based on three polyg on
vertices or by a perspective transform based on four
polygon vertices with the OpenCV library. Then we
shift, rotate, and cut off the image su ch that the roof
edge corresponds with the top boundary of the ima ge,
see facades in Figur e 7 and 9.
Figure 9: Rotated wall texture: The upper boundary of each
image coincides with the roof edge to be examined.
Automatic Reconstruction of Roof Overhangs for 3D City Models
149
Then, h can be determined using image processing
methods. We compare two approache s, one based on
an edge image and one based on homogeneous color
regions.
After creating an edge image, the edge pixels per
line are summed to get a histogram function. Then,
the function is normalized so that the smallest value
is 0 and the largest value is on e. We seek for the
first value that exceeds the experimentally determined
threshold of 0.75, see Figure 11. Considering the im-
age resolution, the corr e sponding lin e index defines
h. Since it has been found that dominant edge s often
appear at the bottom of facades, we restrict the com-
putation to the upper half of the texture.
The second approach is based on color regions.
With the media n cut algorithm, cf. Section 4, we de-
termine both the dominan t color of the facade and the
dominant color of the cor respond ing roof facet. Based
on the transformed texture image with n rows, a his-
togram function is com puted. This fu nction maps th e
line index to the number of those pixels in the image
line f or which the l
2
-distance o f the R-G-B color to
the roof color is smaller than a quarter of the distance
to the facade color. Then the histogram function is
scaled so that its minimum is z e ro and its ma ximum
is one. We denote this function by f . In an ideal
world, where the pixels can be uniquely assigned to
either the roof or the facade such that the correspond-
ing regions are divided horizontally b y a line, f is a
function of type g
l
with
g
l
(k) :=
1 : k {0, 1,...,l}
0 : k {l + 1,... , n 1}.
(8)
Therefore, we compute th e smallest line index l for
which
n/2⌋−1
k=0
( f (k) g
l
(k))
2
is minimal. Again, we
focus on the upper ha lf of the image and obtain h fro m
this smallest line index as w e ll by considering the im-
age resolution. Figure 12 dem onstrates the concept
but also shows that shadows of overhangs c an extend
the roof area.
For the automatic reconstruction o f overhangs, the
minimum size of bo th appro aches can be used. Roof
and wall textures can co me from different aerial or
oblique aerial images with different cameras. There-
fore, it is not surprising that both approaches lead
to differences tha t are shown in Figure 10 for the
square kilometers specified by zon e 32U UTM in-
terval [330,0 00; 331,000] × [5,687 , 000; 5,688,000]
(8,261 roof edges with available roo f and facade tex-
tures) and the next interval [330 , 000; 331,0 00] ×
[5,688,000; 5, 689,000] (7,733 roof edges). These
square kilometers are used in other figures, too.
-2.0 -1.6 -1.2 -0.8 -0.4 0 0.4 0.8 1.2 1.6 2.0 m
arithmetic mean: -0.306 m
-2.0 -1.6 -1.2 -0.8 -0.4 0 0.4 0.8 1.2 1.6 2.0 m
arithmetic mean: -0.384 m
Figure 10: Differences between overhang sizes estimated
based on dominant colors and overhang sizes estimated with
an edge image; the box plots belong to different square kilo-
meters.
0
Figure 11: Detection of roof regions with edge histograms.
5.2 Size Derived from a Point Cloud
Figures 14 an d 15 demon stra te that overhangs are in-
deed visible even in sp arse airborne laser scanning
point clou d data
5
. When such a point cloud is avail-
able, we also use it to compu te sizes of overhangs. To
this end, we organize the point clouds in a q uad-tree
for faster access. For each relevant roof edge, we co n-
sider a rectangular ar ea in the x-y ground plane. One
side of this rectangle is given by the middle part of the
roof e dge (with half the leng th o f the edge to avoid
interference with other structures at the corners). The
rectangle extends two meters beyond the roof facet.
Figure 12: The blue lines separate the roof and facade based
on an edge image, the red lines separate the dominant colors
of the roof and facade.
5
Available from Geobasis NRW, https://
www.bezreg-koeln.nrw.de/brk_internet/geobasis/
hoehenmodelle/3d-messdaten/index.html
GRAPP 2023 - 18th International Conference on Computer Graphics Theory and Applications
150
-2.0 -1.6 -1.2 -0.8 -0.4 0 0.4 0.8 1.2 1.6 2.0 m
arithmetic mean: -0.349 m
-2.0 -1.6 -1.2 -0.8 -0.4 0 0.4 0.8 1.2 1.6 2.0 m
arithmetic mean: -0.187 m
Figure 13: Quality of overhang sizes estimated from sparse
airborne laser scanning point clouds: The box plots show
the distribution of differences between σ and γ (see Section
5.2) for the same two square kilometers as in Figure 10.
Figure 14: Matching of an airborne laser scanning point
cloud with an LoD 2 city model: Visible black points of the
cloud are not occluded by the model.
Larger overhangs occur only very rarely and pose the
risk of overlapping with other buildings. Then all
laser scanning poin ts within this rectang le are deter-
mined and their distance to the boundless roof plane
belonging to the edge is calcu late d by using the Hesse
normal form with the given plane normal. If a dis-
tance is below one meter, the point is considered as
a plane in lier. Let γ be the largest distance of all in-
liers to the edge under consideration. If there are no
inliers, γ is set to zero. We have an outlier point, if its
distance to the plane exceeds one meter. This thresh-
old is chosen to ignore no ise and because almo st all
facades are higher than two me te rs. Outliers are ig-
nored if they are above the plane. This is necessary
to avoid false outliers, e.g., due to dormers that are
Figure 15: Roof regions shown in facade t extures of an LoD
2 city model indeed correlate with point cloud points be-
longing to roof overhangs.
missing in the given building model. Outliers below
the p la ne indicate the end of the roof facet. Let σ
be the shortest distance of all outliers to the edge. If
there are no such ou tliers, σ is set to th e maximu m
overhang size of 2 m. Finally, we estimate the size d
of the overhang :
d :=
γ+σ
2
: outliers exist
γ : otherwise.
(9)
Figure 13 shows differences between γ and σ for
sparse airborne laser scanning point clouds in c on-
junction with roof facets of a city model com-
puted on these data and on cadastral footprints using
RANSAC. One would expect σ > γ with the differ-
ence being small. Inliers should be near the roof edge,
and outliers should be farther away. However, the
LoD 2 mode ls have simplified roof topologies. For
example, a roof facet may be separated by a dormer so
that ther e is no overhang in front of the dormer. But
the d ormer may be ab sent from the model, leading
to outliers close to the roof edge under consideratio n.
Also, vegetation leads to false inliers.
6 RESULTS
Since we are not aware of any ground truth, we com-
pare sizes of overhangs obtained from facade textures
(included in a CityGML model and previously com-
puted from o blique areal images with a pixel size
of about 0.1 m × 0.1 m) on the one hand and from
airborne laser scanning point clouds (provided by
Geobasis NRW with a resolution between 5 and 10
points per square meter ) on the other hand. The dif-
ferences between these size estimates are shown in
Figures 16 and 17. Compared to the size of the over-
hangs, the d ifferences between the size estimates are
substantial. However, apart from the implicit inac-
curacies in the estimatio n methods, the reasons for
this also lie in the data. Roof planes in 3D c ity mod-
els usually simplify real roof structures. In reality,
walls have a certain thickness that they do not have in
the model. Cadastral footprints do not exactly match
oblique aerial imag e data. These inaccuracies result
in texture shifts. Textures can show objects or other
buildings that occlud e the wall in question. We also
use a point cloud from airborne laser scanning, whose
relative accuracy within the cloud is very good, but
the entir e cloud may be slightly shifte d compared to
cadastral data. The point cloud is sparse, so small
structures such as overhangs are barely represented.
Automatic Reconstruction of Roof Overhangs for 3D City Models
151
-2.0 -1.6 -1.2 -0.8 -0.4 0 0.4 0.8 1.2 1.6 2.0 m
arithmetic mean: 0.006 m
-2.0 -1.6 -1.2 -0.8 -0.4 0 0.4 0.8 1.2 1.6 2.0 m
arithmetic mean: 0.148 m
Figure 16: Size estimates based on texture edges minus esti-
mates from aerial laser scanning point clouds for two square
kilometers.
-2.0 -1.6 -1.2 -0.8 -0.4 0 0.4 0.8 1.2 1.6 2.0 m
arithmetic mean: -0.302 m
-2.0 -1.6 -1.2 -0.8 -0.4 0 0.4 0.8 1.2 1.6 2.0 m
arithmetic mean: -0.238 m
Figure 17: Size estimates from texture colors minus esti-
mates from aerial laser scanning point clouds for two square
kilometers.
7 CONCLUSIONS
With the developed tool, roof overhangs can be added
to existing CityGML models with or without usin g
additional data, giving the models a much more real-
istic appear a nce. The tested heuristics for estimating
the size of the overhangs work in principle, but with
the poor-resolution im age and point cloud data avail-
able to us, the estimates a re comparatively inaccurate.
Better quality can be expected, for exam ple, when us-
ing higher resolution point clouds, but they are not
available throughout a widespre ad area.
Flat roofs often do not have overhangs but a small
elevated frame along their perimeter. Such frames can
be added to city models in a similar way as overhangs,
by extending edges into direction ~n, see Sectio n 3.1,
and without considering ridge lines, cf. Section 3.2.
Future work may also explore estimating the size of
roof overhangs using machine learning.
ACKNOWLEDGMENTS
The authors are grateful to Udo Hannok from the
cadastral office of the City of Krefeld for providing
oblique aerial image s. T he authors are also grateful
for valuable comments by the anonymous reviewers.
REFERENCES
Biljecki, F., Stoter, J., Ledoux, H., Zlatanova, S., and Çöl-
tekin, A. (2015). Applications of 3D city models:
State of the art review. ISPRS International Journal
of Geo-Information, 4:2842–2889.
Chen, Q., Wang, L., Waslander, S. L., and Liu, X. ( 2020).
An end-to-end shape modeling framework for vector-
ized building outline generation from aerial images.
ISPRS Journal of Photogrammetry and Remote Sens-
ing, 170:114–126.
Chen, Y., Cheng, L., Li, M., Wang, J., Tong, L., and Yang,
K. (2014). Multiscale grid method for detection and
reconstruction of building roofs from airborne LiDAR
data. IEEE J. Sel. Topics Appl. Earth Observ. Remote
Sens., 7(10):4081–4094.
Cheng, D., Liao, R., Fidler, S., and Urtasun, R. (2019).
DAR-Net: Deep active ray network for building seg-
mentation. In Proc. IEEE/CVF Conference on Com-
puter Vision and Pattern Recognition (CVPR), pages
7423–7431.
Dahlke, D., Linkiewicz, M., and Meissner, H. (2015). True
3D building r econstruction: Façade, roof and over-
hang modelling from oblique and vertical aerial im-
agery. International Journal of Image and Data Fu-
sion, 6(4):314–329.
Frommholz, D., Linkiewicz, M., Meißner, H., and Dahlke,
D. (2017). Reconstructing buildings with disconti-
nuities and roof overhangs from oblique aerial im-
agery. International Archives of Photogrammetry and
Remote Sensing, XLII -1 (W1):465–471.
Goebbels, S. and Pohle-Fröhlich, R. ( 2020). RANSAC for
aligned planes with application to roof plane detection
in point cl ouds. In Proc. GRAPP, pages 193–200.
Gröger, G., Kolbe, T. H., Nagel, C., and Häfele, K. H.
(2012). OpenGIS City Geography Markup Language
(CityGML) Encoding Standard. Version 2.0.0. Open
Geospatial Consortium.
Heckbert, P. (1982). Color i mage quantization for frame
buffer display. Computer Graphics, 16(3).
Kutzner, T., Chaturvedi, K., and Kolbe, T. H. (2020).
CITYGML 3.0: New functions open up new appli-
cations. PFG, 88:43–61.
Malhotra, A., Raming, S., Frisch, J. , and van Treeck, C.
(2021). Open-source tool for transforming CityGML
levels of detail. Energies, 14(24).
Oestereich, M. (2014). Das 3D-Gebäudemodell im Level
of Detail 2 des Landes NRW. Nachrichten aus dem
öffentlichen Vermessungswesen Nordrhein-Westfalen,
47(1):7–13.
Wang, R., Peethambaran, J., and Chen, D. (2018). LI DAR
point clouds to 3-D urban models: A review. IEEE
Journal of Selected Topics in Applied Earth Observa-
tion and Remote Sensing, 11(2):606–627.
Yan, J., Jiang, W., and Shan, J. (2012). Quality analysis on
RANSAC-based roof facets extraction from airborne
LIDAR data. International Archives of Photogramme-
try and Remote Sensing, XXXIX(B3):367–372.
GRAPP 2023 - 18th International Conference on Computer Graphics Theory and Applications
152