In this thesis, we first presented an algorithm proposed by Sinh N.V [1] that generates a triangular mesh from 3D point clouds.. The goal is to reconstruct a surface of triangular mesh f
Trang 1MESHING A 3D POINT CLOUD OF AN ELEVATION SURFACE
BASED ON 2D DELAUNAY TRIANGULATION
In Partial Fulfillment of the Requirements of the Degree of
MASTER OF INFORMATION TECHNOLOGY MANAGEMENT
By NHAN Ba Cong
ID: MITM05002
International University - Vietnam National University HCMC
May 2015
Trang 2MESHING A 3D POINT CLOUD OF AN ELEVATION SURFACE
BASED ON 2D DELAUNAY TRIANGULATION
In Partial Fulfillment of the Requirements of the Degree of
MASTER OF INFORMATION TECHNOLOGY MANAGEMENT
By NHAN Ba Cong ID: MITM05002 International University - Vietnam National University HCMC
Trang 3Acknowledgements
To complete this thesis, I have been benefited from Dr Nguyen Van Sinh who has been helping me very much I would like to give special thanks to my advisor, who support of my master study and research Thank you again for bringing me step by step to this interesting thesis topic
I would also like to thank all lecturers in the School of Computer Science and Engineering Their lectures throughout my years of study here have been helping me not only
on knowledge, but also in the research strategy And we thank my reviewers and thesis examination committees for their valuable comments, evaluations valuable contributions and constructive suggestions
Trang 4Plagiarism Statements
I would like to declare that, apart from the acknowledged references, this thesis either does not use language, ideas, or other original material from anyone; or has not been previously submitted to any other educational and research programs or institutions I fully understand that any writings in this thesis contradicted to the above statement will automatically lead to the rejection from the MITM program at the International University - Vietnam National University Ho Chi Minh City
Trang 5Copyright Statement
This copy of the thesis has been supplied on condition that anyone who consults it is
understood to recognize that its copyright rests with its author and that no quotation from the
thesis and no information derived from it may be published without the author’s prior consent
© NHAN Ba Cong / MITM05002/2013-2015
©Dr NGUYEN Van Sinh / HCMC International University
Trang 6Abstract
Geometric modeling is one of the most important methods to represent an object in multi-dimensional space It’s widely used in many technical fields such as image processing 3D simulation, auto design, architecture, etc Several techniques are used to obtain the data of point clouds such as 3D scanners that provides a huge amount of unorganized 3D point sets The 3D Point clouds are used as input data in several applications such as reverse engineering, CAD modeling and animation technology and so on Various methods are available for generating a triangular mesh from a 2D or 3D point cloud They can be applied
on both open and close surfaces The main goal of this thesis is to the study some algorithms for meshing a surface of 3D point clouds
In this thesis, we first presented an algorithm proposed by Sinh N.V [1] that generates a triangular mesh from 3D point clouds We then also proposed and implemented an addition work to reconstruct the surface by filling the holes of triangular mesh The input data are 3D point clouds structured in a sparse 3D volume The algorithm describes a triangulation of this surface based on Delaunay triangulation Delaunay triangulation is one of the most popular methods used to generate a triangular mesh In fact, we base on the advantage of 3D point structured in grid 3D and proposed a fast search algorithm [1] to obtain higher performance
We start by projecting the 3D point clouds onto a 2D grid in the x, y plane Then, we triangulate the surface (actually, we compute a Delaunay triangulation of the 2D point cloud taking advantage of its regular structure) The new contribution of the proposed method is that the neighboring points of an edge ei are searched in a rectangle supported by the edge ei under consideration This interesting algorithm has been implemented, the result obtained shows that the processing time is very fast, the initial shape of the surface is well preserved, and the topology of the output triangular mesh approximates the original input surface
Trang 7Table of Contents
Abstract iv
1 Introduction - 1 -
1.1 Background and Aim of the Thesis - 1 -
1.2 Problem Statement - 1 -
1.3 Objective and Scope - 2 -
1.3.1 Methodology - 2 -
1.3.2 Geological data model - 2 -
1.4 Thesis structure - 5 -
2 Literature Review - 6 -
2.1 Background - 6 -
2.2 2D Triangulation Algorithm - 7 -
2.2.1 Delaunay triangulation using a uniform grid - 7 -
2.2.2 The Constrained Delaunay Triangulation of a Polygonal Domain - 10 -
2.2.3 Sweep-line algorithm for constrained Delaunay triangulation - 12 -
2.3 Three-dimensional Triangulations Algorithm - 15 -
2.3.1 Alpha Shapes - 15 -
2.3.2 The Ball-Pivoting Algorithm - 17 -
2.3.3 Poisson Surface Reconstruction - 19 -
3 The Proposed Method - 23 -
3.1 Introduction - 23 -
3.2 Concepts, Notion and Definition - 24 -
3.3 Projecting into 2D Matrix - 26 -
3.4 Delaunay triangulation Algorithm - 26 -
3.4.1 Building a seed triangle - 26 -
3.4.2 Neighboring points search - 27 -
3.4.3 Delaunay Criterion - 28 -
3.5 Fast Voxel Traversal Search - 30 -
3.5.1 Overview - 30 -
3.5.2 Computing the discrete mediatrix - 31 -
3.5.3 Computing the successive dilations of the discrete - 32 -
3.5.4 The Algorithm based on the voxel traversal search - 33 -
3.6 Triangulating a surface - 35 -
4 Reconstruction - 36 -
4.1 Introduction - 36 -
Trang 84.2 Removing outward triangle - 37 -
4.3 Hole filling - 38 -
4.3.1 Overview - 38 -
4.3.2 Determining holes - 39 -
4.3.3 Filling the holes - 39 -
4.3.4 Triangulating the holes - 40 -
5 Implementation and Results - 41 -
5.1 Implementation - 41 -
5.2 Results - 42 -
5.3 Evaluation and Discussion - 46 -
6 Conclusion and Future work - 47 -
6.1 Conclusion - 47 -
6.2 Future work - 47 -
7 References - 48 -
8 Appendices - 51 -
8.1 Appendix A: Screenshots of the Demonstration Applications - 51 -
8.2 Appendix B – Implementation C++ in meshlab as a plugin - 56 -
Trang 9List of Tables
Table 1 Comparison of the processing times between our method (VTS) and Ball - Pivoting (BP) We use the same input data points and run on the same computer - 43 - Table 2 The results of computation the approximate errors by using Metro tool [32] - 46 -
Trang 10List of Figures
Figure 1.1: 3-D oblique view of a portion of the Black Warrior Basin Thin vertical lines are wells; semi-transparent surfaces outlined in black are faults [6] - 2 - Figure 1.2 A geological model used in the oil exploration [5] - 4 - Figure 1.3 Collection of geological data [5] a) by a marine seismic acquisition; b) by processing
Figure 2.1 Procedure to form a triangle, given an edge - 8 - Figure 2.2 The triangle generated (12) and edgePool (P2P1; P3P2; P4P3; P1P4) - 9 - Figure 2.3 Graphical illustration of time complexity (12) - 9 - Figure 2.4 In triangle ∆(𝑣𝑖, 𝑣𝑗, 𝑣𝑘)there are no vertices of V (15) - 11 - Figure 2.5 The run times of the algorithm was measured for randomly generated polygons To get these polygons, we remove arbitrary triangles from a triangulation of randomly generated vertices
On the right side a Constrained Delaunay triangulation of the randomly generated polygon of the left
Figure 2.6 Associating edge information to the points (18) - 13 - Figure 2.7 Finalization forms upper and lower convex hull (18) - 14 - Figure 2.8 Five different a-shapes for values of an increasing from left to right are shown The first shape is the point set itself, for a = 0, the last shape is the convex hull, for a= + ∞.(20) - 16 - Figure 2.9 The anisotropy method does remove triangles connecting the surfaces of the sphere (20) -
17 -
Figure 2.10 Ball pivoting in the presence of noisy data (14) - 19 - Figure 2.11 Depth 10 reconstructions from 1M point uniformly sampled on the fandisk and raptor surface models The screened Poisson surface reconstruction is the sharpest [24] - 21 - Figure 2.12 Reconstructions of the “Happy Buddha” model using Volumetric Range Image Processing
Figure 3.1: Triangulation of a 3D point cloud by projecting it onto the 2D grid - 23 - Figure 3.2: Some concepts and notations used in the surface triangulation - 24 -
Figure 3.5 Condition of non-intersection for generated triangles - 28 -
Figure 4.1 Output of the surface consist a big unwanted triangles (red) and the holes - 36 -
Figure 4.3 The boundary triangles of the hole are presented in the center of surface - 38 -
Figure 4.5 a) Original surface b) After filling the hole (Blue point) - 40 -
Figure 5.1 The triangular surface and then filling two holes in this surface (blue) - 43 -
Figure 5.3 Initial triangular mesh, removing outward triangles and hole-filling - 44 - Figure 5.4 Initial triangular mesh, removing outward triangles and hole-filling - 44 -
Figure 5.6 Another view of the triangular mesh of the surface - 45 - Figure 5.7 The holes - filling is zoom out (small figure) - 45 - Figure 8.1 a) The input surface of 3D point clouds b) After simplifying by using [1] There are some color points which have shown that the characteristics of the surface are well preserved - 51 -
Trang 11Figure 8.2 Triangulating the mesh (left), then filling two holes (right) in the sample - 51 - Figure 8.3 Removing the outside triangles of the surface - 52 -
Figure 8.6 The outward triangles is deleted out of the triangular mesh - 54 -
Trang 12List of algorithms
Algorithm 1 𝐶𝑖𝑟𝑐𝑢𝑚𝑐𝑖𝑟𝑐𝑙𝑒(𝑝2𝑖, 𝑝1𝑖, 𝑝3𝑖) - 30 -
Algorithm 2 - AWLine(ei, k, rl) - 32 -
Algorithm 3 SearchNeighbors(ei; pi3) - 34 -
Algorithm 4 - MeshGenerating(S) - 35 -
Algorithm 5 - TriangleRemoving(S) - 38 -
Trang 13CHAPTER ONE
1 Introduction
Computer graphics is a part of computer science, solving practical problems and producing geometric modeling of an object in 3D environment There are a lot of applications in graphic structure including CAD/CAM, computer art, entertainment, education and training, visualization, image processing and so on This thesis discusses the reconstruction of a 3D surface object from point clouds [2] by triangulating and computing optimization of this surface
1.1 Background and Aim of the Thesis
Typically the points are surface samples acquired with multiple range scans of an object The point clouds derived from varied acquisition techniques like laser scanner data, photogrammetric image measurements, motion sensors etc They are able to pose a tough problem of reconstruction, not completely solved and challenging in case of incomplete, noisy and sparse data
In geometric modeling, Surface triangulation [3] of a 3D object is a fast and efficient way to reconstruct such an approximating surface in the 3D space Hence, meshing a 3D point cloud has been widely studied in recent years The goal is to reconstruct a surface of triangular mesh from a given 3D point cloud, such that the triangular mesh must approximate the original shape of the input surface [1] Various methods are been proposed for generating a triangular mesh either planar point set and 3D point cloud within an open or a close surface [1] All of them focus on performance the computing time of algorithms and the quality of triangular meshes
1.2 Problem Statement
In 3D coordinates system, the points are usually defined by X, Y, and Z coordinates, and intended to represent the open surface of an object As mentioned above, the data coming from an acquisition technique always entailed the problem of mass of data It leads to a mandatory data reduction process So the proposed method is to build an optimal geological triangulated surface in order to get the best simulation of oil reservoir
Sinh N.V [1] proposed a method to triangulate this surface by using a fast search algorithm based on the computation of 2D Delaunay triangulation The method has proved the efficiency of computation The input data are structured in a sparse 3D
Trang 14volume with a huge amount of 3D data points (that can reach several millions of points) Therefore, a fast search algorithm based on Delaunay triangulation is the central topic of this thesis Firstly an overview of existing algorithms for constructing the 2D and 3D objects Then the proposed method are presented, which
is based on 2D Delaunay triangulation and an improvement technique for the optimization meshes is mentioned (i.e reconstructing the surface be removing outside triangles on the boundary and filling the holes inside of triangular mesh.) Finally, the obtained result and experiment in this area are presented In order to implement the proposed algorithm, we use C++ programming language for writing a plugin in the Meshlab [4]
1.3 Objective and Scope
1.3.1 Methodology
The objects and scopes of our work are focused on geological models as presented in [5] and the methods for surface simplification, surface reconstruction and surface triangulation of 3D point clouds We introduce previous works on 3D elevation surface modeling and our data structure first, and then the existing methods and our methods will be presented in detail in the next chapters
1.3.2 Geological data model
In order to understand an overview of a geological data model, we introduce in this section the existing methods for constructing a geological model and data automatic acquisition technique The 3D simulation techniques are applied in the field of geology Richard [6] provided an overview of the full techniques and methods for constructing a 3D geological model (see Figure 1.1)
Figure 1.1: 3-D oblique view of a portion of the Black Warrior Basin Thin vertical lines are
wells; semi-transparent surfaces outlined in black are faults [6]
Trang 15The existing researches [5] in the oil exploration industry have shown that the computation, building and simulation of oil reservoir on the computer are based on geometric modeling (see Figure 1.2) In order to get the data of oil reservoir, the scientists have used a special device to get the information of oil by using an automatic acquisition technique or processing the seismic images ( see Figure 1.3) After obtaining the data, they are processed and structured as 3D point clouds into a sparse 3D volume for the next surface processing [1] We will start from this data structure to propose our method
Trang 16Figure 1.2 A geological model used in the oil exploration [5]
Figure 1.3 Collection of geological data [5] a) by a marine seismic acquisition; b) by
processing seismic images [5]
Trang 171.4 Thesis structure
The outline of this thesis is structured as follows: we review some the existing algorithms in chapter II Our method will propose in chapter III After triangulating a surface, we reconstruct this surface by removing outward triangles and filling holes These works are introduced in detail in chapter IV The obtained results and evaluation are presented in chapter V Finally, chapter VI is our conclusion and future work Figure 1.4 is the flowchart of the thesis
Chapter one Introduction
Chapter two Literature review
Two-dimensional algorithm
Three-dimensional algorithm
Chapter three The Proposed method
Delaunay triangulation algorithm
Fast voxel traversal search
Chapter four Reconstruction
Removing outward triangles
Filling the holes
Chapter five Implementation and results
Implementation
Result
Evaluation & Discussion
Chapter six Conclusion
Conclusion
Future workFigure 1.4 Flowchart of our thesis
Trang 18CHAPTER TWO
2 Literature Review
Boris Delaunay [7] introduced an algorithm (1934) in 2D (called Delaunay triangulation) the algorithm is a planar subdivision that divides a point set on a plane into such triangles that no other point is inside the circle defined by the three vertices
of the triangle Delaunay triangulation minimizes the angles of the triangles that avoid long and narrow triangles
The original definition applied for a point set in two dimensions It possible to generalize the Delaunay triangulation to three - dimension as constrained Delaunay triangulation shown in chapter 2.3 The Delaunay criterion states that the circumcircle (the circle defined by the three vertices) of a triangle cannot contain other points but the three belonging to the triangle itself Other points are accepted
on the perimeter of the circle, but not inside it This criterion must hold for all triangles in the triangulation if it is a Delaunay triangulation
2.1 Background
Surface triangulation is fast, memory-efficient, and robust for mesh generating An optimal triangular surface is the best model for simulating its shape that approximates the initial model of that surface
The research literature on meshing generation is vast and there are a lot of existing different algorithms approaching such problems In 2D, Boris [7] introduced the Delaunay triangulation, Charles Lawson [8] (starts with Flip algorithm) and Ruppert [9] refine an algorithm based on Delaunay triangulation In addition, other approaches for triangulating surfaces have been proposed by J.R Shewchuk [10], Yang and H.Zhang [11], T.P.Fang [12], Klein [13] On the other hand, surface triangulation in 3D have been represented by Kazhdan, Bernardini [14], Lohner, Yerry, etc include Poisson formulation, Ball Pivoting Algorithm [14] and the computation of an approximate Delaunay mesh Generally, this study is applied to triangulate a points cloud (or planar point set) with or without organization Most of these methods are specified on three following categories:
Trang 19Contour tracing approach is a method which produces approximating rather than
interpolating surface Disadvantage of these algorithms are that they do not trace holes present in the pattern
Region growing approach always starts from a seed triangle in a local regi on of a
point set Then considers a new point in the existing region boundary to co nnect and create a new triangle, iterating the process until all points have been touched
Sculpting-based approach is also called Delaunay-based approach It refers to the
process of creating shapes or surfaces through a repeated elimination of tetrahedra from an initial tetrahedral mesh
All of them generate a triangular mesh approximating the input data of the original model The below methods discuss interesting issues, providing experiences and evaluating the complexity algorithms
2.2 2D Triangulation Algorithm
2.2.1 Delaunay triangulation using a uniform grid
T.P Fang [12] presented an algorithm based on Delaunay triangulation, providing a theoretical analysis and implementation details Their experience shows how to preprocess the data, how to set up an internal data structure based on a uniform grid; give a detail about the triangulation process Their algorithm has a number of robust features such as not require data sorting, using a uniform grid structure to form triangles and find boundary edges and nearest points and moreover using an edge list
to govern the triangulation and dynamically decrease the complexity of the internal grid data structure Therefore the algorithm exhibited linear time complexity This is
a significant property because the problem of triangulation in two dimensions is inherently O(n2)
The main idea of the process consists of three major steps: finding a start point and the first edge, forming triangles, and putting triangles together as the following: Finding a start point and the first edge
The algorithm starts at a point in the middle of the data set for efficiency or starting
at any point The algorithm finds the middle cell (m, n) at the cell index If the cell is not empty, then pick any point in this, otherwise searching the neighboring cells From the starting point P1 and the closest point P2 for form edge (P1, P2) called the first edge
Trang 20Figure 2.1 Procedure to form a triangle, given an edge
Putting triangles together
A good way to ensure completeness is to start somewhere, find the first triangle, and then add triangles successively so that the added triangles are simply connecte d and new three edges of the first triangle are inserted in a pool The next step gets an edge
in the pool starting forming iterator a triangle until the pool is empty The below Figure (Figure 2.2) represents the algorithm
Trang 21Figure 2.2 The triangle generated (12) and edgePool (P2P1; P3P2; P4P3; P1P4)
In the paper resulting of their experiments summarize t he graphical relationship between the number of points and the triangulation times shown in Figure 2.3 T Fang [12] tested the algorithm with a large number of data points and found the practical time complexity to be linear The simple algorithm for triangulating 2D data points is based on a uniform grid structure and a new triangulation strategy that builds triangles in a circular fashion This strategy lets the algorithm eliminate points from the internal data structure and hence decreases the time to find points to form triangles, given an edge This has a tested linear time complexity that significantly improves upon other methods
Figure 2.3 Graphical illustration of time complexity (12)
Trang 222.2.2 The Constrained Delaunay Triangulation of a Polygonal Domain
Reinhard Klein [15] proposed the divide-and-conquer algorithm by using the Constrained Delaunay triangulation [16] Klein study the special structure of polygonal domains A divide and conquer paradigm in combination with a uniform grid data structure compute the Delaunay triangles fast and reduces the number of visibility tests between vertices as well as the number of tests to determine if an edge
is contained in the domain or not Instead of performing the test against all edges of the bounding polygons, the tests have to be performed only for the edges of the sub -polygons due to the divide and conquer approach The algorithm is very fast and easy
to implement
An advantage of the grid structure computes the visibility among vertices with respect to the boundary polygons as well as the computation of Constrained Delaunay triangles This algorithm was motivated by the development of an adaptive triangulation algorithm for trimmed parametric surface patches In the first step of this algorithm an initial Constrained Delaunay triangulation of the polygonal domain
of the trimmed parametric surface has to be computed Then further vertices are inserted into this triangulation until the corresponding triangulation of the surface approximates the surface itself with sufficient precision This is not the only application of the algorithm Polygonal domains in two dimensions can also be considered as planar straight line graphs (PSLG) Many algorithms have been developed to compute the Constrained Delaunay triangula tion of PSLGs such as Lee and Lin [17] (1986), De Floriani and Puppo (1989) and Chew et al [16] (1989) All these algorithms take advantage of the special structure of polygons and are also handle the general case of a PSLG and its efficiency can be computed in O(n log n) time
Algorithm
A planar domain Ω with border polygons 𝐵 = 𝑏0, … , 𝑏𝑁
𝑉 = 𝑣00, … , 𝑣0𝑛0, 𝑣𝑁0, …, 𝑣𝑁𝑛𝑁 is number of vertices, where no four vertices lie on
a circle
There is exactly one the Constrained Delaunay triangulation 𝑇 𝑉, 𝐵 of the inner of Ω that is exactly triangle ∆(𝑣𝑖, 𝑣𝑗, 𝑣𝑘) of this triangulation corresponds to each edge (vi,vj) on the border (see Figure 2.4) Therefore, there is exactly one vertex vk to each edge (vi,vj) on the border such that ∆(𝑣𝑖, 𝑣𝑗, 𝑣𝑘) ∈ 𝑇 𝑉, 𝐵
Trang 23Figure 2.4 In triangle ∆(𝑣𝑖, 𝑣𝑗, 𝑣𝑘)there are no vertices of V (15) Lemma: Let Ω be a polygonal domain with border polygons 𝐵 and vertices 𝑉 on the border and let vivj be an edge of some of the border polygons Assume that no four vertices lie on a common circle In this situation a triangle ∆ 𝑣𝑖, 𝑣𝑗, 𝑣𝑘 ⊂
Ω, 𝑣𝑖, 𝑣𝑗, 𝑣𝑘 ∈ 𝑉 belongs to the Constrained Delaunay triangulation 𝑇 𝑉, 𝐵 if and only if
1 Choose a starting edge 𝑣𝑖𝑣𝑗
2 Find the third vertex 𝑣𝑘 with the following properties:
(i) 𝑣𝑖𝑣𝑘 ⊂ 𝛺 𝑎𝑛𝑑 𝑣𝑗𝑣𝑘 ⊂ 𝛺
(ii) 𝐶 𝑣𝑖, 𝑣𝑗, 𝑣𝑘 ∩ 𝑉𝑖 = ∅
Trang 243 Subdivide the actual polygon P into two sub -polygons 𝑃1 = (𝑣𝑖, 𝑣𝑘, 𝑣𝑘+1, … , , 𝑣𝑖−1, 𝑣𝑖) 𝑎𝑛𝑑 𝑃2 = (𝑣𝑗, 𝑣𝑗 +1, … , , 𝑣𝑘, 𝑣𝑗) (The vertices are indexed modulo the number of vertices of polygon P.)
4 Choose new starting edges in the sub-polygons and repeat steps 2 – 4 until the actual polygon consists of only one triangle
Figure 2.5 The run times of the algorithm was measured for randomly generated polygons
To get these polygons, we remove arbitrary triangles from a triangulation of randomly
generated vertices On the right side a Constrained Delaunay triangulation of the randomly generated polygon of the left side is shown (13)
According to Klein’s proposed [15], the algorithm is a fast and easy to implement divide-and-conquer for the calculation of a Constrained Delaunay triangulation of planar domains was described This combines the divide and conquer paradigm with
a uniform grid as acceleration structure Furthermore, triangulation output not contained in the inner of the domain is avoided The time of the algorithm run depending nearly linear from the size of the border polygons of the domain for generated polygons randomly
2.2.3 Sweep-line algorithm for constrained Delaunay triangulation
V Domiter [18] presented an algorithm for constrained Delaunay triangulation The proposed algorithm achieves good performance by an effective handling of constraining edges, using sweep-line paradigm The idea of this approach is characteristics of the advancing front approach, not only for the quick addition of new triangles, but also for fast triangle location during edge insertions For this reason, no other searching data structures are required, which results in a s mall memory requirement The main credit for this algorithm’s efficiency is down to heuristics for the considerable reduction in triangle swaps and to the routines for preliminary detection of simple edge insertion cases The following Domiter’s report,
Trang 25this algorithm is easy to understand and relatively easy to implement and, as such, represents an interesting alternative in practice
This paper presents a new constrained Delaunay triangulation (CDT) algorithm based
on the sweep-line paradigm It processes the points and edges at the same time However, insertion of any particular edge is postponed until it is swept entirely In this way, determination of those triangles being pierced by the edge is e fficient, simple and does not require any additional searching data structure The presented CDT algorithm is based on a DT sweep-line algorithm presented by Zˇalik In addition to adapting it for CDT, this algorithm was also simplified By introducing two additional artificial points, the number of possible algorithm states has been reduced, which makes its implementation simpler and easier V Domiter The proposed CDT algorithm includes initialization, sweeping, and finalization
Initialization
All input points are sorted by x,y coordinate, the first triangle is created after sorting and analyzing the vertices Each point is associated with the information whether or not it is the upper ending point of one or more edges ei (see Figure 2.6) The initialization is described as proposed by Zˇalik (2005) In addition, another approach is used, following the idea of so called big or hyper triangles, as used by incremental insertion algorithms
Figure 2.6 Associating edge information to the points (18)
Trang 26Sweeping
The idea of the sweep-line paradigm, the algorithm stops at every point and checks its status by following two cases, a point is isolated or it is the lower edge point (called point event) and a point is the upper ending point of at least one line segment (called edge event)
Finalization
When all points and edges have been swept, the triangulation is still incomplete because of two tasks remain: removing the triangles defined by at least one artificial point and adding the bordering triangles
The algorithm starts at the first advancing front point right of P-1 Triples of consequent advancing front points are taken and the sign area of the obtained triangle
is calculated If positive, the points determine the missing triangle, which is generated and legalized (see Figure 2.7a) When the second artificial point P-2 is reached, the algorithm is slightly modified, as we do not have an advancing front in this case (see Figure 2.7b) The algorithm follows the artificial triangles from P-2 to
P-1 The considered artificial triangle is deleted and similar to before, the signed area for the consequent triple of points is calculated In this case, if the signed area is negative, a new triangle is added and legalized (see Figure 2.7c)
Figure 2.7 Finalization forms upper and lower convex hull (18)
The resulting of their experiments, the time complexity depends on the characteristics of the data Following that paper the algorithm has been compared with three algorithms, implemented by Shewchuk (1999) The result is considerably faster than sweep-line algorithm by Fortune (1987) in all cases
Trang 272.3 Three-dimensional Triangulations Algorithm
Triangulation in three dimensions is called tetrahedralization (or tetra-hedrization)
A tetrahedralization is a partition of the input domain, point set or polyhedron, into a collection of tetrahedral that meet only at shared faces (vertices, edges, or triangles) Tetrahedralization turns out to be signicantly more compl icated than triangulation
As in two dimensions, n represents the number of vertices of the input domain, and
we distinguish several different types of domains such as Simple polyhedron, Nonsimple polyhedron and Point set (Cloud) Almost algorithms in two
dimensions can apply into three dimensions, we introduce several algorithms contribution
2.3.1 Alpha Shapes
Edelsbrunner [19] introduced to form a finite point set in space, call the “shape” of the set that is the formal notion of the family of 𝛼 − 𝑠ℎ𝑎𝑝𝑒𝑠 in R3
The family of shapes of a finite point set S can be represented by the Delaunay triangulation of S Each shape is a well-defined polytope, derived from the Delaunay triangulation [7]
a-of the point set, with a parameter 𝛼 ∈ 𝑅 controlling the desired level of detail The article is the definition and computation of the shape of a finite point set in R3 As mentioned in Edelsbrunner's paper, a peculiar aspect of the common usage of the word "shape" is that its meaning varies with the degree of detail intended At this stage it's relatively straightforward to formulate an algorithm to obtain the 𝛼 −𝑠ℎ𝑎𝑝𝑒𝑠
Compute the Delaunay triangulation of S, knowing that the boundary of their
Increasing 𝛼 continuously from 0 toward ∞ and consider a simplex simplices
∆𝑇 ∈ 𝐷𝑇(𝑆), there are two (possibly empty) intervals (a, b) and 𝑏, ∞ (𝑤𝑖𝑡ℎ 0 ≤ 𝑎 ≤
𝑏 ≤ ∞) such that
Trang 28∆𝑇 𝑖𝑠
𝑛𝑜𝑡 𝑖𝑛 𝐶∝ (𝑓𝑜𝑟 𝛼 < 𝑎)
𝑖𝑛 𝜕𝐶𝛼 (𝑓𝑜𝑟 𝛼 ∈ (𝑎, 𝑏)) 𝑖𝑛𝑡𝑒𝑟𝑖𝑜𝑟 𝑡𝑜 𝐶𝛼 (𝑓𝑜𝑟 𝛼 ∈ (𝑏, ∞))
The algorithm can be viewed as a generalization of the edge -flip method for dimensional triangulations by Lawson [1977] It was suggested by Joe (1991) with the idea of local transformations or flips However, that the straightforward generalization of the two-dimensional algorithm to R3 fails to always compute the Delauna/ly triangulation To correct this in R3 they use the incremental-flip algorithm
two-Incremental-flip Algorithm
Sort S along some fixed direction,
and relabel the points so that (p 1 , p 2 , , p) is the sorted sequence
Initialize D to the triangulation whose only tetrahedron is 𝜎𝑇,
According to the article, The algorithm used in their implementation takes time O(n2)
in the worst case, independent of the number of simplices of D
The notion of 𝛼 − 𝑠ℎ𝑎𝑝𝑒𝑠 provides an elegant mathematical framework for extracting the geometric structure of a set of points in three dimensions In particular,
𝛼 − 𝑠ℎ𝑎𝑝𝑒𝑠 can be used to reconstruct a polygonal surface which approximates an input set of surface It uses a distance between points to decide which input points to
Trang 29connect with triangles Briefly, the 𝛼 − 𝑠ℎ𝑎𝑝𝑒𝑠 is a set of triangles and tetrahedra that
is a subset of the Delaunay triangulation of the input point set The Delaunay triangulation has the property that it connects po ints to their closest neighbors, but produces a complete tetrahedrization of space According to Teichmann’s paper [20]
𝛼 − 𝑠ℎ𝑎𝑝𝑒𝑠 gives good results for point sets of roughly uniform density with large separation between surfaces, but this definition is clearly not optimal for non -uniform point sets, or for surfaces which are separated by a distance less than their sampling density Surface discontinuities and surface arrangements are not properly detected by 𝛼 − 𝑠ℎ𝑎𝑝𝑒𝑠, there exists no value of that includes all desired triangles and deletes all undesired triangles Therefore they proposed two extensions to the definition of 𝛼 − 𝑠ℎ𝑎𝑝𝑒𝑠 to alleviate these problems and allow reconstruction from a much larger class of point sets include Anisotropic scaling (allow the spherical forbidden region to vary in shape, and change the triangulation accordingly) and Density scaling (vary the value of depending on the local point density)
The two proposed methods combine well in this example (see Figure 2.9) The anisotropy method does remove triangles connecting the surfaces of the sphere and the cylinders where they face each other However, it has no effect on triangles that would ordinarily be on the convex hull, i.e thos e connecting points with similar (outward) normals Density Density scaling works well in exactly that situation, as seen in the figure1
Figure 2.9 The anisotropy method does remove triangles connecting the surfaces of the
sphere (20)
2.3.2 The Ball-Pivoting Algorithm
The Ball-Pivoting Algorithm [14] (shortly BPA) computes a triangle mesh interpolating a given point cloud The paper focuses on the data integration phase in
1
The images demonstrate for 𝛼 − 𝑠ℎ𝑎𝑝𝑒𝑠 have been taken from Teichmann’s paper [20]
Trang 303D data acquisition pipeline devices This method interpolates an unorganized set of
points, that it represent a generated triangle mesh
The principle of the BPA is conceptually simple that a triangle is made from three points if a ball of a user-specified radius touches them without including any other points Firstly starting with a seed triangle, the ball pivots around each edge on the current mesh boundary until a new point is hit by the ball The resulting a new triangle is defined from this edge and the point, which is added to the mesh and the algorithm considers a new boundary edge for pivoting The process continues until all reachable edges have been tried, and then starts from another seed triangle, until all points have been considered
In the paper, the BPA operate an advancing – front algorithm to incrementally build
an interpolating triangulation of a given p oint cloud The basic algorithm works by finding a seed triangle by three data points (𝜎𝑖, 𝜎𝑗, 𝜎𝑘) such that a ball of radius touching them contains no other data point, and then adding one triangle at a time by performing the ball pivoting
The front F is represented as a collection of linked lists of edges, and is initially composed of a single loop containing the three edges defined by the first seed triangle Each edge e(i,j) of the front, is represented by its two endpoints (𝜎𝑖, 𝜎𝑗), the opposite vertex 𝜎0 the center 𝑐𝑖𝑗 0 of the ball that touches all three points, and links to the previous and next edge along in the same loop of the front An edge can be active, boundary or frozen An active edge is one that will be used for pivotin g If it
is not possible to pivot from an edge, it is marked as boundary The frozen state is explained below, in the context of our out of core extensions Keeping all this information with each edge makes it simpler to pivot the ball around it The reaso n the front is a collection of linked lists, instead of a single one, is that as the ball pivots along an edge, depending on whether it touches a newly encountered data point or a previously used one, the front changes topology BPA handles all cases with two simple topological operators, which ensure that at any time the front is a collection of linked lists
Trang 31Figure 2.10 Ball pivoting2 in the presence of noisy data (14)
Theoretical foundation: BPA is related to alpha-shapes [19], and given sufficiently
dense sampling; it is guaranteed to reconstruct a surface homeomorphic to and within
a bounded distance from the original manifold
The output of triangulating mesh is a manifold subset of an alpha -shape that some of the particular their properties can also be represented for their reconstruction The method is efficient in terms of execution time and storage requirements It exhibited linear time performance on datasets consisting of millions of input samples It has been implemented in a form that does not require all of the input data to be loaded into memory simultaneously
To enable the BPA, they also have done some initial experiments in usi ng a smoothing algorithm adapted from Gabriel Taubin [21] to pre-process the data and to compute consensus points from multiple overlapping data to be used as input to the algorithm, while at the same time making small refinemen ts to the rigid alignment of the scans to each other The BPA can be compare favorably with existing techniques
by applied the algorithm to datasets of millions of points representing actual scans of complex 3D objects It needs small amount of memory, its time efficiency, and the quality of the results obtained In addition the resulting triangle mesh is incrementally saved to external storage during its computation, and does not use any additional memory
2.3.3 Poisson Surface Reconstruction
Poisson surface reconstruction [22] is introduced as a well – known technique for creating watertight surfaces from oriented point samples acquired with 3D range scanners Kazhdan [22] provide a novel approach that expresses surface reconstruction as the solution to a Poisson equation They apply an implicit function
2
The image have been taken from the Ball-Pivoting Algorithm [16]
Trang 32framework computing a 3D indicator function χ and then obtain the reconstructed surface by extracting an appropriate isosurface They derive a relationship between the gradient of the indicator function and an integral of the surface normal field They then approximate this surface integral by a summation over the given oriented point samples Finally, they reconstruct the indicator function from this gradient field
Formulating surface reconstruction as a Poisson problem offers a number of advantages Many implicit surface fitting methods segment the data into regions for local fitting, and further combine these local approximations using blending functions In contrast, Poisson reconstruction is a global solution that considers all the data at once, without resorting to heuristic partitioning or blending Thus, like radial basis function (RBF) approaches, Poisson reconstruction creates very smooth surfaces that robustly approximate noisy data But, whereas ideal RBFs are globally supported and nondecaying, the Poisson problem admits a hierarchy of locally supported functions, and therefore its solution reduces to a well -conditioned sparse linear system
Moreover, in many implicit fitting schemes, the value of the implicit function is constrained only near the sample points, and consequently the reconstruction may contain spurious surface sheets away from these samples Typically this problem is attenuated by introducing auxiliary “off-surface” points With Poisson surface reconstruction, such surface sheets seldom arise because the gradient of the implicit function is constrained at all spatial points In particular it is constrained to zero away from the samples
Poisson systems are well known for their resilience in the presence of imperfect data For instance, “gradient domain” manipulation algorithms [23] intentionally modify the gradient data such that it no longer corresponds to any real p otential field, and rely on a Poisson system to recover the globally best -fitting model
Trang 33Figure 2.11 Depth 10 reconstructions from 1M point uniformly sampled on the fandisk and
raptor surface models The screened Poisson surface reconstruction is the sharpest [24]
A limitation of this method is that it does not incorporate information associated with the acquisition modality Figure 2.11 shows an example of this in the reconstruction
at the base of the Buddha Since there are no samples between the two feet, our method (right) connects the two regions In contrast, the ability to use seconda ry information such as line of sight allows Volumetric Range Image Processing [25] (left) to perform the space carving necessary to disconnect the two feet, resulting in a more accurate reconstruction
Figure 2.12 Reconstructions of the “Happy Buddha” model using Volumetric Range Image Processing [25] (left) and Poisson reconstruction (right) [22]
Trang 34Recently Kazhdan proposed Screened Poisson Surface Reconstruction [24] that this approach explore modifying the Poisson reconstruction algorithm to incorporate positional constraints This method extends the technique to explicitly incorporate the points as interpolation constraints The extension can be interpreted as a generalization of the underlying mathematical framework to a screened Poisson equation Moreover they present several algorithmic improv ements that together reduce the time complexity of the solver to linear in the number of points, thereby enabling faster, higher-quality surface reconstructions
Trang 35CHAPTER THREE
3 The Proposed Method
Delaunay triangulation is simple and primitive operation that can be used to construct an object from a set of points In this chapter, we describe our method for triangulating a surface of 3D point clouds that has been done in [1] Then, we also present our method for reconstructing the surface by processing triangles on the boundary and filling holes inside of this surface in the next chapter
3.1 Introduction
Our method is based on the 2D Delaunay triangulation of the projected point cloud After projecting the 3D point cloud onto a 2D grid (see Figure 3.1), we compute a Delaunay triangulation of the 2D point cloud The algorithm start from the first Delaunay triangle 𝑇 which is created by a Delaunay edge and a neighboring point (i.e they are formed the first Delaunay triangle.) T he next adjacent triangle 𝑇’ is created between an edge 𝑒𝑖of 𝑇 and a neighboring point based on the voxel traversal search [1] within a rectangle on one side of 𝑒𝑖 At each step, the new edges of the created triangle 𝑇’ are inserted in a pool and the process is iterated starting from 𝑇’ until the pool is empty The main novelty of our approach is that the neighboring points are searched in a rectangle supported by the edge ei under consideration
Figure 3.1: Triangulation of a 3D point cloud by projecting it onto the 2D grid
Therefore, our method consists of three steps In the first step , we create a first Delaunay triangle Starting from the first Delaunay boundary edge, we find and connect to a neighboring point to create a first triangle In the second step, we create the next triangle, adjacent to the first triangle based on a criterion of the Delaunay
Trang 36triangle In the third step, we triangulate the surface by repeating the process from the next triangle After creating the next triangle, this triangle will become a first triangle for the next iteration
3.2 Concepts, Notion and Definition
In order to clarify the context, let us introduce some concepts and notations used in the sequel We have already determined the boundary of the surface [26] It is a polyline connecting the boundary edges e(vi, vi+1) with the numbering of the polyline As we also mentioned in our context, each point belongs to exactly one pixel Therefore, we will freely use either the continuous or discrete notations: (see Figure 3.2)
Figure 3.2: Some concepts and notations used in the surface triangulation
- Given an edge e = (p1, p2), there exist exactly two pixels v1, v2 such that pi vi (i = 1, 2)
- pb: a boundary point
- eb: a boundary edge, eb = (pb1, pb2)
- The continuous size of e is, as usual given by ||p2 - p1||, we will denote it by ||e||
- The discrete size of e (denoted by |e|) as the discrete distance between v1 and v2 (||v2 –
v1|| in [26])
- Given a triangle ( p i2,p1i,p3i) and the edge ei = (p1i,p2i), a point p4i is called opposite
top3i with respect to ei if it belong to a vertex of a triangle Δ(p1i,p i2,p4i) and opposite
to a neighboring point i
p3 by edge ei (see Figure 3.2)
- k = |ei|: the discrete size of ei
Trang 37- Re(ei): a rectangle supported by ei
As we mentioned in the related work, in the special case of the surface: if we cannot apply the properties of a Delaunay triangle to triangulate the surface, we can apply the case of constrained Delaunay triangulation CDT Let us introduce the definition
of a visible vertex [35] and thereafter we apply to define the CDT in our case: Given
a set of point together with a set of edges E, a CDT is the triangulation of the point set closest from the Delaunay triangulation but containing the edges of E
Definition 3.1: Constrained Delaunay boundary edge CDBE:
- Visible vertex: Two points (p, p’) are Delaunay visible from each other if the segment between the two points intersects no edges (see Figure 3.3, where p and p’ are not visible together)
- Constrained Delaunay Criterion: The circumcircle C of a given three points of a Δ(p1,
p2, p3) does not contain any points visible from p1, p3 or p2 (see Figure 3.3b) This definition has to be compared with the Delaunay criterion: the circumcircle C of any triangle Δ(p1, p2, p3) is empty
- Constrained Delaunay boundary edge (CDBE): A boundary edge eb(pb1, pb2) is a CDBE if and only if both pb1, pb2 are boundary points, and there exist an inner point p such that the circumcircle of Δ(pb1, pb2, p) does not contain any inner points but may contain the outer points that are not visible from p (see Figure 3.3c)
Figure 3.3: A case of CDBE Our exterior boundary is defined in [26], each point is obtained as the first and closest clockwise neighbor of the previous one Therefore, all boundary edges on the boundary of the convex hull of the surface are Delaunay edges (as proved in [3 6]) However, there are some boundary edges on the boundary in the concave parts of the surface which can be non Delaunay An illustration is described in Figure 3.3c, whereas pb1, pb2, pb3 are boundary points, but the boundary edge eb(pb1, pb2) is a non