The Validation and Repair of CityGML Models

Download Report

Transcript The Validation and Repair of CityGML Models

The Validation and Repair of CityGML Building Models
3 DEC 2013
Junqiao (John) Zhao
GIS technology, OTB, Faculty of Architecture and The Built
Environment, TUDelft
Delft
University of
Technology
Challenge the future
Research motivation
• Visually satisfied model are not always usable
• Many applications assume the 3D model free of
defects, especially those involved in geometric
processing e.g. Analysis, Generalization etc.
• Complexity of repair task is often underestimated (Campen et al., 2012)
Estimated
Reality
Looks good != Is good
2
Errors found in CityGML models
3
3D Validator
• Initiated in 3D Pilot Phase 2
• Hugo Ledoux (Val3dity)
• Jan kooijman (CityGML2Poly)
• Val3dity
• Improved several algorithms
val3dity
Validation of solids according to the
international standard ISO 19107
• Normal calculation
• Inside-out detection (with Sjors)
• Output the visible erroneous map
• Validate 3D BGT (with Sander)
• CityGML2Poly – CityGML2SPoly
• Support semantics
• Correct the work flow of geometry extraction (multisurface and solids)
• Optimization of the data structure
4
Examples of the validation of
CityGML datasets
• Berlin_Alexanderplatz_v1.0.0
• Total buildings: 1123
• Invalid buildings: 229
• Type of errors: Hole, Intersection, Floating faces
5
Examples of the validation of
CityGML datasets
• FZK-Haus_LoD4_SpaceSolid
• Total buildings: 1
• Invalid buildings: 1
• Type of errors: Dangling faces (200)
6
Examples of the validation of
CityGML datasets
• Rotterdam 3D - Nesselande
• Total buildings: 4740
• Invalid buildings: 4276
• Type of errors: Non-planar polygon, Hole, Floating
faces, Intersection
7
8
For more datasets
• An online validation tool
• Integrated with 3DCityDB?
9
Repair - why a framework is needed?
What are the proper criteria for
validity of CityGML models?
How to repair the errors accordingly?
10
Quality requirement
Visualization
Measurement
Analysis
• VR, Navigation,
Planning
• 3D maps,
CADASTRE
• Simulation, Indoor,
CFD
No strict
requirement
Require valid
geometry
Require valid geometry
and topological
structure
11
Problems
• Criteria of quality are vague in standards
• CityGML
• CompositeSurfaces and Shells are represented by
Multi-Surfaces
• ISO 19107
• A simple geometric primitive can be invalid
Multi-surface
12
The definition of validity
• For representing purpose
• Simple: geometric object that its interior is isotropic,
and hence everywhere locally isomorphic to an open
subset of a Euclidean coordinate space of the
appropriate dimension (ISO19107)
• For analytical applications
• 2-manifold: a topological space in which each point has
a neighbourhood that is homeomorphic to the Euclidean
space of dimension two
13
Invalid and valid geometry
• Surfaces, CompositeSurfaces, MultiSurfaces
2-Manifold: YES
Simple: YES
2-Manifold: NO
Simple: YES
2-Manifold: NO
Simple: YES
2-Manifold: YES
Simple: YES
2-Manifold: NO
Simple: YES
2-Manifold: NO
Simple: YES
2-Manifold: YES
Simple: YES
2-Manifold: NO
Simple: NO
2-Manifold: NO
Simple: YES
2-Manifold: NO
Simple: NO
14
Invalid and valid geometry
• Solids, CompositeSolids, MultiSolids
2-Manifold: NO
Simple: YES
2-Manifold: YES
Simple: YES
2-Manifold: NO 2-Manifold: NO
Simple: YES
Simple: YES
2-Manifold: NO
Simple: YES
2-Manifold: NO
Simple: YES
15
The definition of validity
• Should all valid CityGML models be 2-manifold?
• Enforcing 2-manifold is restrictive for representing purpose
• Complex implies relations like connection, adjacency
16
Validty criteria for CityGML geometry
• Suitable for analysis and retain the power of
representing
CityGML model
Simple Complex
Aggregate model
Aggregate model
Building
Building Parts
Parts
2-manifold
Surfaces or Solids
Component
model
Component
model
Component
model
Component
model
Building
Building Installations,
Installations, Rooms
Rooms
17
Recursive repair paradigm
Repair of aggregate
Simple
models
Repair of component
models
18
Repair operators
• Repair of component models
• Goal: 2-manifold
• Operators for 2D surfaces
• Splitting
• Separation
• Boolean operation
Splitting + Separation
Boolean
Boolean
19
Repair operators
• Repair of component models
• Goal: 2-manifold
• Operators for 3D Solids
Separation
• Separation
• Boolean
• Shell extraction (hole filling)
Boolean
Shell extraction
Boolean + Separation
20
Repair operators
• Repair of aggregate models
• Goal: simple
• Operators
• Splitting
a)
3D b)
vs 3D
e)
d)
2D vs 2D
c)
3D vs 2D
21
More than repair…
• Aggregate enhancement
CompositeSurface
MultiSurface
If connected
If closed
Shell
convert
Solid
Surface
𝐆𝐌_𝐀𝐠𝐠𝐫𝐞𝐠𝐚𝐭𝐞 < 𝐆𝐌_𝐂𝐨𝐦𝐩𝐨𝐬𝐢𝐭𝐞 ≤ 𝐆𝐌_𝐏𝐫𝐢𝐦𝐢𝐭𝐢𝐯𝐞
22
Repair of aggregate models
• Resolve intersection and degeneracies
• Polygon tessellation
• Triangle intersection detection
• Triangle decomposition
• Merge of co-planer triangles
• Eliminate degeneracies
a)
b)
c)
d)
23
Repair requirements for component models
• Geometry
• Water-tight Simple shell (2-manifold)
• Decompose intersecting parts
• Fill holes
• Remove the interior
• Semantics
• Correct ID and ‘BoundedBy’ semantics
• Preserve the correct input semantics
• Deduce the missing semantics
24
Mesh repair
• Local methods
• Zip gaps
• Fill holes
• Etc.
• Global methods
(Barequet, 97)
• Voxels
• Half-space partition
• Octree
• Etc.
(Oomes, 97)
25
Repair using shrink-wrapping
• Emulates the process where a membrane is
shrunk and finally wrapped an object
Input
Decomposition
Heuristic carving
Tetrahedralization
Watertight output
26
Video
• https://vimeo.com/80282908
27
Categorizing triangles
• Fixed triangle
• Imported from the input
• Candidate triangle
• Generated triangles that are
on the hull
• Candidate tetrahedron
• A tetrahedron composed of at
least one candidate triangle
28
Carving operation
• Carve
• Delete a candidate tetrahedron
• Tag all the non-fixed member triangles as candidates
• Keep
• Tag all the member triangles as fixed
29
Topological constraints
• For facets (2-faces)
30
Topological constraints
• For edges (1-faces)
a)
b)
c)
d)
31
Topological constraints
• For vertices (0-faces)
a)
b)
c)
d)
e)
f)
32
Geometric constraints
• The topological constraints treat every face equally, which
exaggerates the influence of tiny error faces.
• The characteristics of the input model have to be
preserved/deduced, such as filling holes.
33
Geometric constraints
• Bounded coplanar facets
1
2
a)
b)
c)
1
2
a)
b)
c)
34
Geometric constraints
• Discard ill-shaped facets
• Judged by the area of a facet
• Preserve the interior tetrahedron
• when the input geometry is correctly oriented
1
1
2
a)
2
a)
b)
b)
c)
c)
35
The proper carving order
• If errors are present on the exterior, the order is
crucial
36
Heuristic carving
• Carve the “corner” first
• Carve the “better known” candidate first
• Carve “evenly”
Configuration
4C 0F
• Heuristics
3C 1F
3C 0F
• Degree of Freedom (DoF)
2C 2F
• Carving profit (Cp)
2C 1F
2C 0F
• Distance from the center
1C 3F
1C 2F
1C 1F
1C 0F
DoF
0
1
1
2
2
2
3
3
3
3
37
CP
4
3
2
2
1
0
1
0
-1
-2
Semantics
Face
decomposition
Inherit the
semantics
Merge the faces
with the same ID
Semantics of a face
New face
Deduce the
semantics
Homogeneous
neighboring
coplanar faces
Heterogeneous
neighboring
coplanar faces
No neighboring
coplanar surfaces
Transplant the
semantics
Transplant the
dominant
semantics
Deduce the
semantics based on
normal
38
Semantics
• Simple rules for LOD2 buildings
Normal direction
Semantics
Threshold
(angle between Z)
Upward
Roof surface,
OuterFloor surface
0 ~ 75 degree
Horizontal
Wall surface
75 ~ 179 degree
Downward
Ground surface,
OuterCeiling surface
179-180 degree
39
Implementation
• CityGML2Poly
• Geometry
• Semantics
• Decomposition
• Triangle-triangle
overlap test [Moller, 97]
• Delaunay triangulation
[Shewchuk, 97]
• Tetrahedralization
• TetGen 1.5 [Si, 2013]
40
• Courtesy to Filip
41
42
Rotterdam CityGML model - WitteDorp
• Total buildings: 232
• Invalid buildings: 232
• Valid buildings after repair: 214 (92%)
43
Rotterdam CityGML model - WitteDorp
44
Rotterdam CityGML model - Nesselande
• Total buildings: 4740
• Invalid buildings: 4276
• Valid buildings after repair: 3972 (82%)
45
Rotterdam CityGML model - Nesselande
46
Discussion
• Valid solid ≠ Correct result
• Most of the result are properly repaired
47
Generalization using Shrink-wrapping
• Courtesy48to Sjors
Repair and Generalization
49
With semantics
50
Summary
• A top-down repair method without introducing
discretization artefacts
• Good constraints and heuristics are essential to
make the smart decision during carving
• The validation result has not been used yet, which
can provide guidance to the repair process
• Semantics are supported
• The repair task is always an ill-posed problem
51
Future work
• Integrate with 3D validator
• Only repair invalid models
• Using the error information provided by 3D
validator
• Build a repair framework
• Repair solids
• then repair the complex
val3dity
Validation of solids according to the international
standard ISO 19107
52
Other activities
• Indoor routing based on weighted voxels (with Liu Liu)
53
Walk mode
Fly mode
Tackle slopes, elevators
• Adaptive voxels
• Finer resolution around slopes
• Routing with multi-sized steps
• Voxels enriched by semantics
• Weighting
56
Acknowledgement
57
I thank you for your attention!
• My new affiliation
• Department of Computer Science and Technology,
Tongji University, Shanghai
58