Jun 17, 2012 - Octree decomposition. Root cell smallest bounding cube of P. Splitting rule split a splittable leaf cell
A Fast and Simple Surface Reconstruction Algorithm Siu-Wing Cheng, Jiongxin Jin and Man-Kit Lau Department of Computer Science and Engineering Hong Kong University of Science and Technology
Jun 17, 2012
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
1 / 18
Surface reconstruction
point cloud
Cheng, Jin and Lau (HKUST)
triangular mesh
Surface reconstruction
Jun 17, 2012
2 / 18
Surface reconstruction Given: a “dense” point set sampled from an unknown surface Σ ⊂ R3 Goal: to compute a surface mesh that is topologically equivalent - homeomorphic to Σ
geometrically faithful - small normal deviation - small Hausdorff distance
Applications: reverse engineering, medical imaging, computer graphics, . . .
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
3 / 18
ε-sample
Medial axis MΣ
closure of the set of points having at least two closest points in Σ
MΣ
Local feature size lfs(x) lfs(x) = d(x, MΣ )
lfs(x)
Σ
x
ε-sample P ∀x ∈ Σ, d(x, P) ≤ εlfs(x)
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
4 / 18
Previous results
Crust, PowerCrust, Cocone: O(n2 ), need to compute 3D DT/VD output-sensitive 3D VD algorithm: O((n + f ) log2 n) - uniform sample from generic smooth surface: f = O(n log n) Attali, Boissonnat and Lieutier [SCG ’03] √ - non-generic surface: f = Ω(n n) even for uniform sample Erickson [DCG ’03]
Funke and Ramos [SODA ’02]: O(n log n) (not practical)
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
5 / 18
FR algorithm 1
Extract a locally uniform O(ε)-sample S ⊆ P.
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
6 / 18
FR algorithm 1
Extract a locally uniform O(ε)-sample S ⊆ P.
2
Reconstruct a surface using S. O(n log n), Dey, Funke and Ramos [EuroCG ’01]
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
6 / 18
FR algorithm 1
Extract a locally uniform O(ε)-sample S ⊆ P.
2
Reconstruct a surface using S. O(n log n), Dey, Funke and Ramos [EuroCG ’01]
3
Add back P \ S. O(n log n)
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
6 / 18
FR algorithm 1
Extract a locally uniform O(ε)-sample S ⊆ P. O(n log n) well-separated pair decomposition approximate range searching approximate directional nearest neighbors
2
Reconstruct a surface using S. O(n log n), Dey, Funke and Ramos [EuroCG ’01]
3
Add back P \ S. O(n log n)
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
6 / 18
FR algorithm 1
Extract a locally uniform O(ε)-sample S ⊆ P. O(n log n) well-separated pair decomposition approximate range searching
⇒ Octrees
approximate directional nearest neighbors 2
Reconstruct a surface using S. O(n log n), Dey, Funke and Ramos [EuroCG ’01]
3
Add back P \ S. O(n log n)
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
6 / 18
Our results
Given an ε-sample P, compute a locally uniform O(ε)-sample S ⊆ P in O(n log n) time with a single octree.
surface reconstruction algorithm: O(n log n), optimal in the pointer machine model performance: - for non-uniform samples: 51% to 68% faster than Cocone - for locally uniform samples: still faster than Cocone
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
7 / 18
Locally uniform sample S
βrq rq
Σ
Bq q
S
Bq : largest empty ball with center in Σ and boundary through q ∀q ∈ S, |B(q, βrq ) ∩ S| = O(1)
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
8 / 18
Octree decomposition `C C
Root cell
1 8 `C
smallest bounding cube of P Splitting rule split a splittable leaf cell into eight children Balancing rule split a leaf cell C if it has a neighbor C 0 s.t. `C 0 < `C /2
non-splittable
C
Apply the two rules alternately until the tree stops growing. splittable Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
9 / 18
Example
splitting . . .
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
10 / 18
Example
splitting . . .
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
10 / 18
Example
splitting . . .
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
10 / 18
Example
splitting . . .
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
10 / 18
Example
splitting . . .
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
10 / 18
Example
splitting . . . balancing . . .
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
10 / 18
Example
splitting . . . balancing . . . splitting . . .
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
10 / 18
Example
splitting . . . balancing . . . splitting . . . balancing . . .
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
10 / 18
Example
splitting . . . balancing . . . splitting . . . balancing . . . done
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
10 / 18
Properties of the octree
O(n) size, O(n log n) construction time
balanced: side lengths of neighboring leaf cells differ by at most a factor 2
non-empty leaf cells have side lengths O(εlfs) (but can be much smaller than εlfs)
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
11 / 18
Overview 1
Trim the tree so that the sizes of non-empty leaf cells are “good” side lengths O(εlfs) the union of their const-factor expansions covers the surface
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
12 / 18
Overview 1
Trim the tree so that the sizes of non-empty leaf cells are “good” side lengths O(εlfs) the union of their const-factor expansions covers the surface
C
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
12 / 18
Overview 1
Trim the tree so that the sizes of non-empty leaf cells are “good” side lengths O(εlfs) the union of their const-factor expansions covers the surface
2
Smooth out the sizes of non-empty leaf cells no cell C 0 intersecting κ-factor expansion of C is smaller than half of C (κ = 2 in the example) can be done in linear time by processing non-empty leaf cells in decreasing order in their sizes
C
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
12 / 18
Overview 1
Trim the tree so that the sizes of non-empty leaf cells are “good” side lengths O(εlfs) the union of their const-factor expansions covers the surface
2
Smooth out the sizes of non-empty leaf cells no cell C 0 intersecting κ-factor expansion of C is smaller than half of C (κ = 2 in the example) can be done in linear time by processing non-empty leaf cells in decreasing order in their sizes
C
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
12 / 18
Overview 1
Trim the tree so that the sizes of non-empty leaf cells are “good” side lengths O(εlfs) the union of their const-factor expansions covers the surface
2
Smooth out the sizes of non-empty leaf cells no cell C 0 intersecting κ-factor expansion of C is smaller than half of C (κ = 2 in the example) can be done in linear time by processing non-empty leaf cells in decreasing order in their sizes
3
Pick one point from each non-empty leaf cell locally uniform O(ε)-sample
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
12 / 18
Overview 1
Trim the tree so that the sizes of non-empty leaf cells are “good” side lengths O(εlfs) the union of their const-factor expansions covers the surface
2
Smooth out the sizes of non-empty leaf cells no cell C 0 intersecting κ-factor expansion of C is smaller than half of C (κ = 2 in the example) can be done in linear time by processing non-empty leaf cells in decreasing order in their sizes
3
Pick one point from each non-empty leaf cell locally uniform O(ε)-sample
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
12 / 18
Tree trimming Trim the tree so that the sizes of non-empty leaf cells are “good”: 1
2
3
C
estimate surface normal at p ∈ C H: approximate tangent plane look for an empty cube with center in H and side length 18 `C in close neighborhood of C
p empty cube of size 18 `C
if normal estimation fails or an empty cube is found, then make parent(C ) a new leaf cell, and perform the checking on parent(C ) (`C = O(εlfs) in this case)
Cheng, Jin and Lau (HKUST)
˜p n
H
trim C
Surface reconstruction
Jun 17, 2012
13 / 18
Normal estimation
p1
Normal estimation at p ∈ C : 1 2 3
Pick pi ∈ P ∩ Ri , for i ∈ [1, 53 ]
Find pi , pj , s.t. ∠pi ppj ∈ [θ0 , π − θ0 ] ˜ p = npi ppj n
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Ri p C
5`C
p2
Jun 17, 2012
14 / 18
Locally uniform subsample
Cocone on P
Cheng, Jin and Lau (HKUST)
Cocone on S
Surface reconstruction
Jun 17, 2012
15 / 18
Locally uniform subsample
Cocone on P
Cheng, Jin and Lau (HKUST)
Cocone on S
Surface reconstruction
Jun 17, 2012
15 / 18
Performance (non-uniform input) sec
Cocone on P Extraction
Cocone on S
Insertion
300
200
100
0
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
16 / 18
Performance (uniform input) sec
Cocone on P Extraction
Cocone on S
Insertion
90
60
30
0
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
17 / 18
Extensions
multiple surfaces
handling noise
k-dimensional manifold in Rd
Cheng, Jin and Lau (HKUST)
Surface reconstruction
Jun 17, 2012
18 / 18