Transcript of point cloud processing using linear algebra and graph theory
thesis.dviPromotor:
Proefschrift voorgedragen tot
in de ingenieurswetenschappen
Jury:
Prof. Dr. ir. Ph. Dutre
Prof. Dr. ir. K. Meerbergen
Prof. Dr. ir. B. Lauwers
Prof. Dr. M. S. Floater
(University of Oslo, Norway)
Dr. ir. D. Vanderstraeten
in de ingenieurswetenschappen
September 2007
Alle rechten voorbehouden. Niets uit deze uitgave mag worden
vermenigvuldigd en/of openbaar gemaakt worden door middel van druk,
fotokopie, microfilm, elektronisch of op welke andere wijze ook
zonder voorafgaande schriftelijke toestemming van de
uitgever.
All rights reserved. No part of the publication may be reproduced
in any form by print, photoprint, microfilm or any other means
without written permission from the publisher.
D/2007/7515/91
and Graph Theory
Abstract
Modern 3D scanners make it possible to collect large amounts of 3D
data in just a few seconds. This technological progress results in
a growing number of applications ranging from the digitalization of
historical artifacts to facial authentication. In this thesis we
propose a number of novel algorithms for the processing of data
obtained using 3D scanners. Such data is called a point cloud and
it consists of a collection of points sampled from the surface of a
3D object. The proposed algorithms address some fundamental topics
in point cloud processing, i.e. triangulation, smoothing and
boundary extraction. We analyze the algorithms from the viewpoint
of efficiency, practicality and the soundness of the underlying
theory.
Boundary extraction is required in many applications, where it is
useful to know where the holes and exterior boundaries of the point
cloud are situated. Using concepts from graph theory we develop a
novel algorithm for the ex- traction of closed polygonal boundary
loops in point clouds. This boundary information is used by other
algorithms discussed in this thesis.
Another fundamental operation, often performed on point clouds, is
trian- gulation. The result of this operation is a triangular mesh,
which connects the neighboring points with each other in a
consistent way, thereby adding connectivity information to the
point cloud. We discuss two approaches for triangulating point
clouds. One is based on the so-called meshless parameter- ization
technique and the other is called volumetric snapping and relies on
a
iv
volumetric representation of the point data. Each approach has its
advantages and can handle different types of input point clouds.
Meshless parameterization is suitable for point clouds with disc
topology and the volumetric snapping algorithm handles closed point
clouds of arbitrary genus without boundaries.
Smoothing is a frequently used operation on point clouds. It is
required to remove noise and to make further processing easier. In
the last part of the thesis we propose a new smoothing algorithm,
which is formulated as a constrained linear algebra optimization
problem. The advantage of the algorithm is its generality, in the
sense that it can be applied not only to point clouds, but also to
triangulations, plots, curve networks and in general to functions
defined on graphs. The algorithm relies on an efficient least
squares solver and has guaranteed convergence. Furthermore, it
possesses interesting theoretical properties, because of its
connection with the geometry-aware bases and Tikhonov
regularization.
The presented algorithms contribute to the new field of digital
geometry processing and help to address the demand for efficient
point cloud processing techniques.
Preface
Over the last five years, while I was working on my PhD, I
understood two important things, which apply not only to research.
One is that you cannot have everything, and the other is that
everything comes at a price. Although this sounds obvious, it has
deep going consequences, at least for me.
First of all I want to thank my advisor Dirk Roose for supporting
me and giving me all the opportunities I wished for. All these
years Dirk carefully guided me through the academic world and
encouraged me to keep working on the subject. Without his
encouragement this work would not be possible. Also, I would like
to thank Denis Vanderstraeten, who was always there to give
research advice, propose new ideas and provide data for
experiments. Thank you for always very attentively reading my texts
and for providing to the point suggestions.
Furthermore I want to thank Michael Floater for the warm welcome in
Oslo and a very inspiring collaboration. Many aspects of this
thesis are based on Michael’s work and ideas. I am very glad that
Michael is part of the jury. I would also like to thank the people
I met in Oslo, especially the researchers of the geometry group:
Martin Reimers, Atgeirr Rasmussen, Christian Schultz, Johan Seland
and Helge Galdal.
Back in Belgium, I would like to thank Dirk Nuyens and Tim Pillards
whose company I enjoyed very much in the past years. I remember
Dirk teasing me with his repetitive questions: how is your thesis
going? and when are you going to marry? Furthermore, I would like
to thank Kris Demarsin for her valuable help on many occasions and
for co-authoring two papers with me. Also I want to thank the rest
of the PhD people of our research group, some of whom are already
post docs and others are very close to completing their PhD: Pieter
Van Leemput, Hendrik Speleers, Bart Verleye, Tim Boonen, Christophe
Vandekerckhove and Jan Van lent. I thank the members of the jury
for providing feedback and improvements of the text.
A special thanks goes to my old (school) friends: Patrick, Kristof,
Bart, Tom, Johan, Pieter. They are always understanding and helpful
in getting me out of the office.
v
vi PREFACESamoe osnovnoe, hoqu poblagodarit~ moih roditele i
sestru. Bez vasvse to i voobwe sam byli by prosto nemyslimy. Moe
babuxke blagodaren za moral~nu podderku na rasstonii. ta podderka
dlmen mnogo znaqit. Mijn zus Antonia wil ik bedanken voor het
durven onder de scanner te
gaan liggen, zonder zich te laten afschrikken door de mogelijke
risicos. De ‘gezicht’-puntenwolk in deze thesis is het resultaat
daarvan. Magda Engelen wil ik bedanken voor de steun en voor haar
pragmatisch en praktisch advies in moeilijke momenten.
Tim September 2007
Acknowledgement
I wish to thank Bart Adams for providing the data of the solid
‘face-strip’ model [1]. Also I would like to thank Yves Renard for
supplying the ATLAS interface for the GMM++ library. I thank Martin
Reimers for helpful discussions and for providing his software for
inspection of non-manifoldness in triangulations. I thank the CMA,
Oslo, for the use of their 3D scanner to generate the ‘face’,
‘camel’, ‘moose’ and the ‘cycladic head’ point clouds. The ‘bunny’
and ‘dragon’ models are courtesy of Stanford Computer Graphics
Laboratory. The ‘Isis’ model is courtesy of Cyberware. The ‘VW 9K
sheet metal’ point cloud, the ‘curtain mounting brick’ point cloud
and the ‘mobile phone’ point cloud are courtesy of Metris Belgium.
I thank Metris for performing the scans of the ‘mounting bracket’
and the ‘slide bolt’ point clouds. The ‘engine block’ point cloud
is courtesy of BRP-Rotax GmbH & Co. KG.
This work was partly supported by the Onderzoeksfonds K.U.Leuven /
Research Fund K.U.Leuven, project IUAP P5/22 of the Belgian Science
Policy Office.
PREFACE vii
‘The time has come,’ the Walrus said, ‘To talk of many things: Of
shoes – and ships – and sealing-wax – Of cabbages – and kings – And
why the sea is boiling hot – And whether pigs have wings.’
Lewis Carroll, Alice’s Adventures in Wonderland
viii PREFACE
1 Introduction 1
1.1 What is a point cloud? . . . . . . . . . . . . . . . . . . . .
. . . 1 1.2 3D scanning techniques . . . . . . . . . . . . . . . .
. . . . . . 1 1.3 Applications of 3D scanning . . . . . . . . . . .
. . . . . . . . . 2
1.3.1 Reverse engineering . . . . . . . . . . . . . . . . . . . . 2
1.3.2 Digital geometry processing . . . . . . . . . . . . . . . .
4
1.4 Aspects of point cloud manipulation . . . . . . . . . . . . . .
. 5 1.4.1 Triangulation of point clouds . . . . . . . . . . . . . .
. 5 1.4.2 Smoothing of point clouds . . . . . . . . . . . . . . . .
. 7 1.4.3 Boundary extraction from point clouds . . . . . . . . . .
7
1.5 A priori assumptions . . . . . . . . . . . . . . . . . . . . .
. . . 8 1.6 Why exactly these algorithms? . . . . . . . . . . . . .
. . . . . 8 1.7 Contributions and outline . . . . . . . . . . . . .
. . . . . . . . 9
2 Point Cloud Fundamentals 11
2.1 Point clouds . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 11 2.2 Triangulations . . . . . . . . . . . . . . . . . . .
. . . . . . . . 12 2.3 Graph-theoretic definitions and notation . .
. . . . . . . . . . . 12
2.3.1 Basic definitions . . . . . . . . . . . . . . . . . . . . . .
13 2.3.2 Special graphs . . . . . . . . . . . . . . . . . . . . . .
. 13 2.3.3 Connectivity in graphs . . . . . . . . . . . . . . . . .
. . 15 2.3.4 Graphs with a boundary . . . . . . . . . . . . . . . .
. . 15 2.3.5 Mappings defined on graphs . . . . . . . . . . . . . .
. . 16 2.3.6 Matrices associated with graphs . . . . . . . . . . .
. . 16
ix
x CONTENTS
2.4 Geometric and topological properties . . . . . . . . . . . . .
. . 17 2.4.1 Neighborhoods . . . . . . . . . . . . . . . . . . . .
. . . 17 2.4.2 Connectivity structures on point clouds . . . . . .
. . . 18 2.4.3 Tangent plane and normal approximation . . . . . . .
. 19
2.5 Data structures for point clouds . . . . . . . . . . . . . . .
. . . 19 2.5.1 Uniform grid . . . . . . . . . . . . . . . . . . . .
. . . . 20 2.5.2 Sparse matrix representation . . . . . . . . . . .
. . . . 20 2.5.3 Hash grid . . . . . . . . . . . . . . . . . . . .
. . . . . . 20 2.5.4 Octree . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 21 2.5.5 Other data structures . . . . . . . . . .
. . . . . . . . . 21
2.6 Computing neighborhoods using an octree . . . . . . . . . . . .
22
3 Parameterization of Triangulations 23
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 23 3.2 Parameterization of a surface . . . . . . . . . . .
. . . . . . . . 24
3.2.1 Definition . . . . . . . . . . . . . . . . . . . . . . . . .
. 24 3.2.2 Parameterization of triangulations . . . . . . . . . . .
. 24
3.3 Harmonic mappings . . . . . . . . . . . . . . . . . . . . . . .
. 25 3.4 Laplace-Beltrami operator . . . . . . . . . . . . . . . .
. . . . . 26
3.4.1 General considerations . . . . . . . . . . . . . . . . . . .
26 3.4.2 Vertex ring discretizations . . . . . . . . . . . . . . .
. . 27
3.5 Convex combination mappings . . . . . . . . . . . . . . . . . .
29 3.5.1 Definition of a convex combination map . . . . . . . . .
30 3.5.2 Definitions and notation . . . . . . . . . . . . . . . . .
. 30 3.5.3 Properties . . . . . . . . . . . . . . . . . . . . . . .
. . . 31 3.5.4 Computation . . . . . . . . . . . . . . . . . . . .
. . . . 33
3.6 Applications of convex combination maps . . . . . . . . . . . .
34 3.6.1 Parameterization of meshes . . . . . . . . . . . . . . . .
34 3.6.2 Polygonal curve reconstruction . . . . . . . . . . . . . .
36 3.6.3 Triangulation of point clouds . . . . . . . . . . . . . .
. 37
4 One-dimensional Barycentric Representations 41
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 41 4.2 Related work . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 42 4.3 Notation and definitions . . . . . . . . . .
. . . . . . . . . . . . 43 4.4 Theorems . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 43 4.5 Algorithms . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 46 4.6 Discussion and
conclusion . . . . . . . . . . . . . . . . . . . . . 47
5 Extraction of Boundary Loops 49
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 49 5.2 Related work . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 52 5.3 Definitions and notation . . . . . . . . . .
. . . . . . . . . . . . 52
CONTENTS xi
5.4 Overview of the algorithm . . . . . . . . . . . . . . . . . . .
. . 53 5.5 Construction of Gk(B) . . . . . . . . . . . . . . . . .
. . . . . . 54 5.6 The Gabriel subgraph . . . . . . . . . . . . . .
. . . . . . . . . 56 5.7 Construction of Ginner . . . . . . . . . .
. . . . . . . . . . . . . 56 5.8 Biconnect step and Hamiltonian
circuit . . . . . . . . . . . . . 56 5.9 Optimization step . . . .
. . . . . . . . . . . . . . . . . . . . . 59 5.10 Results and
discussion . . . . . . . . . . . . . . . . . . . . . . . 60 5.11
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 60
6 Efficient Triangulation of Point Clouds 65
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 65 6.2 Related work . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 66 6.3 Meshless parameterization approach . . . . .
. . . . . . . . . . 67 6.4 Boundary extraction . . . . . . . . . .
. . . . . . . . . . . . . . 68 6.5 Computation of the
parameterization . . . . . . . . . . . . . . . 69
6.5.1 Calculation of the weights . . . . . . . . . . . . . . . . .
69 6.5.2 Solution of the linear system . . . . . . . . . . . . . .
. 69 6.5.3 Memory analysis . . . . . . . . . . . . . . . . . . . .
. . 70
6.6 Experimental results . . . . . . . . . . . . . . . . . . . . .
. . . 71 6.7 Conclusion . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 73
7 Triangulation of Point Clouds with Holes 77
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 77 7.2 Related work . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 78
7.2.1 Meshless parameterization approach . . . . . . . . . . . 78
7.3 Convex combination parameterization . . . . . . . . . . . . . .
79
7.3.1 Convex combination mapping . . . . . . . . . . . . . . . 79
7.3.2 Choice of weights and neighborhoods . . . . . . . . . . . 79
7.3.3 Parameterization of non-convex holes . . . . . . . . . . 79
7.3.4 Algebraic approach . . . . . . . . . . . . . . . . . . . . .
81
7.4 Approximating S geometrically . . . . . . . . . . . . . . . . .
. 83 7.4.1 Mapping boundaries to the plane . . . . . . . . . . . .
. 83 7.4.2 Computation of the weights . . . . . . . . . . . . . . .
. 84 7.4.3 Insertion of virtual points . . . . . . . . . . . . . .
. . . 86 7.4.4 Summary of the virtual point insertion approach . .
. . 87
7.5 Experimental results . . . . . . . . . . . . . . . . . . . . .
. . . 88 7.6 Conclusion . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 88
8 Volumetric Snapping 91
8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 91 8.2 Related work . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 94 8.3 Overview . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 94 8.4 Delaunay cover . . . . . . . . . . .
. . . . . . . . . . . . . . . . 95
xii CONTENTS
8.5 Voxelization of the Delaunay cover . . . . . . . . . . . . . .
. . 95 8.5.1 Refinement of the Delaunay cover . . . . . . . . . . .
. 95 8.5.2 Voxelization of the refinement . . . . . . . . . . . . .
. . 96
8.6 Triangulation of the voxel grid surface . . . . . . . . . . . .
. . 97 8.6.1 The contouring algorithm . . . . . . . . . . . . . . .
. . 97 8.6.2 Contouring cropped grids . . . . . . . . . . . . . . .
. . 98
8.7 Snapping . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 99 8.7.1 Delaunay triangulation . . . . . . . . . . . . . . .
. . . . 99
8.8 Clean-up . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 101 8.9 Optimization . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 101 8.10 Results and discussion . . . . . . . . .
. . . . . . . . . . . . . . 102 8.11 Conclusion . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 103
9 Smoothing of Point Clouds 109
9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 109 9.2 Notation and definitions . . . . . . . . . . . . .
. . . . . . . . . 110
9.2.1 Generalized discrete Laplacian . . . . . . . . . . . . . .
110 9.2.2 Smoothing using Tikhonov regularization . . . . . . . .
111
9.3 Related work . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 112 9.4 Construction of the Laplacian matrices . . . . . . .
. . . . . . . 113
9.4.1 Generalized Laplacian matrix variants . . . . . . . . . . 113
9.4.2 Construction of L from polygons . . . . . . . . . . . . . 114
9.4.3 Construction of L from triangular meshes . . . . . . . . 115
9.4.4 Construction of L from point clouds . . . . . . . . . . .
115
9.5 Tikhonov regularization viewpoint . . . . . . . . . . . . . . .
. 116 9.5.1 Low pass filtering . . . . . . . . . . . . . . . . . .
. . . . 116 9.5.2 Convergence properties . . . . . . . . . . . . .
. . . . . 117
9.6 Determination of the regularization parameter . . . . . . . . .
. 118 9.6.1 Constraint on the sum of squared errors . . . . . . . .
. 118 9.6.2 Determination of λ using GSVD . . . . . . . . . . . . .
119 9.6.3 Determination of λ using rational interpolation . . . . .
119
9.7 Solution of the least squares system . . . . . . . . . . . . .
. . 120 9.7.1 Normal equations . . . . . . . . . . . . . . . . . .
. . . . 120 9.7.2 Condition number of the normal system . . . . . .
. . . 121
9.8 Applications . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 121 9.8.1 Smoothing of polygonal curves and curve networks
. . . 122 9.8.2 Smoothing of point clouds and meshes . . . . . . .
. . . 122 9.8.3 Smoothing of histograms . . . . . . . . . . . . . .
. . . 124 9.8.4 Minimal surfaces . . . . . . . . . . . . . . . . .
. . . . . 125 9.8.5 The parameterization transformation . . . . . .
. . . . . 126 9.8.6 Averaging of point clouds . . . . . . . . . . .
. . . . . . 126
9.9 Smoothing with max-norm constraints . . . . . . . . . . . . . .
128 9.10 Conclusion . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 130
CONTENTS xiii
10 Conclusion 133
10.1 General considerations . . . . . . . . . . . . . . . . . . . .
. . . 133 10.2 Strengths and weaknesses of the proposed algorithms
. . . . . . 134 10.3 Contributions . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 135 10.4 Future work . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 137
A Appendix 139
A.1 Theoretical sampling bounds . . . . . . . . . . . . . . . . . .
. 140 A.1.1 Circular Boundary . . . . . . . . . . . . . . . . . . .
. . 140 A.1.2 Boundaries with corners . . . . . . . . . . . . . . .
. . . 141
A.2 Practical corollary . . . . . . . . . . . . . . . . . . . . . .
. . . 142
List of Figures
1.1 Surface reconstruction process: from a point cloud to a mesh .
4 1.2 Different kinds of surfaces . . . . . . . . . . . . . . . . .
. . . . 7
2.1 Surface triangulation . . . . . . . . . . . . . . . . . . . . .
. . . 14 2.2 Special graphs . . . . . . . . . . . . . . . . . . . .
. . . . . . . 16 2.3 Neighborhoods on point clouds . . . . . . . .
. . . . . . . . . . 18 2.4 Octree data structure . . . . . . . . .
. . . . . . . . . . . . . . 21
3.1 Parameterization ψ of a surface S . . . . . . . . . . . . . . .
. 25 3.2 Angles in a 1-ring neighborhood . . . . . . . . . . . . .
. . . . 29 3.3 Illustration of Tutte’s theorem for a 3-connected
planar graph
represented by a triaugmented triangular prism . . . . . . . . . 32
3.4 Parameterization of a mesh . . . . . . . . . . . . . . . . . .
. . 35 3.5 Dividing edge . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 36 3.6 Neighbors for curve reconstruction . . . . . .
. . . . . . . . . . 37 3.7 Reconstruction of the noisy Fermat’s
spiral . . . . . . . . . . . 38
4.1 Example of a circuit decomposable graph . . . . . . . . . . . .
43 4.2 Hamiltonian circuit extraction . . . . . . . . . . . . . . .
. . . . 47
5.1 Opening angle criterion . . . . . . . . . . . . . . . . . . . .
. . 50 5.2 Comparison of boundary loop extraction approaches . . .
. . . 51 5.3 Incomplete boundary extraction using the MSG approach
. . . 52 5.4 Separating plane of an inner edge . . . . . . . . . .
. . . . . . . 54 5.5 Illustration of the boundary loop extraction
algorithm . . . . . 55 5.6 Biconnecting sharp corners . . . . . . .
. . . . . . . . . . . . . 58 5.7 Essential edges . . . . . . . . .
. . . . . . . . . . . . . . . . . . 60 5.8 Face and camel examples
. . . . . . . . . . . . . . . . . . . . . 62 5.9 Rotax boundary
extraction . . . . . . . . . . . . . . . . . . . . 63
6.1 HALF DRAGON point cloud and the detected boundary points
grouped in clusters . . . . . . . . . . . . . . . . . . . . . . . .
. 68
xv
xvi LIST OF FIGURES
6.2 Parameterization matrices and their reordering . . . . . . . .
. 70 6.3 Graph of the timing results . . . . . . . . . . . . . . .
. . . . . 73 6.4 Meshless parameterization of the HALF DRAGON point
cloud 74 6.5 FACE STRIP point cloud and its reconstruction . . . .
. . . . 75
7.1 Point clouds with non-convex holes . . . . . . . . . . . . . .
. . 78 7.2 Three cases of projected neighborhoods . . . . . . . . .
. . . . 80 7.3 Graphical description of the partitioned points in
the parameter
domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 81 7.4 Real and virtual neighborhoods . . . . . . . . . . . . . .
. . . . 84 7.5 Triangulations resulting from different
parameterization tech-
niques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 85 7.6 Insertion of virtual points using the Weatherill-Hassan
algorithm 86 7.7 Overview of the virtual point insertion approach .
. . . . . . . 87 7.8 Triangulation of the mounting brick point
cloud . . . . . . . . . 89 7.9 Triangulation of the slide bolt
point cloud . . . . . . . . . . . . 90
8.1 Four main steps of the volumetric snapping algorithm . . . . .
92 8.2 Refinement of the Delaunay cover . . . . . . . . . . . . . .
. . . 96 8.3 Triangulation of the voxel grid surface . . . . . . .
. . . . . . . 97 8.4 The four cases for the tracing algorithm. . .
. . . . . . . . . . . 98 8.5 Tracing contours in 2D . . . . . . . .
. . . . . . . . . . . . . . . 98 8.6 Snapping approach converges to
a Delaunay triangulation . . . 100 8.7 The three possible
configurations in the snapping algorithm . . 100 8.8 Collapse of a
non-manifold edge . . . . . . . . . . . . . . . . . . 101 8.9
Illustration of how the smooth-snap iteration resolves folded
triangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 102 8.10 Statistics for the Moose point cloud . . . . . . . . .
. . . . . . 104 8.11 Triangulation of the Cycladic Head point cloud
. . . . . . . . . 105 8.12 Triangulation of the Mannequin point
cloud . . . . . . . . . . . 106 8.13 Timings for the volumetric
snapping algorithm . . . . . . . . . 107
9.1 Physical interpretation of the equation (9.3) as a mass-spring
system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 112
9.2 Geometric interpretation of the reciprocal weights for a
polygo- nal curve . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 115
9.3 Smoothing of a noisy non-uniformly sampled circle . . . . . . .
116 9.4 Corner preserving smoothing of a noisy square . . . . . . .
. . 116 9.5 Power spectrum of the COW mesh . . . . . . . . . . . .
. . . . 117 9.6 Plot of the filter factors γi . . . . . . . . . . .
. . . . . . . . . . 118 9.7 SSE graph with the rational
approximation R(x) . . . . . . . . 120 9.8 Table of the comparative
results of the CHOLMOD solver . . . 121 9.9 Smoothing of polygonal
curve networks . . . . . . . . . . . . . 122
LIST OF FIGURES xvii
9.10 Smoothing of Escher’s lizard . . . . . . . . . . . . . . . . .
. . . 123 9.11 Smoothing of a noisy Fermat’s spiral with different
smoothing
parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 123 9.12 Comparison between bilateral smoothing, normalized
Laplacian
smoothing and feature preserving Laplacian smoothing . . . . . 124
9.13 Smooth approximations of a histogram . . . . . . . . . . . . .
. 125 9.14 The limit case of smoothing: minimal surface . . . . . .
. . . . 126 9.15 Transformation of the dragon . . . . . . . . . . .
. . . . . . . . 127 9.16 Illustration of the smooth average of two
point clouds . . . . . 128 9.17 Smooth average of two soda bottles
. . . . . . . . . . . . . . . . 129 9.18 Turbine blade section
smoothing with max-norm constraints . . 130
A.1 Detection of a circular boundary . . . . . . . . . . . . . . .
. . 140 A.2 Detection of sharp angles . . . . . . . . . . . . . . .
. . . . . . 142
xviii LIST OF FIGURES
List of Algorithms
1 HAMILTONIAN CYCLE . . . . . . . . . . . . . . . . . . . . . . . .
46 2 TEST OUTERPLANAR . . . . . . . . . . . . . . . . . . . . . . .
. . 46 3 Boundary loops extraction algorithm . . . . . . . . . . .
. 53 4 BARYCENTRIC BICONNECT . . . . . . . . . . . . . . . . . . .
. . . 57 5 Weatherill-Hasan Refinement algorithm . . . . . . . . .
. . 86 6 Volumetric snapping algorithm . . . . . . . . . . . . . .
. . 94
xix
KNN-graph k-nearest neighbors graph PDE Partial Differential
Equation SVD Singular Value Decomposition GSVD Generalized Singular
Value Decomposition MST Minimum Spanning Tree MSG Minimum Spanning
Graph CAD Computer Aided Design PCA Principal Components Analysis
MDS Multidimensional scaling CT Computed tomography
Notation
n number of points in the point cloud s number of dimensions R the
set of real numbers pi point in R
s, represented by a s× 1 column vector P point cloud {pi}n
1
S connected compact smooth surface P n × s matrix of point
coordinates, i.e., P =
[p1, p2, ..., pn]
S Schur complement matrix B B ⊂ P is the set of boundary vertices
in P Π ordered set of vertices of a polygon in the plane B |Π| × 2
matrix of the coordinates of the vertices of
polygon Π
xxii NOTATION
Laplace operator S Laplace-Beltrami operator on surface S ∇
gradient operator L generalized Laplacian matrix Li is the ith row
of L Pi is the ith row of P Lij the element of L on the i-th row
and the j-th column Ni neighborhood of pi in P Ii the index set of
the neighbors of pi in P , i.e., Ii =
{j | pj ∈ Ni} V (G) the vertex set of graph G E(G) the edge set of
graph G |V (G)| cardinality of the set ⌊·⌋ floor function, rounds a
real number to the nearest
smaller integer φ convex combination function conv(·) convex hull
Gk(P) k-nearest neighbors graph defined on the point cloud
P N(pi) normal vector in point pi
κ mean curvature H(pi) mean curvature normal at pi
0m×n all zeros matrix of dimension m× n 1n all ones column vector
of length n diag(ω1, ..., ωn) diagonal matrix, with the elements ωi
on its diagonal L2 two-norm of matrix L LF Frobenius norm of matrix
L Lmax entry-wise maximum norm, i.e., maxij Lij Ck class of
functions for which the partial derivatives of
orders up to and including k exist and are continuous
Chapter 1
1.1 What is a point cloud?
A point cloud is a collection of points in space representing an
object. It is a very basic discrete representation, essentially
specifying the geometry of the object, by sampling it at certain
positions. Typically, point clouds are generated using 3D scanners.
However, point clouds can also be software- generated, e.g., as a
result of the conversion of a CAD model to a point cloud or as a
result of an operation yielding a new point cloud [1, 93]. Although
the algorithms presented in this thesis are to some extent
applicable to both types of point clouds, we mainly concentrate on
the point clouds obtained using a measurement device.
Despite the fact that in practice the sample points produced by a
3D scanner are measured with some regularity, the points in a point
cloud are typically not assumed to have any particular structure.
The reason for this, is to make the algorithms operating on point
clouds, as general as possible, not depending on the scanner or the
way the object was scanned. Obviously, efficient processing of such
unorganized point clouds is a central issue in all 3D scanning
applications.
Most 3D scanners measure the points on the surface of the object.
And in this thesis we are mostly concerned with point clouds, where
points represent a sampling of a non self-intersecting
surface.
1.2 3D scanning techniques
There are various ways of obtaining point clouds of 3D objects.
Depending on the size of the object, its geometry and the required
precision of the scan, different approaches are used. Measurement
devices based on tactile measure- ment, measure points on the
surface of an object by touching it with a touch
1
2 CHAPTER 1. INTRODUCTION
probe. Although very precise, contact based measuring systems are
typically slow. Somewhat less accurate, but significantly faster,
are laser based systems, which project a laser beam on the object
and use the triangulation principle to derive the distance to the
object. Structured light scanners project an entire 2D pattern onto
the object and calculate the 3D surface points by analyzing the
deformation of the pattern. The advantage of structured light
scanners is their speed, so that they can be used to scan moving
and deforming objects.
Laser radars belong to the class of scanning systems which
calculate dis- tances based on the time-of-flight of a signal. The
signal is a laser pulse, and the time-of-flight is the time it
takes the laser pulse to travel back and forth between the scanner
and the object. Radar systems are used to scan large or distant
objects, such as buildings and mountains, to monitor glaciers and
to record topographic information. Computed tomography (CT)
scanners use X-rays to build a point cloud. Contrary to all the
other scanners, they can be used to scan solid objects containing
hollow parts, such as engine blocks and internal organs of a human.
Finally, there are the photogrammetry based systems, which
reconstruct 3D scenes from multiple pictures, captured by a camera
from different viewpoints. These systems are often used in the
film- making industry and in architectural applications.
1.3 Applications of 3D scanning
Since the recent advancements of 3D scanning systems, there has
been a grow- ing number of exciting applications, ranging from
non-contact facial authen- tication and special effects in films,
to rapid prototyping and construction metrology. Other applications
include inspection and quality control, where a manufactured part
is compared with its intended design CAD model. Numer- ical
simulation using finite elements can be performed on the scanned
models, e.g., the simulation of the aerodynamic flows inside and
outside of an object. Scanned models are used in computer graphics
to render realistic scenes and in the film animation
industry.
In the following section we discuss in more detail a classical
application of 3D scanning, called reverse engineering. We review
this application, because it involves the representative operations
on point clouds, which are most relevant for this thesis.
1.3.1 Reverse engineering
Reverse engineering is the process of converting a 3D point cloud
into a bound- ary representation CAD model. Such a CAD model can
then be used to reproduce an object of which only one physical
prototype is available. It may also be used to re-engineer objects,
i.e., to create an improved version
1.3. APPLICATIONS OF 3D SCANNING 3
of already existing products. Moreover, the reverse engineering
process can be used to obtain an initial design model from a
prototype such as a clay model of a car. The ultimate aim of
reverse engineering is to obtain a model of a physical object,
which can be analyzed and modified.
The reverse engineering process consists of a number of steps,
roughly in the order of the following list.
1. Data capture.
3. Triangulation.
5. Segmentation.
6. Surface fitting and beautification.
Each of these steps is a research topic on its own. The first step
refers to the process of scanning a physical object. This step
involves the set up and calibration of the scanner and the
preparation of the object to be scanned by, e.g., painting it with
diffuse paint to aid the scanner. Usually, the 3D object cannot be
scanned entirely with one scan. Occluded areas need to be scanned
from different viewpoints, resulting in a lot of partial scans of
the object, which need to be combined into one point cloud. This is
what happens during the registration step. In the triangulation
step a manifold triangular mesh is created from the point cloud
obtained in the first two steps. Such a mesh can be viewed as a
triangular net wrapped around the point cloud in such a way that it
does not intersect itself, and the vertices of each triangle are
the sample points in the point cloud (see figure 1.1(c)).
The triangulation obtained as a result of the first three steps of
the reverse engineering process may contain holes, due to
undersampled regions or because of noise. To accurately perform the
segmentation step it is often necessary to smooth the mesh and fill
the missing data. Also, reducing the mesh size (simplification) may
accelerate the subsequent steps and decrease memory usage. It
should be noted that, depending on the application, step 4 can take
place before step 3, as operations such as smoothing and
simplification can be performed directly on point clouds. The
segmentation step tries to solve the difficult problem of
determining the regions of the mesh which can be best approximated
by a single patch in the reconstructed CAD model. During the
surface fitting step, a continuous surface is fitted to each
segmented region. Finally, the beautification step enforces a
number of constraints (e.g., G2 or G3-continuity) between the
surfaces.
4 CHAPTER 1. INTRODUCTION
(a) (b) (c)
Figure 1.1: Piecewise linear surface reconstruction process: (a) a
photo of the whopping top model; (b) the point cloud produced by a
laser scanner; (c) manifold triangulation of the point cloud
(obtained using the algorithm from chapter 8).
The algorithms presented in this thesis address several subproblems
of the reverse engineering process. First of all, we devote three
chapters to the triangulation step and the computation of
parameterizations of point clouds, which can be used for surface
fitting and meshing. Furthermore, we address the issue of boundary
extraction from point clouds and propose a smoothing algorithm
applicable to general discrete data. Figure 1.1 illustrates the
first three steps of the reverse engineering process. The
triangulation in figure 1.1(c) was obtained using a meshing
algorithm presented in chapter 8.
1.3.2 Digital geometry processing
While the original aim of reverse engineering is to obtain a good
CAD model of a physical object, many applications do not need to go
that far. Applications such as visualization, inspection, finite
elements, rapid prototyping and even editing can be performed
efficiently on the mesh representation of the object, requiring
only the first three steps of the reverse engineering process. From
the scientific point of view the growing popularity of a discrete
mesh representa- tion of surfaces raises the need for discrete
differential geometry of arbitrary triangulations. However,
defining such notions as a normal, curvature and the
Laplace-Beltrami operator for triangulations is non-trivial and not
well defined in the sense that these concepts can be defined in
various ways. Moreover, one has to be careful when viewing the
continuous case as the limit case of finer and finer
discretizations, because the discrete properties such as curvature,
normals and area do not necessarily converge to their continuous
counterparts [57, 61]. The convergence of discrete concepts depends
on how the mesh is refined.
In the last decade, efforts have been made to devise discrete
algorithms for
1.4. ASPECTS OF POINT CLOUD MANIPULATION 5
mesh processing by extending the classical image processing
techniques such as downsampling, upsampling, smoothing, filtering
and multiresolution editing to the mesh case [59, 95, 112]. This
generalization of signal processing algorithms is not
straightforward, because triangle meshes are irregular, compared to
2D images, which are sampled on a perfectly regular grid. These
difficulties of defining differential geometry concepts and signal
processing theory for meshes have led to an even larger interest of
the scientific community, in particular people working in computer
graphics and applied mathematics. Over the years, the successes in
this area have resulted in a new research domain nowadays often
called digital geometry processing. This can be seen as a natural
development after the digital signal processing theory for digital
images in the 80’s and digital video in the 90’s.
1.4 Aspects of point cloud manipulation in this
thesis
1.4.1 Triangulation of point clouds
While there are upcoming techniques for manipulating point data
directly [95, 111], many digital geometry processing algorithms
still rely on the mesh representation of a 3D model. Therefore, the
creation of a triangular mesh from a scanned point cloud is a very
important problem, often referred to as the polygonal surface
reconstruction problem or meshing. Triangulations define a globally
consistent connectivity structure, making them easier to work with,
compared to point clouds. In addition, they can be viewed as
continuous piecewise linear approximations to the surface.
Triangulations naturally inherit nice theoretical properties:
viewing a triangulation as a triangulated graph makes it possible
to apply ideas from graph theory, and by treating it as a piecewise
linear function, we enter the well established theory of finite
elements.
The meshing problem is in general ill-posed [114], in the sense
that there is no definition of what the solution should be. The
original surface is only given at a discrete number of points, so
the solution is not unique. Despite this fact, it is obvious that
the triangulation should approximate the surface well, both in
geometrical and topological sense. Attempts to give a solid
mathematical theory to define what should be a correct
reconstruction, impose conditions on sampling density of the
surface [30]. These definitions however, restrict to smooth
surfaces, because near sharp corners the required sampling density
approaches infinity. The practical usefulness of the sampling
requirement is further limited by issues such as noise and
undersampling.
Depending on the topology and geometry of the point cloud, many
methods for constructing a triangulation have been proposed in the
literature. We can distinguish four main approaches.
6 CHAPTER 1. INTRODUCTION
1. Implicit methods compute a signed distance function from which
the triangulation is extracted by iso-surfacing methods [18, 21,
63, 92]. More recent developments include algorithms based on
unsigned distance [66] and wrapping approaches such as [68,
73].
2. 3D Delaunay triangulation based methods with provable
mathematical properties have been presented in [5, 31, 54].
3. Advancing front algorithms construct the triangulation locally
while keep- ing it globally consistent [13, 102].
4. Meshless parameterization based methods yield interpolatory
triangula- tions by computing the parameterization of the points in
the plane or on the sphere [46, 65, 125].
In this thesis we focus on the meshless parameterization methods
and propose a new surface reconstruction method related to the
unsigned distance and wrapping approaches. We consider three
different kinds of input: point data sampled from a surface with
disc topology, genus-0 point clouds with holes, and point clouds
sampled from closed surfaces of arbitrary genus (see figure
1.2).
The reconstruction techniques for point clouds with disc topology
are based on the work of Floater and Reimers [46], which in turn is
based on the param- eterization technique originally applied to
meshes [40]. Their method recon- structs a triangulated surface
from genus-0 point clouds with a single boundary. It is based on
the so-called meshless parameterization of the point cloud, where
the triangulation of the original point cloud is obtained by
triangulating the parameter points in the plane. The
parameterization of point clouds proceeds according to a linear
algorithm, in which two linear systems are solved to obtain an
embedding of the 3D data in the plane. The involved linear systems
define a convex combination mapping with a boundary condition,
i.e., the boundary of the point cloud is mapped to a convex polygon
in the plane. We will give an overview of the topic of
parameterization and convex combination mappings in chapter
3.
Although conceptually simple, the meshless parameterization method
in- volves the extraction of the boundaries of the point cloud as a
first step. This kind of feature extraction is a non-trivial
problem, which is addressed in chapters 4 and 5. Furthermore, to
compute the embedding for a large number of points we need to
construct and solve the required linear systems with hundreds of
thousands unknowns very efficiently. This issue is addressed in
chapter 6.
In chapter 7 we extend the meshless parameterization method to
point clouds with multiple non-convex boundaries and we propose an
algorithm to decrease distortion near the boundaries in the
parameter domain. In chapter 8 we propose a new algorithm, called
volumetric snapping, to triangulate point
1.4. ASPECTS OF POINT CLOUD MANIPULATION 7
(a) (b) (c)
Figure 1.2: Different kinds of surfaces: (a) genus-0 surface with a
boundary; (b) genus-0 surface with multiple boundaries; (c) genus-2
closed surface (double torus).
clouds sampled from closed surfaces of arbitrary genus, without
holes. For these types of point clouds, the meshless
parameterization approach cannot be applied, therefore the
volumetric snapping algorithm is based on a different idea. The
point cloud is first approximated on a volumetric grid.
Subsequently, the surface of the grid is triangulated and snapped
to the point cloud. This wrapping-like approach can handle
arbitrary genus surfaces, but cannot be applied in the presence of
holes.
1.4.2 Smoothing of point clouds
Smoothing is an important and often used operation on point clouds.
Smooth- ing methods attenuate high frequency noise, thereby
improving the accuracy of various derived shape properties such as
normals and curvatures. Smoothing also makes the tasks of
triangulating a point cloud and surface fitting easier.
In chapter 9 of this thesis we propose a new smoothing algorithm,
which is based on the concept of regularization of the measured
data. Given a (noisy) point cloud it searches for a new point cloud
which does not deviate too much from the original and is as smooth
as possible according to some smoothness criterion. In some
applications it is not desirable to eliminate all the high
frequencies of the signal, because in that case the features in the
data are often lost. In point clouds such features are sharp edges
and high curvature regions, which are preserved by so-called
anisotropic smoothing methods. The proposed smoothing method
supports both the isotropic and anisotropic smoothing
approaches.
1.4.3 Boundary extraction from point clouds
Boundary extraction is a basic pre-processing step for a number of
algorithms. It includes the identification of boundary points in
the point cloud and the or- ganization of these points into 3D
polygons. Such boundary information can be
8 CHAPTER 1. INTRODUCTION
used for hole filling, to guide the scanning process,
visualization, triangulation and surface fitting.
In chapter 5 we propose a new algorithm for the construction of
polygonal boundary loops from the boundary points. It is based on
graph theory and the fact that the boundaries of a compact surface
S form a collection of closed curves. In graph theoretic terms
these curves are defined as the Hamiltonian circuits in a certain
graph structure built from the boundary points.
1.5 A priori assumptions
All geometry processing algorithms rely on some kind of assumptions
about the data. This is also the case for the algorithms presented
in this thesis. For instance, the boundary extraction algorithm
(chapter 5) assumes that the boundary loops are Hamiltonian
circuits in a certain geometric graph. Surface reconstruction
algorithms in chapters 6 and 7 rely on the parameterization of a
point cloud, requiring the underlying surface to be homeomorphic to
a disc. The volumetric snapping algorithm, described in chapter 8,
assumes that the point cloud is closed and does not have any
boundaries. The smoothing method in chapter 9 has different
variants: the L(n)-smoothing assumes the isotropic smoothing
approach and the L(f)-smoothing represents the anisotropic ap-
proach, because it does not smooth across sharp features.
Furthermore, the boundary extraction and triangulation algorithms
in chap- ters 5-7 implicitly assume sufficient density of the
sampled points, because it heavily influences the quality of the
neighborhoods. The often used Delaunay neighborhoods are derived
from the local projection on the tangent plane, which is estimated
using the principal components analysis (PCA). Therefore, the
quality of the Delaunay neighborhoods depends on the accuracy of
the tangent plane estimation. It is well known that for sharp
corners the PCA estimation is unreliable and can result in an
incorrect projection. To guarantee valid Delaunay neighborhoods the
point cloud needs to be smooth and sufficiently densely sampled in
the regions of high curvature.
Note that the volumetric snapping triangulation algorithm uses the
notion of the Delaunay cover, which is also constructed from
Delaunay neighborhoods. However, here the correct estimation of the
tangent plane is less important, as long as the cover produces a
sufficiently dense barrier, separating the inside from the
outside.
1.6 Why exactly these algorithms?
In this section we explain the motivation behind the development of
the algo- rithms presented in this thesis, and the connection
between them.
1.7. CONTRIBUTIONS AND OUTLINE 9
The research leading to this thesis, started with an investigation
into the meshless parameterization method. The first results of
this research are given in chapter 6. During the implementation of
this approach two things became clear. First, it seemed to be
possible to extend the meshless parameterization approach to point
clouds with multiple boundaries. Second, the boundary extraction
problem was (and still is) not fully explored and therefore needed
further investigation. The attempt to solve the first problem is
presented in chapter 7. To solve the second problem it was very
tempting to use the one- dimensional version of the meshless
parameterization approach to organize the boundary points into
loops (as explained in 3.6.2). This idea would result in an elegant
triangulation algorithm, as the boundary extraction would be
performed using the 1D version of the meshless parameterization
approach, and the actual parameterization using the 2D version.
Unfortunately, the original one-dimensional approach for polygonal
curve reconstruction was proposed only for open curves. Extending
it to closed curves appeared to be a non-trivial issue. Eventually,
the search resulted in a somewhat different approach, still
involving one-dimensional parameterization, but based on concepts
from graph theory. This approach is explained in chapters 4 and
5
All chapters, except chapter 8 (which was joint work with prof. M.
Floater), rely heavily on the notion of discrete Laplacian
operator. In fact, both the boundary extraction algorithms and the
meshless parameterization methods, essentially compute the solution
of the (generalized) Laplace equation with Dirichlet boundary
conditions. This observation forms the connection of the meshless
parameterization approach with the smoothing method, proposed in
chapter 9. The smoothing algorithm also solves the Laplace
equation, but with a different type of constraints, which are
satisfied in a least-squares sense. In terms of linear algebra, it
can be seen as the linear regularization of the discrete Laplace
operator in the Tikhonov sense.
1.7 Contributions and outline
Point cloud representations of 3D objects obtained using 3D
scanners require efficient data structures and algorithms based on
a sound mathematical theory. This thesis is an attempt to partially
address these issues. We do not aim to provide an exhaustive
exposition to the subject, nor do we strive to create a unified
approach, which would work on all thinkable inputs. We rather
propose a number of useful, efficient and relatively easy to
understand algorithms, each suitable for a particular kind of input
point data.
In this thesis we focus on the problems of triangulating point
clouds, smooth- ing and boundary extraction. We give an overview of
the main contributions of this work, structured by chapter.
1. Chapter 2 and 3 are introductory. In these chapters we introduce
the
10 CHAPTER 1. INTRODUCTION
most important notions used in this thesis. In particular, chapter
2 is about point clouds. It defines the basic notions of
neighborhoods, normals and connectivity, and gives an overview of
the data structures, used to store point clouds. Chapter 3
describes the notion of a parameterization of a point cloud and its
triangulation. Furthermore it introduces the discrete
Laplace-Beltrami operator, which is extensively used throughout the
thesis.
2. In chapter 4 we present a one-dimensional analogue of Tutte’s
theorem on 3-connected graphs. This 1D version results in two
conceptually very simple algorithms which can be applied to
outerplanar graphs to extract the unique Hamiltonian circuit and to
test whether a given graph is outerplanar. We use these algorithms
in chapter 5 during the boundary extraction process.
3. In chapter 5 we propose a new algorithm for the extraction of
closed boundary loops from point clouds. We use this algorithm in
chapters 6 and 7 to compute a meshless parameterization of the
point cloud.
4. In chapter 6 we provide an efficient way of computing the
meshless parameterization of a point cloud.
5. In chapter 7 we provide an extension of the original meshless
parameter- ization approach to point clouds with non-convex
boundaries.
6. In chapter 8 we propose a new wrapping-like approach to meshing,
which works on arbitrary genus closed point clouds.
7. Chapter 9 addresses the smoothing problem. We propose a
constrained Laplacian smoothing algorithm with a global deviation
constraint, similar to the approach followed by the smoothing
spline literature. The algo- rithm is formulated as an optimization
problem, which can be viewed as the Tikhonov regularization
process. We illustrate our smoothing algorithm with a number of
applications.
8. Finally, in chapter 10 we provide concluding remarks regarding
the work presented in the thesis.
Chapter 2
Point Cloud Fundamentals
As point clouds and their triangulations play a central role in
this thesis, we give some definitions and describe the fundamental
techniques for storing and processing this kind of discrete
data.
2.1 Point clouds
As already noted in the first chapter, a point cloud is the result
of a scanning process. To clearly state what we mean by a point
cloud in this thesis, we provide the following definition.
Definition 2.1 (Point cloud). A point cloud P is an unordered
collection of points {pi}n
i=1 in 3D Euclidean space, resulting from scanning of an object and
representing the surface of that object.
Mathematically, it is convenient to think of a point cloud as a
collection of points, sampled with sufficient density from some
compact and connected smooth surface S [31]. In fact, any
theoretical analysis of an algorithm oper- ating on point clouds,
needs to make assumptions about the sampling density. Otherwise it
is impossible to guarantee that the geometry and topology of the
original object is preserved.
In practice however, the mathematical viewpoint is often too
idealistic. The points in the point cloud are measured with some
error, resulting in a sampling of points near the surface, rather
than perfectly on it. Furthermore, the sampling density can vary
noticeably, depending on how the object was scanned. These
observations significantly complicate point cloud processing
algorithms and their analysis.
Sometimes it is convenient to use the term point cloud to refer to
a collec- tion of points describing a curve in space. In
applications such as boundary
11
12 CHAPTER 2. POINT CLOUD FUNDAMENTALS
extraction (see chapter 5), it is natural to view the set of
boundary points, which is a subset of the original point cloud, as
if they were sampled from a (closed) curve.
2.2 Triangulations
In computer graphics, triangulations and meshes are often used
interchangeably to mean the same. This is due to the fact that
triangular structures are most efficiently processed by current
graphics hardware. Strictly speaking, while the basic building
block of a triangulation is a triangle, meshes do not have to be
necessarily triangular. Throughout this thesis however, we will use
the term mesh and triangulation as synonyms.
A very general definition of a triangulation in space is the one
due to Schumaker in [103]:
Definition 2.2 (Triangulation). A collection T = {Ti}N i=1 of
triangles in 3D
space is called a triangulation of a compact surface S provided
that
1. any pair of triangles intersect in at most one common vertex or
along a common edge, and
2. the union of all the triangles in T is a connected set in 3D
space.
In the applications we are dealing with point clouds sampled from
the surface of an object and in this setting the above definition
is too general, because it allows self-intersecting (non-manifold)
surfaces. In practice we would like a triangulation of the point
cloud to be a valid triangulation of the surface and therefore the
following more restrictive definition of a triangulation is the one
we are interested in.
Definition 2.3 (Manifold triangulation). A topologically manifold
triangula- tion is a triangulation having the following
properties:
1. the collection of triangles sharing one common vertex form a fan
of triangles homeomorphic to a disc, and
2. each edge is shared by at most two triangles.
An example of a manifold triangulation is shown on figure
1.1(c).
2.3 Graph-theoretic definitions and notation
Graph theory plays an important role in many algorithms for digital
geometry processing and in particular in point cloud processing
algorithms presented in this thesis. In the following section we
will show that it is convenient to
2.3. GRAPH-THEORETIC DEFINITIONS AND NOTATION 13
represent the connectivity of a point cloud or a triangulation in
terms of a graph. We also need some graph notation in chapter 3,
where we provide theoretical results concerning the
parameterization of triangulations and point clouds. All the
proposed algorithms for triangulating point clouds, smoothing and
especially boundary extraction use notions from graph theory.
The purpose of this section is to give the necessary
graph-theoretic notation and definitions which will be used
throughout this work. To this end, we will generally follow the
notation and definitions of Tutte [116].
2.3.1 Basic definitions
A graph G is defined by a set V (G) of elements called vertices (or
nodes) and a set E(G) of elements called edges. Each edge specifies
an incidence (or adjacency) relation between either one or two
vertices called its ends. An edge is called directed if the order
of its ends is important. A graph consisting of directed edges is
called a directed graph. A graph consisting of edges with unordered
ends is called an (undirected) graph. Note that in a directed graph
the adjacency relation is not necessarily symmetric. The two ends
of an edge are said to be joined by that edge. An edge is called a
loop if its two ends are coincident. An undirected graph without
loops or multiple joins is called a simple graph. The degree
(valence or valency) of a vertex v in a graph G is the number of
edges incident with v.
An arc-graph is a graph I with k vertices and k − 1 edges, having
the following property: the edges can be enumerated as e1, e2, ...,
ek−1, and the vertices a1, a2, ..., ak, in such a way that the ends
of ej are aj−1 and aj , for each allowed index j. We denote the arc
graph unambiguously by the ordered sequence of vertices I = (a1,
a2, ..., ak), where each two consecutive vertices are connected by
an edge. A circuit graph C is an arc-graph with one additional edge
having ends a1 and ak. A path in G is a subgraph of G which is also
an arc-graph. A cycle is a subgraph of G which is also a circuit. A
circuit-graph C with V (C) = V (G) is called Hamiltonian. In other
words, a Hamiltonian circuit is a path that starts and ends in the
same vertex in V (G), visiting the other vertices in V (G) exactly
once. For example, in figure 2.2(a) the vertices on the outer face
of the graph form a Hamiltonian circuit (if visited in the correct
order). A vertex-graph is a graph consisting of exactly one single
vertex.
2.3.2 Special graphs
Planar graph
A graph G is said to be planar if it can be drawn in the plane
without crossing edges. Such a planar drawing of G is called a
plane graph.
14 CHAPTER 2. POINT CLOUD FUNDAMENTALS
(a) (b)
Figure 2.1: (a) Surface triangulation; (b) a corresponding plane
graph.
Definition 2.4 (Plane graph). A plane graph of G is an embedding of
G in the plane such that:
1. the vertices of G are mapped to distinct points in R 2,
2. each edge eij ∈ E(G) is mapped to a straight line segment
connecting the images of its two end vertices,
3. no two such segments intersect.
A planar embedding of G is called valid if all the faces in its
plane graph are disjoint. Such an embedding contains
non-overlapping bounded faces and one outer face. The boundary of
such a triangulation is the collection of vertices and edges
incident on the outer face. A graph is called triangulated if all
its bounded faces are triangular. A drawing of such a graph is
called a planar triangulation. By lifting a planar triangulation in
the 3D space we obtain a surface triangulation. This is a class of
triangulations which represent genus-0 surfaces with a
boundary.
Definition 2.5 (Surface triangulation [40]). A surface
triangulation is a 3D embedding of a triangulated plane graph,
where the vertices are mapped to points in R
3, edges are straight line segments and faces are mapped to
triangular facets.
Figure 2.1 shows a surface triangulation and the corresponding
plane graph. In general, we use the term geometric graph to denote
a graph G, whose vertices are points in R
3 and edges are straight line segments. A surface triangulation is
a particular example of a geometric graph.
2.3. GRAPH-THEORETIC DEFINITIONS AND NOTATION 15
Outerplanar graph
A graph is outerplanar if it is planar and all its vertices lie on
the unbounded face (also called outer face). A maximal outerplanar
graph is an outerplanar graph where each interior face is a
triangle (see figure 2.2(a)). Any maximal outerplanar graph can be
drawn in the plane as a triangulation of a polygon and vice versa,
any triangulation of a simple polygon is a drawing of an
outerplanar graph.
Clique graph
The clique graph of n points is the undirected graph containing all
possible connections between the points, in other words it is the
(n−1)-nearest neighbors graph Gn−1. Figure 2.2(c) shows the clique
graph of 5 points, which is also known as the complete nonplanar
Kuratowski graph on five vertices K5.
2.3.3 Connectivity in graphs
A (directed) graph where there is a path between any two vertices
is called (strongly) connected. An undirected graph is k-connected,
if after the removal of any k−1 of its vertices, it is still
connected. We say that the graph is strictly k-connected if it is
k-connected but not k + 1-connected.
A connected graph G is said to be separable if it can be
disconnected by removing one vertex, which is called the
cut-vertex. A 1-separation of a connected graph is an ordered pair
(J,K) of subgraphs of G, each having at least one edge, such that J
∪ K = G and J ∩ K is a vertex-graph. A graph is biconnected if it
is not separable. All the graphs depicted in figure 2.2 are
biconnected.
Let J be a subgraph of a graph G. A vertex of attachment of J in G
is a vertex of J that is incident with some edge of G that is not
an edge of J . We write W (G, J) for the set of vertices of
attachment of J in G. A singular component S of G is a subgraph of
G containing one edge and its two end points, i.e., V (S) = {vi,
vj} and E(S) = {eij}. Let v ∈ V (G), by G − v we denote the graph
obtained by removing the vertex v and all its incident edges from
G.
2.3.4 Graphs with a boundary
In chapter 3 and on we state and use a number of theorems
concerning em- beddings of graphs with a boundary. Intuitively, a
graph with a boundary is a graph with some vertices tagged as
boundary vertices.
Let the vertex-set V (G) of a graph G be partitioned into two
disjunct sets, the set of boundary vertices B and the set of
interior vertices V (G) \ B. We call a vertex vi ∈ V (G) boundary
connected if there is a path in G from vi
16 CHAPTER 2. POINT CLOUD FUNDAMENTALS
(a)
(b) (c)
Figure 2.2: (a) Maximal outerplanar graph; (b) 2-boundary connected
component K (black vertices are boundary vertices); (c) clique
graph of 5 points, also known as K5.
to a boundary vertex, i.e., the path vi1(= vi), vi2 , ..., vik ,
where vik
∈ B. The reachable boundary of vi is the subset Bi ⊂ B of boundary
vertices which can be reached by a path from vi.
A vertex of G is called k-boundary connected if it can be separated
from B by removing k nodes in G. In figure 2.2(b) the vertex vi is
2-boundary connected to the black boundary vertices.
Define a k-boundary separation of a connected graph G as an ordered
pair (J,K) of edge disjoint and connected subgraphs of G satisfying
the following conditions:
(i) J ∪K = G,
(ii) B ⊂ V (J),
(iii) J and K have exactly k common vertices,
(iv) J and K have each a vertex not belonging to the other.
We will refer to the subgraph K as a k-boundary connected component
of G. A 2-boundary connected component is shown in figure
2.2(b).
2.3.5 Mappings defined on graphs
Let H be an ordered subset of V (G). By φ(H) we mean the ordered
set of the images of hi ∈ B, i.e., φ(B) = {φ(h1), φ(h2), ...,
φ(h|B|)}. Let φ be a real-valued function, then the set φ(H) is
called monotone if for each two indices i < j holds that φ(hi)
< φ(hj).
2.3.6 Matrices associated with graphs
Given a graph G, its associated degree matrix D is a diagonal
matrix whose i-th diagonal entry is the degree of vertex vi. The
adjacency matrix of G is the n×n
2.4. GEOMETRIC AND TOPOLOGICAL PROPERTIES 17
matrix A with aij = 1 if eij ∈ E(G) and zero otherwise. The
combinatorial Laplacian matrix of G is defined as L = D − A. In
chapter 3 we will define a more general version of L, called the
generalized Laplacian matrix. In this setting the combinatorial
Laplacian matrix is a special case of the generalized
version.
2.4 Geometric and topological properties
In this section we review the basic notions of a neighborhood,
connectivity and normal estimation for point clouds and
triangulations.
2.4.1 Neighborhoods
Neighborhoods on meshes are often defined in terms of k-ring
neighborhoods. For example, a 1-ring neighborhood Ni of point pi
contains all the points connected to pi by an edge in E(G).
Similarly, a k-ring neighborhood of pi
contains all the points reachable from pi by a path in G with at
most k edges. In the text, when we talk about neighborhoods on
meshes we always mean 1-ring neighborhoods.
Contrary to meshes, point clouds do not carry any explicit
connectivity in- formation. To extract topological information from
a point cloud one typically uses neighborhoods of points. A
neighborhood of a point pi is a set of points close to pi with
respect to some metric. Throughout the text we denote this set as
Ni and the set of the indices of the neighbors of pi as Ii.
Most commonly used neighborhoods are ball-neighborhood, k-nearest
neigh- bors neighborhood and Delaunay neighborhood. They are shown
in figure 2.3. The ball-neighborhood of pi is defined as the
collection of points within some distance R to pi. The k-nearest
neighbors are the first k points sorted in ascending order
according to their distance to pi. Depending on the setting, pi
itself may or may not be part of its neighborhood. We usually use
the convention that pi is contained in its ball or k-nearest
neighbors neighborhood.
The Delaunay neighborhood is obtained in two steps. First, the ball
neigh- borhood or k-nearest neighbors are projected on a tangent
plane at pi. Second, the projected points are Delaunay
triangulated, yielding a triangulation in the plane, which we call
a local planar Delaunay triangulation. This triangulation induces a
local triangulation of the original neighbors of pi. The collection
of points sharing an edge with pi in the local triangulation
defines the Delaunay neighborhood of pi. The collection of
triangles in the local triangulation having pi as their vertex is
called a Delaunay Fan (see figure 2.3(c)).
18 CHAPTER 2. POINT CLOUD FUNDAMENTALS
(a) (b) (c)
Figure 2.3: Neighborhoods on point clouds: (a) ball neighborhood;
(b) k-nearest neighbors; (c) local planar Delaunay triangulation,
Delaunay neighborhood and the Delaunay fan.
2.4.2 Connectivity structures on point clouds
A triangulation naturally defines a global connectivity structure
by means of its triangles. It can be represented by an undirected
graph, because the neighbor relation is symmetric. For point clouds
the union of the ball neighborhoods, k-nearest neighbors and the
Delaunay neighborhoods also define a global con- nectivity
structure, which can be represented by a directed graph, because
the neighbor relation is not symmetric for nearest neighbors and
Delaunay neighborhoods.
The connectivity graph resulting from using k-nearest neighbors is
often called the k-nearest neighbors (KNN) graph.
Definition 2.6 (KNN graph). A k-nearest neighbors graph of the
point cloud P = {p1, ..., pn} is the geometric directed graph Gk(P)
with the points pi ∈ R
3
as vertices and edges eij if pj is one of the k nearest neighbors
of pi.
In the literature the KNN graph is sometimes called a Riemannian
graph (see, e.g., [58, 62]), because it defines distances between
points resembling the notion of distance in a Riemannian manifold.
Sometimes we will use the notion of an undirected KNN graph to
represent an undirected version of the Gk(P) graph, i.e., a graph
containing undirected edges eij if pj is one of the k nearest
neighbors of pi or vice versa.
The union of Delaunay fans also yields a connectivity graph, which
can be seen as a non-conforming approximation (polygon soup) of an
interpolatory mesh through the points of P . This structure, which
we call a Delaunay cover, is used in chapter 8.
For point clouds which are sampled from a curve, the KNN graph is
also a popular choice to represent connectivity. However, in this
case there are also
2.5. DATA STRUCTURES FOR POINT CLOUDS 19
other useful graphs which capture connectivity information. The
minimum spanning tree (MST) is useful for open curves and the
minimum spanning graph (MSG) is often used to represent closed
curves. The MST is a tree passing through all the sample points and
minimizing the total Euclidean distance of its edges. The MSG is
constructed similarly to MST, using a greedy strategy for appending
edges. The difference is that the edges are appended even if they
create loops in the graph, provided the loops are long enough,
i.e., satisfy a certain length threshold [94].
2.4.3 Tangent plane and normal approximation
The tangent plane at a point pi in the point cloud is usually
approximated by the least squares plane of some neighborhood Ni of
pi. The least squares plane is defined as the plane that minimizes
the sum of squared distances of the points pi ∈ Ni to that plane.
It can be shown (see, e.g., [64]) that the least squares plane
contains the centroid of the neighborhood, i.e., p = 1
|Ni|
∑ pj∈Ni
pj and
that its normal N is the normalized eigenvector corresponding to
the smallest eigenvalue of the 3 × 3 covariance matrix
C = ∑
(pi − p)(pi − p). (2.1)
The least squares plane is the set of points x ∈ R 3 such that N(x
− p) =
0. In order for this plane to be unique, the neighborhood Ni should
not be degenerate, e.g., it may not consist of collinear points.
Since the least squares plane serves as an approximation of the
tangent plane, its normal N can be used as an approximation of the
normal N(pi) at pi. Note that the normal N(pi) is by definition
unoriented, because it only gives an indication of the direction of
the smallest variance of points in the neighborhood. Therefore it
can point inwards or outwards w.r.t. a closed orientable point
cloud. Computing consistently oriented normals on a point cloud is
a substantially more difficult problem [62].
2.5 Data structures for point clouds
A data structure should be selected based on several issues. First,
it should support the operations we need in an efficient way.
Second, there is an issue of memory consumption. Finally, sometimes
overlooked, is the issue of the ease of implementation and
manageability. Depending on the application there are data
structures which are optimized for range queries, neighborhood
computation, point insertion/deletion, rendering and
ray-tracing.
20 CHAPTER 2. POINT CLOUD FUNDAMENTALS
2.5.1 Uniform grid
The uniform grid data structure partitions the space in equally
sized rectan- gular cells. It is a direct extension of the notion
of a grid in 2D and it can be represented by a 3D matrix. The
easiest approach to implement such a 3D matrix is to store it as a
3D array, with a piece of memory allocated to each entry in the
matrix. Depending on the application, a matrix entry can contain a
pointer to a list of points contained in the corresponding cell, or
it can contain a boolean value to indicate whether a cell is empty
or not.
Point insertion is a trivial operation: assuming the grid cells are
of size h and (xmin, ymin, zmin) are the coordinates of the lower
corner of the bounding box, the spatial indices of pi are given
by
(i, j, k) = (⌊(pi.x− xmin)/h⌋, ⌊(pi.y − ymin)/h⌋, ⌊(pi.z −
zmin)/h⌋).
Point deletion and range queries are also easy to implement. The
main problem with this approach is the curse of dimensionality. In
practice, the cell size h needs to be small, while the memory
consumption grows as O(h−3).
2.5.2 Sparse matrix representation
Because the point cloud usually represents a 2-manifold surface
immersed in 3D space, its uniform grid representation is often very
sparse, i.e., only a fraction of the cells contain some points.
Therefore, to resolve the memory consumption issue, it is
reasonable to store only the non-empty cells. The sparse matrix
representation stores the indices (i, j, k) of non-empty cells and
the corresponding entry value in a list.
Although this representation significantly reduces the memory
overhead of the naive uniform grid implementation, the operations
become more expensive. In fact, operations like point insertion,
deletion and queries are linear in the number of entries in the
list. For example, to determine whether a cell is empty, we need to
search through the whole list.
2.5.3 Hash grid
The hash grid data structure combines the low memory consumption of
the sparse matrix representation with the speed of the uniform grid
representation. Using a hashing function on the indices (i, j, k),
as for example in [113], the 3D matrix representation can be
linearized into a hash table of much smaller size. The expected
time for point insertion, deletion and retrieval is O(1). We use a
boolean hash grid representation of the point cloud in chapter 8.
In such a representation each empty cell has value 0 and each
non-empty cell has value 1.
2.5. DATA STRUCTURES FOR POINT CLOUDS 21
(a) (b)
Figure 2.4: Octree data structure: (a) partitioning of a cube; (b)
corresponding tree structure, where the leaves contain the actual
points.
2.5.4 Octree
The octree is a very efficient data structure, which is especially
suited for neighborhood computations. It is built by recursively
subdividing the bounding box of a point cloud until a certain level
of refinement is reached. In our implementation we use a
granularity parameter ng to control the depth of the octree.
Starting with a bounding box as the root node, the child nodes are
computed by slicing the root node into 8 equal octants, as in
figure 2.4(a). For each nonempty octant node the subdivision is
repeated if the number of points in the node is larger than the
granularity parameter ng. In the tree representation in figure
2.4(b), empty octants are represented by empty circles (NULL
pointers). Non-empty octants can be either internal nodes,
represented by gray circles, or leaf nodes represented by squares.
The internal leaf nodes are used for navigation, while the square
leaf nodes contain the points. The construction of such an octree
has O(n log n) time complexity. With a reasonable granularity
parameter, e.g., ng = 10 points, the memory overhead for storing
the tree is insignificant.
2.5.5 Other data structures
An alternative data structure for storing point clouds is the
kd-tree [23]. A kd- tree is a binary tree, which splits the space
one dimension at a time, making this representation very suitable
for storing s-dimensional data. Kd-trees easily support rectangular
range queries. A binary space partition (BSP) tree gener- alizes
the concept of octrees and kd-trees by recursively partitioning the
space with arbitrary planes, not necessarily aligned with the axes.
Such structures are often used for rendering and constructive solid
geometry. Bounding sphere hierarchies [100] are useful for
rendering and collision detection. The software package QSplat
[100] uses the bounding spheres representation to render very
22 CHAPTER 2. POINT CLOUD FUNDAMENTALS
large models in a progressive fashion. A variant of the kd-tree is
the so-called balanced box decomposition (BBD)
tree. It is used in the approximate nearest neighbor (ANN)
searching library [8] which allows to execute approximate range
queries in high dimensional spaces. In such queries the returned
nearest neighbors are within a factor of (1 + ) of the distance to
the true nearest neighbor.
2.6 Computing neighborhoods using an octree
Neighborhood computation is the most fundamental task when working
with point clouds. In this section we outline a basic method of
determining the ball neighborhood and the k-nearest neighbors of a
given point in a point cloud using an octree. We implemented the
octree data structure in C++ and optimized it for fast execution.
This octree implementation is used in all the algorithms presented
in this thesis.
First we outline the procedure of determining the ball
neighborhood. Let R be the radius of the neighborhood. Starting
with the root node we descend down the tree structure and process
each node. There are three possibilities for the bounding box of a
node:
1. either it is completely contained within the ball, or
2. it is intersected by the ball, or
3. it is completely outside the ball.
In the first case we descend to the leaves and add all the points
to the neigh- borhood. If the second case occurs for a leaf node we
process all the points one by one to determine whether they belong
to the neighborhood, otherwise we just descend to the children of
the node and repeat the whole process. It speaks for itself that
the third case does not require any action.
The neighborhood consisting of the k-nearest neighbors of pi ∈ P
can be computed by selecting the closest k points from the ball
neighborhood. The issue here is how to determine the radius R of
the ball neighborhood. On the one hand it should be as small as
possible in order to compute the ball neighborhood fast, on the
other hand it should contain at least k points. To optimize the
neighborhood construction we use the fact that most practical point
clouds have a gradually changing sampling density. Therefore, once
we have an approximation of R, it will not change much if the
neighborhoods of other points need to be computed. In our
implementation we increaseR slightly if it appears to be too small,
and similarly we decrease it if there are too many points. The
initial estimate is computed by traversing the tree hierarchy and
taking R to be the maximum distance to the bounding box containing
sufficient points.
Chapter 3
Parameterization of
Clouds
In this chapter we give a brief introduction to the concept of
parameterization and its discrete analogue: parameterization of a
triangulation and parame- terization of a point cloud. Furthermore
we introduce a linear method for computing such parameterizations
and discuss its properties.
3.1 Introduction
Loosely speaking, parameterizations are mappings from the plane to
the 3D space. Such mappings are of great importance for many
applications in engi- neering, CAGD and computer graphics. In
particular, parameterizations are an ubiquitous tool for
applications such as surface fitting, texture mapping, meshing
& remeshing, compression and surface approximation, repair of
CAD models and re-parameterization of spline surfaces.
In digital geometry processing applications, a surface is often
represented by means of a triangular mesh. The parameterizations of
such meshes are piece- wise linear functions, mapping triangles in
2D to triangles in 3D. Depending on the application, such
parameterizations can have different properties, e.g., the
preservation of angles or the minimization of texture stretch. Over
the last 10 years a lot of algorithms have been proposed for the
computation of mesh parameterizations. Sometimes, these algorithms
are also referred to as mesh flattening methods.
Piecewise linear parameterizations are usually defined on meshes,
but the
23
24 CHAPTER 3. PARAMETERIZATION OF TRIANGULATIONS
notion of parameterization can be extended to point clouds as well.
The parameterization of a point cloud is a discrete function,
mapping points in the plane to points in 3D space. As will be
explained later in the text, it can be computed using local
neighborhoods and a suitable convex combination mapping defined on
the point cloud.
3.2 Parameterization of a surface
3.2.1 Definition
In differential geometry (see, e.g., [36, 67]) any regular mapping
ψ : D → S ⊂ R
3 from an open set D in the plane to (a part of) a surface S is
called a parameterization (see figure 3.1). A parameterization
induces a parametric representation of the surface, because it maps
each point (u, v) ∈ D to a point on the surface. The variables u
and v are the parameters of the parametric representation of S
given in terms of its Euclidean coordinate functions,
ψ(u, v) = [x(u, v) y(u, v) z(u, v)]. (3.1)
In order to describe a smooth surface and to avoid singularities,
such that the image ψ(D) is neither a point nor a curve, the
mapping ψ should be regular. The regularity conditions means that
the functions x, y and z are at least C2-continuous and that the
Jacobian matrix of ψ at any point (u, v) ∈ D has rank 2. For most
practical purposes the parameterization is required to have a
continuous inverse and to be one-to-one as well, to avoid
self-intersections. If ψ is one-to-one the parameter variables u
and v are also called coordinates on S, because they uniquely
define any point on the surface.
Of all possible parameterizations of 3D surfaces the ones which
preserve angles or areas (in general one cannot preserve both) are
the most interesting and have been studied the most. The
parameterizations which preserve angles are called conformal, and
those preserving area are called equiareal or authalic. Well known
examples of such parameterizations are the projections of parts of
the globe used in cartography. The stereographic projection is the
oldest conformal mapping and has been known for more than 2000
years. It was not until the 18th century when Heinrich Lambert
found the first equiareal projection, now bearing his name. Other
important applications of conformal mappings relate to problems in
physics and engineering. The Joukovsky’s transform, for example, is
fundamental to the solution of certain problems in aerofoil theory,
in particular in the study of aircraft wing profiles.
3.2.2 Parameterization of triangulations
In the literature there is a wealth of algorithms proposed for the
computation of parameterizations of meshes with different time
complexities and requirements
3.3. HARMONIC MAPPINGS 25
Figure 3.1: Parameterization ψ of a surface S .
on the embedding. The methods differ in the kind of input they can
be applied to, e.g., meshes with disc topology, sphere topology,
genus-1 topology and arbitrary genus. Also the criteria imposed on
the mapping differ. Some methods minimize angle distortion, other
methods minimize distances or area distortion, and some try to find
a trade-off and minimize a combination of all the three distortion
types. A couple of methods require the boundary of the
parameterization domain to be a fixed convex polygon. Furthermore
the methods differ in the guarantees they provide concerning the
bijectivity of the embedding. For a comprehensive overview of the
topic of parameterization of meshes we refer to the recent articles
by Sheffer et al. [106] and Floater et al. [48].
It should be noted that the Riemann theorem, which guarantees the
exis- tence of conformal maps between the surfaces with disc
topology and simply- connected regions in the plane, does not hold
in the discrete setting. As observed in [106] the sum of the angles
formed by the triangles around an interior vertex in the mesh is
usually not equal to the sum of the angles in the plane, which is
always 2π. Therefore, discrete conformal parameterization methods
rather approximate conformal mappings by minimizing some measure of
conformality defined on the mesh [28, 64, 101]. In the following,
we restrict our discussion to the linear methods based on the
discretization of a harmonic map, and thus aiming at the
minimization of angle distortion.
3.3 Harmonic mappings
Consider a continuous mapping g : S → R 2, g(u, v) = (g1(u, v),
g2(u, v)) from
a surface S to the plane, where u and v are the coordinates on S
and g1 and g2 are real-valued functions. The mapping g is harmonic
if it componentwise satisfies the generalization of the Laplace
equation, i.e.,
Sg1 = 0, Sg2 = 0, (3.2)
26 CHAPTER 3. PARAMETERIZATION OF TRIANGULATIONS
where S is the Laplace-Beltrami operator. This operator is a
generalization of the Laplacian to functions defined on surfaces,
and can be written as S = divS gradS .
Harmonic maps are interesting because they are easier to compute
compared to conformal maps. In the above definition, the harmonic
map f can be computed as the approximate solution to a PDE, after
imposing boundary conditions on the functions f1 and f2. Besides
being easier to compute, har- monic maps have additional appealing
properties: every conformal map is also harmonic, harmonic maps are
one-to-one for convex regions and they minimize the Dirichlet
energy 1/2
∫ S ∇f2. These facts make that most surface pa-
rameterization methods concentrate on the task of computing
harmonic maps, rather than trying to compute conformal maps.
3.4 Approximations of the Laplace-Beltrami ope-
rator
In order to compute harmonic mappings on meshes and point clouds we
need a discretization of the Laplace-Beltrami operator. In this
section we review a number of common approximations of the
Laplace-Beltrami operator on triangulations. The case of point
clouds will be treated in section 3.6.3.
3.4.1 General considerations
Discretization of the Laplace-Beltrami operator on triangle meshes
is a very important issue in digital geometry processing. Besides
being useful for com- puting parameterizations [48], it can be used
to construct minimal surfaces [96], to perform smoothing [29, 112,
120], quantization, editing and for compact shape representation
[108, 109].
There are a great number of different discretizations of the
Laplace-Beltrami operator used in applications in domains of finite
elements, graphics and ge- ometric modeling. The accurate and
costly discretizations are often used in finite elements
applications, while less accurate but efficient approximations are
sufficient for most graphics and modeling applications. Besides
accuracy differences, these approximations have different
convergence properties. The simple approximations heavily depend on
a particular mesh, and converge to the continuous Laplace-Beltrami
operator only if the mesh is refined in a specific way. For an
overview of various discretizations and their convergence
properties we refer to the articles by Grinspun et al. [57] and Xu
[124].
3.4. LAPLACE-BELTRAMI OPERATOR 27
3.4.2 Vertex ring discretizations
Let f be a vector-valued function, defined on the vertices of a
mesh, such that f(pi) = [f1(pi) f2(pi) . . . fd(pi)]. If d = 2,
such a function can be used to represent a parameterization of the
mesh. By associating vertices of the mesh with the corresponding
parameter points in the plane, it induces a piecewise linear
mapping, thereby flattening the mesh into the plane.
An often used class of discretizations of the Laplace-Beltrami
operator at a vertex pi is based on the 1-ring neighborhood stencil
around pi. Discretizations of this kind approximate the
Laplace-Beltrami operator of f at pi by a weighted sum of the
values of f at the direct neighbors of pi, i.e.,
Sf(pi) = ∑
wij(f(pj) − f(pi)), (3.3)
where wij are some suitably chosen weights. These weights are
usually nor- malized (i.e., they sum to one), so it is convenient
to define them using the following notation
wij = wtype
, (3.4)
where type is one of the following: t (Tutte weights), f (Fujiwara
weights), c (curvature based or discrete harmonic weights) or m
(mean-value weights). Next we review the different types of
weights.
The most simple uniform discretization results in the so-called
combinato- rial Laplacian (sometimes also called Tutte Laplacian
[56], mesh Laplacian or the umbrella operator [112]), which uses
only the connectivity of the mesh
wt ij =
|Ii| . (3.5)
The Fujiwara weights (sometimes also called reciprocal weights)
[51] account for the non-uniformity by using the inverse of edge
lengths
wf ij = pi − pj−1
2 . (3.6)
A very popular discretization is the one using so-called cotangent
weights, also known as discrete harmonic weights. It is obtained by
looking at the Laplacian operator as the gradient of the discrete
Dirichlet energy. The discrete harmonic weights are given by
wc ij =
2 (cotβij + cotγij), (3.7)
where βij , γij are the 3D angles opposite to the edge pipj as in
figure 3.2. This formula first explicitly appeared in [96] and was
later extensively used in computer graphics literature.
28 CHAPTER 3. PARAMETERIZATION OF TRIANGULATIONS
Strictly speaking, the cotan formula is only valid in the
variational setting, i.e., as the solution to the problem of
minimizing the Dirichlet energy. In fact, the discrete Laplacian
discretized using harmonic weights vanishes as the mesh size tends
to zero [124]. A more accurate, and under some assumptions
convergent