point cloud processing using linear algebra and graph theory

211
KATHOLIEKE UNIVERSITEIT LEUVEN FACULTEIT INGENIEURSWETENSCHAPPEN DEPARTEMENT COMPUTERWETENSCHAPPEN AFDELING NUMERIEKE ANALYSE EN TOEGEPASTE WISKUNDE Celestijnenlaan 200A – B-3001 Leuven POINT CLOUD PROCESSING USING LINEAR ALGEBRA AND GRAPH THEORY Promotor: Prof. Dr. ir. D. Roose Proefschrift voorgedragen tot het behalen van het doctoraat in de ingenieurswetenschappen door Tim VOLODINE September 2007

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